Browse Source

编辑器内选择士兵摆放,并显示在场景中

wgl 8 tháng trước cách đây
mục cha
commit
12d0779670
18 tập tin đã thay đổi với 413 bổ sung97 xóa
  1. 1 1
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/GameMapTile.cs
  2. 1 1
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_EnemyTower.prefab
  3. 0 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_EnemyTower.prefab.meta
  4. 86 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Player.prefab
  5. 7 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Player.prefab.meta
  6. 2 2
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Tower.prefab
  7. 0 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Tower.prefab.meta
  8. 86 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_kongfu.prefab
  9. 7 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_kongfu.prefab.meta
  10. 86 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_shield.prefab
  11. 7 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_shield.prefab.meta
  12. 11 11
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Eidtor_arrow.prefab
  13. 7 0
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Eidtor_arrow.prefab.meta
  14. 0 9
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Player.prefab.meta
  15. 53 24
      ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Scripts/Main.cs
  16. 0 0
      ActionTowerDefense/Assets/GameLevelEditor/maps.asset
  17. 42 35
      ActionTowerDefense/Assets/GameLevelEditor/tiles.asset
  18. 17 14
      ActionTowerDefense/Assets/Scenes/Editor.unity

+ 1 - 1
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/GameMapTile.cs

@@ -26,7 +26,7 @@ public class GameMapTile
 	//	(of course the demo script makes use of them so update it too)
 	//	Remember to add/remove fields to CopyTo() function too
 
-	public enum Type { Null = 0, Enemy=1, Tower=2, EnemyTower=3 }
+	public enum Type { Null = 0, Player = 1, Tower=2, EnemyTower=3, Enemy=4 }
 	public Type type = Type.Null;	// the runtime might use something like this to identify what the placed tile means
 	public int opt1 = 0;			// this value could depend on the chosen type. For example, if NPC then this could indicate which NPC prefab to spawn from an array of NPC prefabs.
 	

+ 1 - 1
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/NPC1.prefab → ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_EnemyTower.prefab

@@ -11,7 +11,7 @@ GameObject:
   - component: {fileID: 4898395561882668}
   - component: {fileID: 212764839259425412}
   m_Layer: 0
-  m_Name: NPC1
+  m_Name: Editor_EnemyTower
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0

+ 0 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/NPC1.prefab.meta → ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_EnemyTower.prefab.meta


+ 86 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Player.prefab

@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6309527750232326999
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1814158148553289209}
+  - component: {fileID: 1251764759290695804}
+  m_Layer: 0
+  m_Name: Editor_Player
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1814158148553289209
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6309527750232326999}
+  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: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1251764759290695804
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6309527750232326999}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: 314eb574913f9df42895abd4ce8601d8, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 0.48, y: 0.48}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0

+ 7 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Player.prefab.meta

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

+ 2 - 2
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/NPC2.prefab → ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Tower.prefab

@@ -11,7 +11,7 @@ GameObject:
   - component: {fileID: 4352991751251628}
   - component: {fileID: 212115148741949868}
   m_Layer: 0
-  m_Name: NPC2
+  m_Name: Editor_Tower
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -74,7 +74,7 @@ SpriteRenderer:
   m_SortingLayer: 0
   m_SortingOrder: 0
   m_Sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
-  m_Color: {r: 1, g: 0.9310343, b: 0, a: 1}
+  m_Color: {r: 0, g: 1, b: 0.039124012, a: 1}
   m_FlipX: 0
   m_FlipY: 0
   m_DrawMode: 0

+ 0 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/NPC2.prefab.meta → ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_Tower.prefab.meta


+ 86 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_kongfu.prefab

@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2408306911624103001
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3919881697711834308}
+  - component: {fileID: 8697869900762284564}
+  m_Layer: 0
+  m_Name: Editor_kongfu
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3919881697711834308
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2408306911624103001}
+  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: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &8697869900762284564
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2408306911624103001}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: 43f59a03605a34d4abed7ed387066287, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1.28, y: 1.28}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0

+ 7 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_kongfu.prefab.meta

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

+ 86 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_shield.prefab

@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2973118389199130069
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2301284910556777173}
+  - component: {fileID: 5247132188713384390}
+  m_Layer: 0
+  m_Name: Editor_shield
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &2301284910556777173
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2973118389199130069}
+  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: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &5247132188713384390
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2973118389199130069}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: b371758afaed0994e9076c34d8dbac5f, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1.28, y: 1.28}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0

+ 7 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Editor_shield.prefab.meta

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

+ 11 - 11
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Player.prefab → ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Eidtor_arrow.prefab

@@ -1,6 +1,6 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1 &1105382562349734
+--- !u!1 &3823169035691117434
 GameObject:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -8,22 +8,22 @@ GameObject:
   m_PrefabAsset: {fileID: 0}
   serializedVersion: 6
   m_Component:
