finish integrating level selector

Level selector was already working after work by William but some small bugs remained to be fixed + it wasn't possible to return to level selector once we were in the level.

- it's now possible to go back to level selector from Level
- LevelManagerScript is no longer a singleton (this way, it resets with the Game scene unloading)
- Added a property drawer for using scene files in inspectors
This commit is contained in:
Felix Boucher 2023-07-23 20:16:44 -04:00
parent 15f95d5bc4
commit 27d72368aa
14 changed files with 3666 additions and 2399 deletions

View File

@ -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();
@ -16,4 +18,5 @@ public class LevelManagerEditor : Editor
LevelManager.Instance.LoadFile(); LevelManager.Instance.LoadFile();
} }
} }
}
} }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 096f5f6b487dccb41a48faf69f87fae9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -123,6 +123,485 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1001 &21903748
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1092900232}
m_Modifications:
- target: {fileID: 3409838768066239633, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Color.b
value: 0.764151
objectReference: {fileID: 0}
- target: {fileID: 3409838768066239633, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Color.g
value: 0.764151
objectReference: {fileID: 0}
- target: {fileID: 3409838768066239633, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Color.r
value: 0.764151
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768514991008, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_RootOrder
value: 5
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337993, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Name
value: LevelSelection
objectReference: {fileID: 0}
- target: {fileID: 3409838768749337993, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3409838769488689461, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_Color.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796150375093, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796179301169, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796309713679, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796404840342, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796496336134, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796654850703, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475796694726885, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475797303373434, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475797509327120, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
objectReference: {fileID: 21903750}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3826475797554298564, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
--- !u!224 &21903749 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 3409838768749337992, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
m_PrefabInstance: {fileID: 21903748}
m_PrefabAsset: {fileID: 0}
--- !u!1 &21903750 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3409838768749337993, guid: 096f5f6b487dccb41a48faf69f87fae9, type: 3}
m_PrefabInstance: {fileID: 21903748}
m_PrefabAsset: {fileID: 0}
--- !u!1 &101629846 --- !u!1 &101629846
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -446,6 +925,141 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 5 m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &313228664
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 313228665}
- component: {fileID: 313228667}
- component: {fileID: 313228666}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &313228665
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313228664}
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: 2064630363}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &313228666
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313228664}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Button
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &313228667
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313228664}
m_CullTransparentMesh: 1
--- !u!1 &519420028 --- !u!1 &519420028
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -783,6 +1397,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 +1548,8 @@ RectTransform:
- {fileID: 115274809} - {fileID: 115274809}
- {fileID: 1709530844} - {fileID: 1709530844}
- {fileID: 2019202047} - {fileID: 2019202047}
- {fileID: 21903749}
- {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 +2432,153 @@ 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: Button
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:
- {fileID: 313228665}
m_Father: {fileID: 1092900232}
m_RootOrder: 6
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: 703, y: 603.62}
m_SizeDelta: {x: 160, y: 30}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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

View 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);
}
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5013085c123fae4499f80b0a896f63af
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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()
{ {

View File

@ -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);

View File

@ -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
} }

View File

@ -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()

View 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;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 389cc3c423055324fb8d7de50f62f709
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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);
} }
} }
} }