Pull request #37: Finish integrating level selector
Merge in CGD/gather-and-defend from feature/integrateLevelSelector to main * commit '9696ee614e4666d93da40bcec686e87ac6a30559': spawners n'apparaissent plus + beau back button finish integrating level selector
This commit is contained in:
commit
fb80cc3c9b
@ -7,6 +7,8 @@ public class LevelManagerEditor : Editor
|
|||||||
public override void OnInspectorGUI()
|
public override void OnInspectorGUI()
|
||||||
{
|
{
|
||||||
DrawDefaultInspector();
|
DrawDefaultInspector();
|
||||||
|
if (Application.isPlaying)
|
||||||
|
{
|
||||||
if (GUILayout.Button("Save"))
|
if (GUILayout.Button("Save"))
|
||||||
{
|
{
|
||||||
LevelManager.Instance.SaveFile();
|
LevelManager.Instance.SaveFile();
|
||||||
@ -17,3 +19,4 @@ public class LevelManagerEditor : Editor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
2256
Assets/Prefabs/UI/WorldMap/LevelSelection.prefab
Normal file
2256
Assets/Prefabs/UI/WorldMap/LevelSelection.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Prefabs/UI/WorldMap/LevelSelection.prefab.meta
Normal file
7
Assets/Prefabs/UI/WorldMap/LevelSelection.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 096f5f6b487dccb41a48faf69f87fae9
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -538,7 +538,7 @@ Camera:
|
|||||||
m_Depth: -1
|
m_Depth: -1
|
||||||
m_CullingMask:
|
m_CullingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 4294967295
|
m_Bits: 55
|
||||||
m_RenderingPath: -1
|
m_RenderingPath: -1
|
||||||
m_TargetTexture: {fileID: 0}
|
m_TargetTexture: {fileID: 0}
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
@ -783,6 +783,14 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: LevelManager
|
value: LevelManager
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3028288566889208750, guid: 02daecb0115395844b4932445d039051, type: 3}
|
||||||
|
propertyPath: _gameScene
|
||||||
|
value: Game
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3028288566889208750, guid: 02daecb0115395844b4932445d039051, type: 3}
|
||||||
|
propertyPath: _firstLevel
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: a6e34739c9325da4cac4fbaea30d052c, type: 2}
|
||||||
- target: {fileID: 3028288566889208751, guid: 02daecb0115395844b4932445d039051, type: 3}
|
- target: {fileID: 3028288566889208751, guid: 02daecb0115395844b4932445d039051, type: 3}
|
||||||
propertyPath: m_RootOrder
|
propertyPath: m_RootOrder
|
||||||
value: 2
|
value: 2
|
||||||
@ -926,6 +934,7 @@ RectTransform:
|
|||||||
- {fileID: 115274809}
|
- {fileID: 115274809}
|
||||||
- {fileID: 1709530844}
|
- {fileID: 1709530844}
|
||||||
- {fileID: 2019202047}
|
- {fileID: 2019202047}
|
||||||
|
- {fileID: 2064630363}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 4
|
m_RootOrder: 4
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@ -1808,3 +1817,152 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 2019202046}
|
m_GameObject: {fileID: 2019202046}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &2064630362
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2064630363}
|
||||||
|
- component: {fileID: 2064630366}
|
||||||
|
- component: {fileID: 2064630365}
|
||||||
|
- component: {fileID: 2064630364}
|
||||||
|
- component: {fileID: 2064630367}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: TemporaryGoBackButton
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2064630363
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2064630362}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1092900232}
|
||||||
|
m_RootOrder: 5
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 786, y: 603.62}
|
||||||
|
m_SizeDelta: {x: 97.7374, y: 78.499}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &2064630364
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2064630362}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 1
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 2064630365}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls:
|
||||||
|
- m_Target: {fileID: 2064630367}
|
||||||
|
m_TargetAssemblyTypeName: ChangeScene, GameAssembly
|
||||||
|
m_MethodName: LoadScene
|
||||||
|
m_Mode: 1
|
||||||
|
m_Arguments:
|
||||||
|
m_ObjectArgument: {fileID: 0}
|
||||||
|
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||||
|
m_IntArgument: 0
|
||||||
|
m_FloatArgument: 0
|
||||||
|
m_StringArgument:
|
||||||
|
m_BoolArgument: 0
|
||||||
|
m_CallState: 2
|
||||||
|
--- !u!114 &2064630365
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2064630362}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 40f4f2cff86c68f4aaccce14435eba65, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!222 &2064630366
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2064630362}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2064630367
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2064630362}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5013085c123fae4499f80b0a896f63af, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
scene: LevelSelect
|
||||||
|
sceneAction: 0
|
||||||
|
loadSceneMode: 0
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
37
Assets/Scripts/ChangeScene.cs
Normal file
37
Assets/Scripts/ChangeScene.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
|
public class ChangeScene : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Scene]
|
||||||
|
public string scene;
|
||||||
|
public SceneActionType sceneAction;
|
||||||
|
public LoadSceneMode loadSceneMode;
|
||||||
|
public enum SceneActionType
|
||||||
|
{
|
||||||
|
Load,
|
||||||
|
Unload
|
||||||
|
}
|
||||||
|
public void LoadScene()
|
||||||
|
{
|
||||||
|
if (sceneAction == SceneActionType.Load)
|
||||||
|
{
|
||||||
|
SceneManager.LoadScene(scene, loadSceneMode);
|
||||||
|
}
|
||||||
|
else if (sceneAction == SceneActionType.Unload)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < SceneManager.sceneCount; i++)
|
||||||
|
{
|
||||||
|
var scene = SceneManager.GetSceneAt(i);
|
||||||
|
if (scene.name == this.scene)
|
||||||
|
{
|
||||||
|
SceneManager.UnloadSceneAsync(scene);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/ChangeScene.cs.meta
Normal file
11
Assets/Scripts/ChangeScene.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5013085c123fae4499f80b0a896f63af
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -5,7 +5,7 @@ public class ObjectPlaceholder : DraggablePlaceholder
|
|||||||
public GameObject Prefab { get; set; }
|
public GameObject Prefab { get; set; }
|
||||||
public override void Place()
|
public override void Place()
|
||||||
{
|
{
|
||||||
Prefab.Create(transform.position);
|
Prefab.Create(transform.position, parent : LevelManager.Instance.LevelTransform);
|
||||||
}
|
}
|
||||||
public override bool CanBePlacedHere()
|
public override bool CanBePlacedHere()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -132,7 +132,12 @@ namespace GatherAndDefend.LevelEditor
|
|||||||
|
|
||||||
//get grid
|
//get grid
|
||||||
var grid = GameObject.FindObjectOfType<Grid>();
|
var grid = GameObject.FindObjectOfType<Grid>();
|
||||||
if (!grid) grid = new GameObject("Grid").AddComponent<Grid>();
|
if (!grid)
|
||||||
|
{
|
||||||
|
var levelMgrScript = GameObject.FindObjectOfType<LevelManagerScript>();
|
||||||
|
grid = new GameObject("Grid").AddComponent<Grid>();
|
||||||
|
grid.transform.SetParent(levelMgrScript.transform.parent);
|
||||||
|
}
|
||||||
|
|
||||||
//get tilemap by name
|
//get tilemap by name
|
||||||
var tilemap = grid.GetComponentInChildren<Tilemap>(key);
|
var tilemap = grid.GetComponentInChildren<Tilemap>(key);
|
||||||
|
|||||||
@ -96,8 +96,9 @@ public class LevelManager : Singleton<LevelManager>
|
|||||||
|
|
||||||
#region [Level management]
|
#region [Level management]
|
||||||
|
|
||||||
public void UpdateLevel()
|
public void AddAndRemoveObjects()
|
||||||
{
|
{
|
||||||
|
//add and remove
|
||||||
var toAdd = new List<ILevelObject>(_toAdd);
|
var toAdd = new List<ILevelObject>(_toAdd);
|
||||||
toAdd.ForEach(addedObject =>
|
toAdd.ForEach(addedObject =>
|
||||||
{
|
{
|
||||||
@ -113,27 +114,18 @@ public class LevelManager : Singleton<LevelManager>
|
|||||||
_levelObjects.Remove(removedObject);
|
_levelObjects.Remove(removedObject);
|
||||||
removedObject.LevelDestroy();
|
removedObject.LevelDestroy();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateLevel()
|
||||||
|
{
|
||||||
|
AddAndRemoveObjects();
|
||||||
|
|
||||||
_levelObjects.ForEach(levelObject =>
|
_levelObjects.ForEach(levelObject =>
|
||||||
{
|
{
|
||||||
levelObject.LevelUpdate();
|
levelObject.LevelUpdate();
|
||||||
});
|
});
|
||||||
|
|
||||||
toAdd = new List<ILevelObject>(_toAdd);
|
AddAndRemoveObjects();
|
||||||
toAdd.ForEach(addedObject =>
|
|
||||||
{
|
|
||||||
_toAdd.Remove(addedObject);
|
|
||||||
_levelObjects.Add(addedObject);
|
|
||||||
addedObject.LevelStart();
|
|
||||||
});
|
|
||||||
|
|
||||||
toRemove = new List<ILevelObject>(_toRemove);
|
|
||||||
toRemove.ForEach(removedObject =>
|
|
||||||
{
|
|
||||||
_toRemove.Remove(removedObject);
|
|
||||||
_levelObjects.Remove(removedObject);
|
|
||||||
removedObject.LevelDestroy();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ClearLevel()
|
public void ClearLevel()
|
||||||
@ -162,7 +154,9 @@ public class LevelManager : Singleton<LevelManager>
|
|||||||
//create new grid if there is none
|
//create new grid if there is none
|
||||||
if (!grid)
|
if (!grid)
|
||||||
{
|
{
|
||||||
|
var levelMgrScript = Object.FindObjectOfType<LevelManagerScript>();
|
||||||
grid = new GameObject("Grid").AddComponent<Grid>();
|
grid = new GameObject("Grid").AddComponent<Grid>();
|
||||||
|
grid.transform.SetParent(levelMgrScript.transform);
|
||||||
}
|
}
|
||||||
//remove all tilemaps if there is a grid
|
//remove all tilemaps if there is a grid
|
||||||
else
|
else
|
||||||
@ -199,11 +193,6 @@ public class LevelManager : Singleton<LevelManager>
|
|||||||
ClearLevel();
|
ClearLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var ob in Database.Instance.ScriptableObjects)
|
|
||||||
{
|
|
||||||
Debug.Log(ob);
|
|
||||||
}
|
|
||||||
|
|
||||||
//fetch level from database
|
//fetch level from database
|
||||||
_currentLevel = Database.Instance.ScriptableObjects[levelName] as Level;
|
_currentLevel = Database.Instance.ScriptableObjects[levelName] as Level;
|
||||||
|
|
||||||
@ -290,10 +279,5 @@ public class LevelManager : Singleton<LevelManager>
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// align camera to the rightmost tile of the tilemap
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
@ -1,14 +1,15 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using GatherAndDefend.LevelEditor;
|
using UnityEngine.SceneManagement;
|
||||||
|
using Level = GatherAndDefend.LevelEditor.Level;
|
||||||
public class LevelManagerScript : SingletonBehaviour<LevelManagerScript>
|
public class LevelManagerScript : MonoBehaviour
|
||||||
{
|
{
|
||||||
public Level firstLevel;
|
[Scene][SerializeField]
|
||||||
|
private string _gameScene;
|
||||||
|
[SerializeField]
|
||||||
|
private Level _firstLevel;
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
DontDestroyOnLoad(gameObject);
|
LevelManager.Instance.LevelTransform = transform;
|
||||||
if (!firstLevel) throw new System.Exception("there is no first level set in the level manager script");
|
|
||||||
|
|
||||||
int levelToLoadFromWorldMap = PlayerPrefs.GetInt("LevelToLoad", -1);
|
int levelToLoadFromWorldMap = PlayerPrefs.GetInt("LevelToLoad", -1);
|
||||||
if (levelToLoadFromWorldMap != -1)
|
if (levelToLoadFromWorldMap != -1)
|
||||||
{
|
{
|
||||||
@ -16,8 +17,14 @@ public class LevelManagerScript : SingletonBehaviour<LevelManagerScript>
|
|||||||
LevelManager.Instance.LoadLevel(lvlName, true);
|
LevelManager.Instance.LoadLevel(lvlName, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if (_firstLevel)
|
||||||
LevelManager.Instance.LoadLevel(firstLevel, true);
|
{
|
||||||
|
LevelManager.Instance.LoadLevel(_firstLevel, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogWarning("there is no first level set in the level manager script");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
|
|||||||
55
Assets/Scripts/SceneDrawer.cs
Normal file
55
Assets/Scripts/SceneDrawer.cs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
|
||||||
|
public class SceneAttribute : PropertyAttribute { }
|
||||||
|
|
||||||
|
[CustomPropertyDrawer(typeof(SceneAttribute))]
|
||||||
|
public class SceneDrawer : PropertyDrawer
|
||||||
|
{
|
||||||
|
|
||||||
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (property.propertyType == SerializedPropertyType.String)
|
||||||
|
{
|
||||||
|
var sceneObject = GetSceneObject(property.stringValue);
|
||||||
|
var scene = EditorGUI.ObjectField(position, label, sceneObject, typeof(SceneAsset), true);
|
||||||
|
if (scene == null)
|
||||||
|
{
|
||||||
|
property.stringValue = "";
|
||||||
|
}
|
||||||
|
else if (scene.name != property.stringValue)
|
||||||
|
{
|
||||||
|
var sceneObj = GetSceneObject(scene.name);
|
||||||
|
if (sceneObj == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("The scene " + scene.name + " cannot be used. To use this scene add it to the build settings for the project");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
property.stringValue = scene.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
EditorGUI.LabelField(position, label.text, "Use [Scene] with strings.");
|
||||||
|
}
|
||||||
|
protected SceneAsset GetSceneObject(string sceneObjectName)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(sceneObjectName))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var editorScene in EditorBuildSettings.scenes)
|
||||||
|
{
|
||||||
|
if (editorScene.path.IndexOf(sceneObjectName) != -1)
|
||||||
|
{
|
||||||
|
return AssetDatabase.LoadAssetAtPath(editorScene.path, typeof(SceneAsset)) as SceneAsset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Debug.LogWarning("Scene [" + sceneObjectName + "] cannot be used. Add this scene to the 'Scenes in the Build' in build settings.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/SceneDrawer.cs.meta
Normal file
11
Assets/Scripts/SceneDrawer.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 389cc3c423055324fb8d7de50f62f709
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -16,6 +16,8 @@ public class WorldMapManager : MonoBehaviour
|
|||||||
private Sprite _lockedIcon;
|
private Sprite _lockedIcon;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Sprite _savedIcon;
|
private Sprite _savedIcon;
|
||||||
|
[Scene][SerializeField]
|
||||||
|
private string gameScene;
|
||||||
|
|
||||||
private WorldMapSave _worldMapSave;
|
private WorldMapSave _worldMapSave;
|
||||||
|
|
||||||
@ -70,12 +72,10 @@ public class WorldMapManager : MonoBehaviour
|
|||||||
|
|
||||||
public void CallLevelWorld1(int levelToCall)
|
public void CallLevelWorld1(int levelToCall)
|
||||||
{
|
{
|
||||||
string levelToGet = "1-" + levelToCall;
|
|
||||||
if (_buttonList[levelToCall - 1].GetComponent<Image>().sprite.name != "worldmap_level_locked")
|
if (_buttonList[levelToCall - 1].GetComponent<Image>().sprite.name != "worldmap_level_locked")
|
||||||
{
|
{
|
||||||
PlayerPrefs.SetInt("LevelToLoad", levelToCall);
|
PlayerPrefs.SetInt("LevelToLoad", levelToCall);
|
||||||
SceneManager.LoadScene("Game");
|
SceneManager.LoadScene(gameScene);
|
||||||
//LevelManager.Instance.LoadLevel(levelToGet, true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user