-  - component: {fileID: 4405825089211340}
-  - component: {fileID: 212955692358028122}
+  - component: {fileID: 3191714886677051157}
+  - component: {fileID: 3280463584810499438}
   m_Layer: 0
-  m_Name: Player
+  m_Name: Eidtor_arrow
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!4 &4405825089211340
+--- !u!4 &3191714886677051157
 Transform:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1105382562349734}
+  m_GameObject: {fileID: 3823169035691117434}
   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}
@@ -32,13 +32,13 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &212955692358028122
+--- !u!212 &3280463584810499438
 SpriteRenderer:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1105382562349734}
+  m_GameObject: {fileID: 3823169035691117434}
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
@@ -73,12 +73,12 @@ SpriteRenderer:
   m_SortingLayerID: 0
   m_SortingLayer: 0
   m_SortingOrder: 0
-  m_Sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
-  m_Color: {r: 0.034482718, g: 1, b: 0, a: 1}
+  m_Sprite: {fileID: 21300000, guid: 01c1ca6a4fe22a94b91a3b2b90b5c88f, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_FlipX: 0
   m_FlipY: 0
   m_DrawMode: 0
-  m_Size: {x: 0.32, y: 0.32}
+  m_Size: {x: 1.28, y: 1.28}
   m_AdaptiveModeThreshold: 0.5
   m_SpriteTileMode: 0
   m_WasSpriteAssigned: 1

+ 7 - 0
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Eidtor_arrow.prefab.meta

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

+ 0 - 9
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Prefabs/Player.prefab.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 97291c76034a8e34b8a667b05b74c993
-timeCreated: 1499066694
-licenseType: Free
-NativeFormatImporter:
-  mainObjectFileID: 100100000
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 53 - 24
ActionTowerDefense/Assets/GameLevelEditor/GameMap/Sample/Scripts/Main.cs

@@ -14,19 +14,19 @@ public class Main : MonoBehaviour
 
 	[Space]
 	[SerializeField] public GameMapsAsset mapsAsset;
-	[SerializeField] public GameObject playerFab;
-	[SerializeField] public GameObject floorFab;
-	[SerializeField] public GameObject[] npcFabs;
-	[SerializeField] public GameObject[] trapFabs;
+	[SerializeField] public GameObject[] playerFab;
+	[SerializeField] public GameObject[] towerFab;
+	[SerializeField] public GameObject[] enemyTowerFab;
+	[SerializeField] public GameObject[] enemyFabs;
 
 	[Space]
-	public Transform parent;
 	public float dragSpeed = 2.0f; // 拖动速度
 	[HideInInspector] public Vector3 dragOrigin; // 拖动起始点
 
-	[HideInInspector] public Transform floorContainer;
-	[HideInInspector] public Transform npcContainer;
-	[HideInInspector] public Transform trapContainer;
+	[HideInInspector] public Transform PlayerContainer;
+	[HideInInspector] public Transform TowerContainer;
+	[HideInInspector] public Transform EnemyTowerContainer;
+	[HideInInspector] public Transform EnemyContainer;
 
 	#endregion
 	// ----------------------------------------------------------------------------------------------------------------
@@ -44,6 +44,11 @@ public class Main : MonoBehaviour
 			LoadMap(0);
         }
 
+        if (Input.GetKeyDown(KeyCode.Space))
+        {
+			Camera.main.transform.localPosition = Vector3.zero;
+        }
+
 		if (Input.GetMouseButtonDown(2))
 		{
 			dragOrigin = Input.mousePosition;
@@ -72,21 +77,31 @@ public class Main : MonoBehaviour
 		float offsY = -offset;
 
         // create containers for the various map objects
-        if (!floorContainer)
+        if (!PlayerContainer)
         {
-			floorContainer = new GameObject("Tiles").transform;
-			floorContainer.SetParent(parent, false);
-			npcContainer = new GameObject("NPCs").transform;
-			npcContainer.SetParent(parent, false);
-			trapContainer = new GameObject("Traps").transform;
-			trapContainer.SetParent(parent, false);
+			PlayerContainer = new GameObject("Player").transform;
+			TowerContainer = new GameObject("Tower").transform;
+			EnemyTowerContainer = new GameObject("EnemyTower").transform;
+			EnemyContainer = new GameObject("Enemy").transform;
         }
         else
         {
-			for(int i= 0; i < npcContainer.transform.childCount; i++)
+			for (int i = 0; i < PlayerContainer.transform.childCount; i++)
+			{
+				Destroy(PlayerContainer.transform.GetChild(i).gameObject);
+			}
+			for (int i= 0; i < TowerContainer.transform.childCount; i++)
             {
-				Destroy(npcContainer.transform.GetChild(i).gameObject);
+				Destroy(TowerContainer.transform.GetChild(i).gameObject);
             }
+			for (int i = 0; i < EnemyTowerContainer.transform.childCount; i++)
+			{
+				Destroy(EnemyTowerContainer.transform.GetChild(i).gameObject);
+			}
+			for (int i = 0; i < EnemyContainer.transform.childCount; i++)
+			{
+				Destroy(EnemyContainer.transform.GetChild(i).gameObject);
+			}
 		}
 
 		// place tiles and objects. GameMap supports laters but if you choose not to use them then you only need to read from map.grid[]
@@ -103,19 +118,33 @@ public class Main : MonoBehaviour
 				{
 					GameMapTile t = mapsAsset.tileAsset.GetTile(grid[idx++]);
 					if (t == null) continue;
-					SpriteRenderer ren = Instantiate(npcFabs[t.opt1]).GetComponent<SpriteRenderer>();
-					ren.transform.SetParent(npcContainer, false);
-					ren.transform.localScale = new Vector3(tileSize / ren.sprite.rect.width, tileSize / ren.sprite.rect.height, 1f);
-					ren.transform.localPosition = new Vector3(x * sz + offsX, y * sz + offsY, 0f);
+					SpriteRenderer ren = null;
 					switch (t.type)
                     {
-						case GameMapTile.Type.Enemy:
-                            break;
+						case GameMapTile.Type.Player:
+							ren = Instantiate(playerFab[t.opt1]).GetComponentInChildren<SpriteRenderer>();
+							ren.transform.SetParent(PlayerContainer, false);
+							ren.transform.localPosition = new Vector3(x * sz + offsX, y * sz + offsY, 0f);
+							break;
 						case GameMapTile.Type.Tower:
+							ren = Instantiate(towerFab[t.opt1]).GetComponent<SpriteRenderer>();
+							ren.transform.SetParent(TowerContainer, false);
+							ren.transform.localPosition = new Vector3(x * sz + offsX, y * sz + offsY, 0f);
 							break;
 						case GameMapTile.Type.EnemyTower:
+							ren = Instantiate(enemyTowerFab[t.opt1]).GetComponent<SpriteRenderer>();
+							ren.transform.SetParent(EnemyTowerContainer, false);
+							ren.transform.localPosition = new Vector3(x * sz + offsX, y * sz + offsY, 0f);
 							break;
-                    }
+						case GameMapTile.Type.Enemy:
+							ren = Instantiate(enemyFabs[t.opt1]).GetComponent<SpriteRenderer>();
+							ren.transform.SetParent(EnemyContainer, false);
+							ren.transform.localPosition = new Vector3(x * sz + offsX, y * sz + offsY, 0f);
+							break;
+					}
+					if (ren == null) continue;
+					ren.transform.localScale = new Vector3(tileSize / ren.sprite.rect.width, tileSize / ren.sprite.rect.height, 1f);
+					
 					//if (t.type == GameMapTile.Type.Floor)
 					//{   // place a floor tile
 					//	if (t.sprite == null) continue;

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
ActionTowerDefense/Assets/GameLevelEditor/maps.asset


+ 42 - 35
ActionTowerDefense/Assets/GameLevelEditor/tiles.asset

@@ -13,39 +13,46 @@ MonoBehaviour:
   m_Name: tiles
   m_EditorClassIdentifier: 
   tiles:
-  - id: 4
-    sprite: {fileID: 0}
+  - id: 162
+    sprite: {fileID: 21300000, guid: 314eb574913f9df42895abd4ce8601d8, type: 3}
+    _aid: -1
+    type: 1
+    opt1: 0
+    color: {r: 1, g: 1, b: 1, a: 1}
+    strVal: 
+  - id: 167
+    sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
     _aid: -1
     type: 2
     opt1: 0
-    color: {r: 0.15862083, g: 1, b: 0, a: 1}
-    strVal: start
-  - id: 5
-    sprite: {fileID: 0}
+    color: {r: 0.17626214, g: 1, b: 0, a: 1}
+    strVal: 
+  - id: 166
+    sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
     _aid: -1
     type: 3
     opt1: 0
     color: {r: 1, g: 0, b: 0, a: 1}
-    strVal: end
-  - id: 6
-    sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
+    strVal: 
+  - id: 163
+    sprite: {fileID: 21300000, guid: 01c1ca6a4fe22a94b91a3b2b90b5c88f, type: 3}
     _aid: -1
-    type: 1
+    type: 4
     opt1: 0
-    color: {r: 1, g: 0, b: 0, a: 1}
+    color: {r: 1, g: 1, b: 1, a: 1}
     strVal: 
-  - id: 7
-    sprite: {fileID: 21300000, guid: 65b0651ef19a49c4e9c6c4ff297c3d52, type: 3}
+  - id: 164
+    sprite: {fileID: 21300000, guid: 43f59a03605a34d4abed7ed387066287, type: 3}
     _aid: -1
-    type: 1
+    type: 4
     opt1: 1
-    color: {r: 0.862069, g: 1, b: 0, a: 1}
+    color: {r: 1, g: 1, b: 1, a: 1}
     strVal: 
-  - id: 97
-    sprite: {fileID: 21300000, guid: 1776fa26195f4d14a8d19c15614b3dd1, type: 3}
+  - id: 165
+    sprite: {fileID: 21300000, guid: b371758afaed0994e9076c34d8dbac5f, type: 3}
     _aid: -1
-    type: 1
-    opt1: 0
+    type: 4
+    opt1: 2
     color: {r: 1, g: 1, b: 1, a: 1}
     strVal: 
   autoTiles:
@@ -61,107 +68,107 @@ MonoBehaviour:
     - id: 32
       sprite: {fileID: 21300086, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 33
       sprite: {fileID: 21300092, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 34
       sprite: {fileID: 21300084, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 35
       sprite: {fileID: 21300088, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 36
       sprite: {fileID: 21300008, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 37
       sprite: {fileID: 21300090, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 38
       sprite: {fileID: 21300010, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 39
       sprite: {fileID: 21300004, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 40
       sprite: {fileID: 21300082, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 41
       sprite: {fileID: 21300076, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 42
       sprite: {fileID: 21300080, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 43
       sprite: {fileID: 21300000, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 44
       sprite: {fileID: 21300078, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 45
       sprite: {fileID: 21300002, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
     - id: 46
       sprite: {fileID: 21300006, guid: 40d48dc34acd41044a366ee03841e848, type: 3}
       _aid: 1
-      type: 0
+      type: 3
       opt1: 0
       color: {r: 1, g: 1, b: 1, a: 1}
       strVal: 
-  nextTileId: 161
+  nextTileId: 168
   nextAutoTileId: 7

+ 17 - 14
ActionTowerDefense/Assets/Scenes/Editor.unity

@@ -6911,7 +6911,7 @@ Camera:
   far clip plane: 50
   field of view: 60
   orthographic: 1
-  orthographic size: 5
+  orthographic size: 8
   m_Depth: -1
   m_CullingMask:
     serializedVersion: 2
@@ -6988,23 +6988,26 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: bde5bd8db153fb4429aabdfecbf3e3c3, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  tileSize: 64
-  offset: 0.5
+  tileSize: 100
+  offset: 1
   ppu: 100
   mapsAsset: {fileID: 11400000, guid: bbf7388a54f14f842b7aecb67d709046, type: 2}
-  playerFab: {fileID: 1105382562349734, guid: 97291c76034a8e34b8a667b05b74c993, type: 3}
-  floorFab: {fileID: 1785946539236164, guid: c242da35d5b354343bf7c851e86985f9, type: 3}
-  npcFabs:
-  - {fileID: 1937426593683706, guid: fd67b3c9abcfbfb419bfe5f0c7fe4777, type: 3}
+  playerFab:
+  - {fileID: 6309527750232326999, guid: 896a2977899fcd6489b4acbe42ba05ea, type: 3}
+  towerFab:
   - {fileID: 1495283989979954, guid: 606d546f72896eb4eb1f4577b3b4738b, type: 3}
-  trapFabs:
-  - {fileID: 1773518891763322, guid: c85322fd118b50e429fd10d18407311b, type: 3}
-  parent: {fileID: 0}
-  dragSpeed: 10
+  enemyTowerFab:
+  - {fileID: 1937426593683706, guid: fd67b3c9abcfbfb419bfe5f0c7fe4777, type: 3}
+  enemyFabs:
+  - {fileID: 3823169035691117434, guid: 76dc59594f54d5746b8abf00c0114fa6, type: 3}
+  - {fileID: 2408306911624103001, guid: f7c29e50893bfe44596409ee19b64847, type: 3}
+  - {fileID: 2973118389199130069, guid: 590ad292a840aeb49a32d09cd33bb27c, type: 3}
+  dragSpeed: 25
   dragOrigin: {x: 0, y: 0, z: 0}
-  floorContainer: {fileID: 0}
-  npcContainer: {fileID: 0}
-  trapContainer: {fileID: 0}
+  PlayerContainer: {fileID: 0}
+  TowerContainer: {fileID: 0}
+  EnemyTowerContainer: {fileID: 0}
+  EnemyContainer: {fileID: 0}
 --- !u!1 &2142743453
 GameObject:
   m_ObjectHideFlags: 0

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác