wulifu пре 1 година
родитељ
комит
7a62dbe41b
36 измењених фајлова са 1884 додато и 188 уклоњено
  1. 8 0
      ActionTowerDefense/Assets/Animations.meta
  2. 8 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword.meta
  3. 130 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack.controller
  4. 8 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack.controller.meta
  5. 152 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack1.anim
  6. 8 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack1.anim.meta
  7. 152 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack2.anim
  8. 8 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack2.anim.meta
  9. 98 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Idle.anim
  10. 8 0
      ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Idle.anim.meta
  11. 8 0
      ActionTowerDefense/Assets/Animations/Player.meta
  12. 101 0
      ActionTowerDefense/Assets/Animations/Player/PlayerAttack.controller
  13. 8 0
      ActionTowerDefense/Assets/Animations/Player/PlayerAttack.controller.meta
  14. 152 0
      ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Attack1.anim
  15. 8 0
      ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Attack1.anim.meta
  16. 98 0
      ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Idle.anim
  17. 8 0
      ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Idle.anim.meta
  18. 39 7
      ActionTowerDefense/Assets/Resources/Prefab/Demonic_Arrow.prefab
  19. 39 7
      ActionTowerDefense/Assets/Resources/Prefab/Demonic_Giant.prefab
  20. 39 7
      ActionTowerDefense/Assets/Resources/Prefab/Demonic_Sword.prefab
  21. 191 4
      ActionTowerDefense/Assets/Resources/Prefab/Enemy_Sword.prefab
  22. 203 6
      ActionTowerDefense/Assets/Resources/Prefab/Player.prefab
  23. 0 8
      ActionTowerDefense/Assets/Scenes/SampleScene.unity
  24. 62 0
      ActionTowerDefense/Assets/Scripts/AttackTrigger.cs
  25. 11 0
      ActionTowerDefense/Assets/Scripts/AttackTrigger.cs.meta
  26. 68 0
      ActionTowerDefense/Assets/Scripts/BeHitTrigger.cs
  27. 11 0
      ActionTowerDefense/Assets/Scripts/BeHitTrigger.cs.meta
  28. 32 0
      ActionTowerDefense/Assets/Scripts/BeSearchTrigger.cs
  29. 11 0
      ActionTowerDefense/Assets/Scripts/BeSearchTrigger.cs.meta
  30. 57 23
      ActionTowerDefense/Assets/Scripts/Demonic.cs
  31. 71 25
      ActionTowerDefense/Assets/Scripts/Enemy.cs
  32. 1 8
      ActionTowerDefense/Assets/Scripts/EnemyTower.cs
  33. 47 2
      ActionTowerDefense/Assets/Scripts/PlayerController.cs
  34. 37 82
      ActionTowerDefense/Assets/Scripts/SearchTrigger.cs
  35. 1 8
      ActionTowerDefense/Assets/Scripts/Tower.cs
  36. 1 1
      ActionTowerDefense/ProjectSettings/DynamicsManager.asset

+ 8 - 0
ActionTowerDefense/Assets/Animations.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 234869c63f323cf46a6309126122be29
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 40160e344b6a9a345bf3245cf0e3d8c1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 130 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack.controller

@@ -0,0 +1,130 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-9039484085569400699
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: attack1
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7400000, guid: 53cff01eefde73d4690c75c7ccfb9606, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!91 &9100000
+AnimatorController:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Attack
+  serializedVersion: 5
+  m_AnimatorParameters: []
+  m_AnimatorLayers:
+  - serializedVersion: 5
+    m_Name: Base Layer
+    m_StateMachine: {fileID: 1776517252833726357}
+    m_Mask: {fileID: 0}
+    m_Motions: []
+    m_Behaviours: []
+    m_BlendingMode: 0
+    m_SyncedLayerIndex: -1
+    m_DefaultWeight: 0
+    m_IKPass: 0
+    m_SyncedLayerAffectsTiming: 0
+    m_Controller: {fileID: 9100000}
+--- !u!1107 &1776517252833726357
+AnimatorStateMachine:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Base Layer
+  m_ChildStates:
+  - serializedVersion: 1
+    m_State: {fileID: -9039484085569400699}
+    m_Position: {x: 400, y: 60, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 2306193328987281368}
+    m_Position: {x: 400, y: 120, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 5524836056086674188}
+    m_Position: {x: 400, y: 0, z: 0}
+  m_ChildStateMachines: []
+  m_AnyStateTransitions: []
+  m_EntryTransitions: []
+  m_StateMachineTransitions: {}
+  m_StateMachineBehaviours: []
+  m_AnyStatePosition: {x: 50, y: 20, z: 0}
+  m_EntryPosition: {x: 50, y: 120, z: 0}
+  m_ExitPosition: {x: 800, y: 120, z: 0}
+  m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+  m_DefaultState: {fileID: 2306193328987281368}
+--- !u!1102 &2306193328987281368
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7400000, guid: 6e487e11d07415d42aad72179b4f916d, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &5524836056086674188
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: attack2
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7400000, guid: 162ee280e2943fe46ace10f61d1a6970, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 

+ 8 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack.controller.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 386ae4a82c0e57d42bb18d4b04fb6bc1
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 9100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 152 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack1.anim

@@ -0,0 +1,152 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Attack_Attack1
+  serializedVersion: 6
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.5
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 2552762923
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.5
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []

+ 8 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack1.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 53cff01eefde73d4690c75c7ccfb9606
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 152 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack2.anim

@@ -0,0 +1,152 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Attack_Attack2
+  serializedVersion: 6
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.5
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 2552762923
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.5
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []

+ 8 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Attack2.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 162ee280e2943fe46ace10f61d1a6970
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 98 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Idle.anim

@@ -0,0 +1,98 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Attack_Idle
+  serializedVersion: 6
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 2552762923
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []

+ 8 - 0
ActionTowerDefense/Assets/Animations/Enemy_Sword/Attack_Idle.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6e487e11d07415d42aad72179b4f916d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
ActionTowerDefense/Assets/Animations/Player.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6f97e59dec05611409b14ad6e621bcb5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 101 - 0
ActionTowerDefense/Assets/Animations/Player/PlayerAttack.controller

@@ -0,0 +1,101 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-9039484085569400699
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: attack1
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7400000, guid: 9a58073ab583a3043ae90fa11d355ad1, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!91 &9100000
+AnimatorController:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: PlayerAttack
+  serializedVersion: 5
+  m_AnimatorParameters: []
+  m_AnimatorLayers:
+  - serializedVersion: 5
+    m_Name: Base Layer
+    m_StateMachine: {fileID: 1776517252833726357}
+    m_Mask: {fileID: 0}
+    m_Motions: []
+    m_Behaviours: []
+    m_BlendingMode: 0
+    m_SyncedLayerIndex: -1
+    m_DefaultWeight: 0
+    m_IKPass: 0
+    m_SyncedLayerAffectsTiming: 0
+    m_Controller: {fileID: 9100000}
+--- !u!1107 &1776517252833726357
+AnimatorStateMachine:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Base Layer
+  m_ChildStates:
+  - serializedVersion: 1
+    m_State: {fileID: -9039484085569400699}
+    m_Position: {x: 400, y: 60, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 2306193328987281368}
+    m_Position: {x: 400, y: 120, z: 0}
+  m_ChildStateMachines: []
+  m_AnyStateTransitions: []
+  m_EntryTransitions: []
+  m_StateMachineTransitions: {}
+  m_StateMachineBehaviours: []
+  m_AnyStatePosition: {x: 50, y: 20, z: 0}
+  m_EntryPosition: {x: 50, y: 120, z: 0}
+  m_ExitPosition: {x: 800, y: 120, z: 0}
+  m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+  m_DefaultState: {fileID: 2306193328987281368}
+--- !u!1102 &2306193328987281368
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7400000, guid: b4302ded9ba894947999a7faceb7a3c8, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 

+ 8 - 0
ActionTowerDefense/Assets/Animations/Player/PlayerAttack.controller.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 17a1a665491ce9a4085caec9474dd395
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 9100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 152 - 0
ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Attack1.anim

@@ -0,0 +1,152 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: PlayerAttack_Attack1
+  serializedVersion: 6
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.5
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 2552762923
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.5
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 0.6666667
+        value: 1
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []

+ 8 - 0
ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Attack1.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9a58073ab583a3043ae90fa11d355ad1
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 98 - 0
ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Idle.anim

@@ -0,0 +1,98 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: PlayerAttack_Idle
+  serializedVersion: 6
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 2552762923
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: Infinity
+        outSlope: Infinity
+        tangentMode: 103
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: AttackTrigger
+    classID: 1
+    script: {fileID: 0}
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []

+ 8 - 0
ActionTowerDefense/Assets/Animations/Player/PlayerAttack_Idle.anim.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b4302ded9ba894947999a7faceb7a3c8
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 39 - 7
ActionTowerDefense/Assets/Resources/Prefab/Demonic_Arrow.prefab

@@ -33,7 +33,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 8639832132491289354}
+  m_Father: {fileID: 6561999689701501378}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!33 &3791886041281981973
@@ -172,7 +172,7 @@ GameObject:
   - component: {fileID: 6832657651774999176}
   m_Layer: 0
   m_Name: BeSearchTrigger
-  m_TagString: Demonic
+  m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -189,7 +189,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 8639832132491289354}
+  m_Father: {fileID: 6561999689701501378}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &6832657651774999176
@@ -205,6 +205,40 @@ BoxCollider:
   serializedVersion: 2
   m_Size: {x: 2, y: 4.4, z: 1}
   m_Center: {x: 0, y: 2.2, z: 0}
+--- !u!1 &6911591061214860228
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6561999689701501378}
+  m_Layer: 7
+  m_Name: Colliders
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6561999689701501378
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6911591061214860228}
+  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: 2983912410871356969}
+  - {fileID: 8639832132450015556}
+  - {fileID: 5101632837952520453}
+  m_Father: {fileID: 8639832132491289354}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &8639832132450015563
 GameObject:
   m_ObjectHideFlags: 0
@@ -235,7 +269,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 8639832132491289354}
+  m_Father: {fileID: 6561999689701501378}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &8639832132450015557
@@ -294,9 +328,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
-  - {fileID: 2983912410871356969}
-  - {fileID: 8639832132450015556}
-  - {fileID: 5101632837952520453}
+  - {fileID: 6561999689701501378}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 39 - 7
ActionTowerDefense/Assets/Resources/Prefab/Demonic_Giant.prefab

@@ -12,7 +12,7 @@ GameObject:
   - component: {fileID: 637278332454425733}
   m_Layer: 0
   m_Name: BeSearchTrigger
-  m_TagString: Demonic
+  m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -29,7 +29,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 5440846222648032754}
+  m_Father: {fileID: 6414872075569274270}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &637278332454425733
@@ -75,7 +75,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 5440846222648032754}
+  m_Father: {fileID: 6414872075569274270}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &5440846222604650429
@@ -134,9 +134,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
-  - {fileID: 3262389902459024245}
-  - {fileID: 5440846222604650428}
-  - {fileID: 6207242290232856985}
+  - {fileID: 6414872075569274270}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -222,7 +220,7 @@ Transform:
   m_LocalScale: {x: 2, y: 2, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 5440846222648032754}
+  m_Father: {fileID: 6414872075569274270}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!33 &8447137249705371152
@@ -349,3 +347,37 @@ BoxCollider:
   serializedVersion: 2
   m_Size: {x: 5, y: 6, z: 1}
   m_Center: {x: 0, y: 3, z: 0}
+--- !u!1 &8040349407091637327
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6414872075569274270}
+  m_Layer: 7
+  m_Name: Colliders
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6414872075569274270
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8040349407091637327}
+  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: 3262389902459024245}
+  - {fileID: 5440846222604650428}
+  - {fileID: 6207242290232856985}
+  m_Father: {fileID: 5440846222648032754}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 39 - 7
ActionTowerDefense/Assets/Resources/Prefab/Demonic_Sword.prefab

@@ -1,5 +1,39 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1090663073729466903
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7794457276998281569}
+  m_Layer: 7
+  m_Name: Colliders
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7794457276998281569
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1090663073729466903}
+  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: 1971427318739414964}
+  - {fileID: 2437299196663985746}
+  - {fileID: 5718990486604556333}
+  m_Father: {fileID: 2437299196472462364}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &2437299196472462361
 GameObject:
   m_ObjectHideFlags: 0
@@ -30,9 +64,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
-  - {fileID: 1971427318739414964}
-  - {fileID: 2437299196663985746}
-  - {fileID: 5718990486604556333}
+  - {fileID: 7794457276998281569}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -115,7 +147,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 2437299196472462364}
+  m_Father: {fileID: 7794457276998281569}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &2437299196663985747
@@ -156,7 +188,7 @@ GameObject:
   - component: {fileID: 5683702269505879586}
   m_Layer: 0
   m_Name: BeSearchTrigger
-  m_TagString: Demonic
+  m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -173,7 +205,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 2437299196472462364}
+  m_Father: {fileID: 7794457276998281569}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &5683702269505879586
@@ -222,7 +254,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 2437299196472462364}
+  m_Father: {fileID: 7794457276998281569}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!33 &2070274865187464477

+ 191 - 4
ActionTowerDefense/Assets/Resources/Prefab/Enemy_Sword.prefab

@@ -1,5 +1,67 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1916444301582183241
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8550728524802026199}
+  - component: {fileID: 9063206483977235541}
+  - component: {fileID: 2280520615464243483}
+  m_Layer: 0
+  m_Name: AttackTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8550728524802026199
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1916444301582183241}
+  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: 7178342375467680425}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &9063206483977235541
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1916444301582183241}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 3, y: 5, z: 1}
+  m_Center: {x: -3, y: 2.5, z: 0}
+--- !u!114 &2280520615464243483
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1916444301582183241}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5eaed0a6b9d6fc6409bef80cf41a0a8e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+  trigedObjs: []
+  damage: 0
+  force: {x: 0, y: 0, z: 0}
 --- !u!1 &2437299196472462361
 GameObject:
   m_ObjectHideFlags: 0
@@ -34,6 +96,8 @@ Transform:
   - {fileID: 2437299196663985746}
   - {fileID: 2922750703785930471}
   - {fileID: 5034931269216377232}
+  - {fileID: 6936852277045865654}
+  - {fileID: 7178342375467680425}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -51,6 +115,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   mecanim: {fileID: 5617185463097218335}
   ani: {fileID: 6496896669866891404}
+  aniAttack: {fileID: 2250177594949393219}
   rb: {fileID: 2437299196472462355}
   foot: {fileID: 2437299196663985756}
   bodyCollider: {fileID: 6193094671698534470}
@@ -58,7 +123,7 @@ MonoBehaviour:
   extraRiseGravity: -80
   extraFallGravity: -40
   jumpSpeed: 25
-  maxMoveSpeed: 25
+  maxMoveSpeed: 5
   state: 0
   searchState: 0
   hurtKeepTime: 0
@@ -70,7 +135,17 @@ MonoBehaviour:
   isDie: 0
   totalHp: 100
   hp: 0
-  attackDistance: 0
+  attack1Infos:
+  - damage: 5
+    attackDir: {x: -1, y: 0, z: 0}
+    force: 1000
+  attack2Infos:
+  - damage: 5
+    attackDir: {x: -1, y: 0, z: 0}
+    force: 1000
+  attackTriggers:
+  - {fileID: 2280520615464243483}
+  attackDistance: 3
   canFly: 0
   canHitFly: 0
   targetDemonic: {fileID: 0}
@@ -163,7 +238,7 @@ GameObject:
   - component: {fileID: 8107402525806353083}
   m_Layer: 0
   m_Name: BeSearchTrigger
-  m_TagString: Enemy
+  m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -196,6 +271,65 @@ BoxCollider:
   serializedVersion: 2
   m_Size: {x: 2, y: 4.4, z: 1}
   m_Center: {x: 0, y: 2.2, z: 0}
+--- !u!1 &4960124152152785005
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6936852277045865654}
+  - component: {fileID: 2640996939016594402}
+  - component: {fileID: 6427563181875878110}
+  m_Layer: 0
+  m_Name: BeHitTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6936852277045865654
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4960124152152785005}
+  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: 2437299196472462364}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &2640996939016594402
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4960124152152785005}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 2, y: 4.4, z: 1}
+  m_Center: {x: 0, y: 2.2, z: 0}
+--- !u!114 &6427563181875878110
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4960124152152785005}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8b2c8973c65adf4448805aa906f6ad29, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
 --- !u!1 &6164447163453378808
 GameObject:
   m_ObjectHideFlags: 0
@@ -221,7 +355,7 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6164447163453378808}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  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
@@ -256,6 +390,59 @@ BoxCollider:
   serializedVersion: 2
   m_Size: {x: 40, y: 5, z: 1}
   m_Center: {x: 0, y: 2.5, z: 0}
+--- !u!1 &6382412198167824060
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7178342375467680425}
+  - component: {fileID: 2250177594949393219}
+  m_Layer: 8
+  m_Name: AttackTriggerAnim
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7178342375467680425
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6382412198167824060}
+  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: 8550728524802026199}
+  m_Father: {fileID: 2437299196472462364}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!95 &2250177594949393219
+Animator:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6382412198167824060}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 386ae4a82c0e57d42bb18d4b04fb6bc1, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 0
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_StabilizeFeet: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0
 --- !u!1 &7669620205589286043
 GameObject:
   m_ObjectHideFlags: 0

+ 203 - 6
ActionTowerDefense/Assets/Resources/Prefab/Player.prefab

@@ -10,9 +10,10 @@ GameObject:
   m_Component:
   - component: {fileID: 4888623876213599751}
   - component: {fileID: 7434605738363989396}
+  - component: {fileID: 573198802}
   m_Layer: 0
   m_Name: BeSearchTrigger
-  m_TagString: Player
+  m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -39,12 +40,78 @@ BoxCollider:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1367816017394770223}
-  m_Material: {fileID: 13400000, guid: 1987cb0dc79114c45b27e25ba8ddb69a, type: 2}
+  m_Material: {fileID: 0}
   m_IsTrigger: 1
   m_Enabled: 1
   serializedVersion: 2
   m_Size: {x: 1.6, y: 5, z: 1}
   m_Center: {x: 0, y: 2.5, z: 0}
+--- !u!114 &573198802
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1367816017394770223}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8ff1eeae99d9b8142acd628550a50e26, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+--- !u!1 &1552085686713530694
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5205406772191310031}
+  - component: {fileID: 5072770566235913242}
+  m_Layer: 6
+  m_Name: AttackTriggerAnim
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &5205406772191310031
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1552085686713530694}
+  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: 6229172248453544182}
+  m_Father: {fileID: 3571941038519084349}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!95 &5072770566235913242
+Animator:
+  serializedVersion: 4
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1552085686713530694}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 17a1a665491ce9a4085caec9474dd395, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 1
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_StabilizeFeet: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0
 --- !u!1 &3571941038519084344
 GameObject:
   m_ObjectHideFlags: 0
@@ -58,7 +125,7 @@ GameObject:
   - component: {fileID: 3571941038519084339}
   m_Layer: 6
   m_Name: Player
-  m_TagString: Untagged
+  m_TagString: Player
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -76,9 +143,11 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 7749421205528274812}
-  - {fileID: 3571941039716665621}
   - {fileID: 3571941040047527335}
+  - {fileID: 3571941039716665621}
   - {fileID: 4888623876213599751}
+  - {fileID: 8708596147765169231}
+  - {fileID: 5205406772191310031}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -96,6 +165,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   mecanim: {fileID: 6843453365888964567}
   ani: {fileID: 6197716555580445942}
+  aniAttack: {fileID: 5072770566235913242}
   rb: {fileID: 3571941038519084339}
   foot: {fileID: 3571941039716665623}
   bodyCollider: {fileID: 6376286859095226285}
@@ -140,6 +210,12 @@ MonoBehaviour:
   isDie: 0
   totalHp: 100
   hp: 0
+  attack1Infos:
+  - damage: 5
+    attackDir: {x: -1, y: 0, z: 0}
+    force: 1000
+  attackTriggers:
+  - {fileID: 1267495056}
   isClickBtnJump: 0
   isClickBtnRush: 0
   isClickBtnSouth: 0
@@ -193,7 +269,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3571941038519084349}
-  m_RootOrder: 1
+  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &3571941039716665620
 BoxCollider:
@@ -251,7 +327,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3571941038519084349}
-  m_RootOrder: 2
+  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!65 &3571941040047527332
 BoxCollider:
@@ -426,3 +502,124 @@ BoxCollider:
   serializedVersion: 2
   m_Size: {x: 1.6, y: 5, z: 1}
   m_Center: {x: 0, y: 2.5, z: 0}
+--- !u!1 &5569876744729591823
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8708596147765169231}
+  - component: {fileID: 5434669259818984191}
+  - component: {fileID: 7995092481582001509}
+  m_Layer: 0
+  m_Name: BeHitTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8708596147765169231
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5569876744729591823}
+  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: 3571941038519084349}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &5434669259818984191
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5569876744729591823}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1.6, y: 5, z: 1}
+  m_Center: {x: 0, y: 2.5, z: 0}
+--- !u!114 &7995092481582001509
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5569876744729591823}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8b2c8973c65adf4448805aa906f6ad29, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+--- !u!1 &8722136878745494474
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6229172248453544182}
+  - component: {fileID: 3055975958972206213}
+  - component: {fileID: 1267495056}
+  m_Layer: 0
+  m_Name: AttackTrigger
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6229172248453544182
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8722136878745494474}
+  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: 5205406772191310031}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &3055975958972206213
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8722136878745494474}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 3, y: 5, z: 1}
+  m_Center: {x: -3, y: 2.5, z: 0}
+--- !u!114 &1267495056
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8722136878745494474}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5eaed0a6b9d6fc6409bef80cf41a0a8e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+  trigedObjs: []
+  damage: 0
+  force: {x: 0, y: 0, z: 0}

+ 0 - 8
ActionTowerDefense/Assets/Scenes/SampleScene.unity

@@ -419,14 +419,6 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 5720304588384615462, guid: aaf35db4e76c3004fb462f102cf8535f, type: 3}
-      propertyPath: maxMoveSpeed
-      value: 5
-      objectReference: {fileID: 0}
-    - target: {fileID: 5720304588384615462, guid: aaf35db4e76c3004fb462f102cf8535f, type: 3}
-      propertyPath: attackDistance
-      value: 3
-      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: aaf35db4e76c3004fb462f102cf8535f, type: 3}
 --- !u!114 &1192490554 stripped

+ 62 - 0
ActionTowerDefense/Assets/Scripts/AttackTrigger.cs

@@ -0,0 +1,62 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class AttackTrigger : MonoBehaviour
+{
+    public GameObject owner;
+    public List<BeHitTrigger> trigedObjs;
+    public int damage;
+    public Vector3 force;
+
+    private void Awake()
+    {
+        if (GetComponentInParent<PlayerController>())
+        {
+            owner = GetComponentInParent<PlayerController>().gameObject;
+        }
+        else if (GetComponentInParent<Demonic>())
+        {
+            owner = GetComponentInParent<Demonic>().gameObject;
+        }
+        else if (GetComponentInParent<Tower>())
+        {
+            owner = GetComponentInParent<Tower>().gameObject;
+        }
+        else if (GetComponentInParent<Enemy>())
+        {
+            owner = GetComponentInParent<Enemy>().gameObject;
+        }
+        else if (GetComponentInParent<EnemyTower>())
+        {
+            owner = GetComponentInParent<EnemyTower>().gameObject;
+        }
+    }
+
+    private void OnTriggerEnter(Collider other)
+    {
+        BeHitTrigger hitTrigger = other.GetComponent<BeHitTrigger>();
+        if (hitTrigger != null)
+        {
+            bool triged = false;
+            for (int i = 0; i < trigedObjs.Count; i++)
+            {
+                if (trigedObjs[i] == hitTrigger)
+                {
+                    triged = true;
+                    break;
+                }
+            }
+            if (!triged)
+            {
+                trigedObjs.Add(hitTrigger);
+                hitTrigger.BeHit(damage, force);
+            }
+        }
+    }
+
+    private void OnEnable()
+    {
+        trigedObjs.Clear();
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/AttackTrigger.cs.meta

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

+ 68 - 0
ActionTowerDefense/Assets/Scripts/BeHitTrigger.cs

@@ -0,0 +1,68 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.U2D;
+
+public class BeHitTrigger : MonoBehaviour
+{
+    public GameObject owner;
+
+    private void Awake()
+    {
+        if (GetComponentInParent<PlayerController>())
+        {
+            owner = GetComponentInParent<PlayerController>().gameObject;
+        }
+        else if (GetComponentInParent<Demonic>())
+        {
+            owner = GetComponentInParent<Demonic>().gameObject;
+        }
+        else if (GetComponentInParent<Tower>())
+        {
+            owner = GetComponentInParent<Tower>().gameObject;
+        }
+        else if (GetComponentInParent<Enemy>())
+        {
+            owner = GetComponentInParent<Enemy>().gameObject;
+        }
+        else if (GetComponentInParent<EnemyTower>())
+        {
+            owner = GetComponentInParent<EnemyTower>().gameObject;
+        }
+    }
+
+    private void OnTriggerEnter(Collider other)
+    {
+        
+    }
+
+    public void BeHit(int damage, Vector3 force)
+    {
+        print("BeHit");
+        switch (owner.tag)
+        {
+            case "Player":
+                PlayerController player = owner.GetComponent<PlayerController>();
+                player.BeHit(damage, force);
+                break;
+            case "Demonic":
+                Demonic demonic = owner.GetComponent<Demonic>();
+                demonic.BeHit(damage, force);
+                break;
+            case "Tower":
+                Tower tower = owner.GetComponent<Tower>();
+                tower.BeHit(damage, force);
+                break;
+            case "Enemy":
+                Enemy enemy = owner.GetComponent<Enemy>();
+                enemy.BeHit(damage, force);
+                break;
+            case "EnemyTower":
+                EnemyTower enemyTower = owner.GetComponent<EnemyTower>();
+                enemyTower.BeHit(damage, force);
+                break;
+            default:
+                break;
+        }
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/BeHitTrigger.cs.meta

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

+ 32 - 0
ActionTowerDefense/Assets/Scripts/BeSearchTrigger.cs

@@ -0,0 +1,32 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class BeSearchTrigger : MonoBehaviour
+{
+    public GameObject owner;
+
+    private void Awake()
+    {
+        if (GetComponentInParent<PlayerController>())
+        {
+            owner = GetComponentInParent<PlayerController>().gameObject;
+        }
+        else if (GetComponentInParent<Demonic>())
+        {
+            owner = GetComponentInParent<Demonic>().gameObject;
+        }
+        else if (GetComponentInParent<Tower>())
+        {
+            owner = GetComponentInParent<Tower>().gameObject;
+        }
+        else if (GetComponentInParent<Enemy>())
+        {
+            owner = GetComponentInParent<Enemy>().gameObject;
+        }
+        else if (GetComponentInParent<EnemyTower>())
+        {
+            owner = GetComponentInParent<EnemyTower>().gameObject;
+        }
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/BeSearchTrigger.cs.meta

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

+ 57 - 23
ActionTowerDefense/Assets/Scripts/Demonic.cs

@@ -11,9 +11,8 @@ public enum DemonicState
     Rise = 3,//¿ÕÖÐÉÏÉý
     Fall = 4,//¿ÕÖÐÏÂÂä
     Hurt = 5,
-    Attack1 = 6,
-    Attack2 = 7,
-    Die = 8,
+    Attack = 6,
+    Die = 7,
 }
 
 public enum DemonicTargetType
@@ -31,6 +30,7 @@ public class Demonic : MonoBehaviour
     public Skeleton skeleton;
 
     public Animator ani;
+    public Animator aniAttack;
     public Rigidbody rb;
     public Foot foot;
     public Collider bodyCollider;
@@ -58,6 +58,8 @@ public class Demonic : MonoBehaviour
     public bool isDie = false;
     public int totalHp = 100;
     public int hp;
+    public List<AttackInfo> attack1Infos, attack2Infos;
+    public List<AttackTrigger> attackTriggers;
     public bool canFly = false;
     public float attackDistance;
 
@@ -72,6 +74,12 @@ public class Demonic : MonoBehaviour
         {
             ani = GetComponentInChildren<Animator>();
         }
+    }
+
+    public void BeSummon(int tHp)
+    {
+        totalHp = tHp;
+        hp = totalHp;
         ChangeState(DemonicState.Idle);
     }
 
@@ -107,7 +115,7 @@ public class Demonic : MonoBehaviour
             case DemonicState.Idle:
                 if (isAttack)
                 {
-                    ChangeState(DemonicState.Attack2);
+                    Attack2();
                     break;
                 }
                 if (!foot.TrigGround)
@@ -133,7 +141,7 @@ public class Demonic : MonoBehaviour
             case DemonicState.Walk:
                 if (isAttack)
                 {
-                    ChangeState(DemonicState.Attack2);
+                    Attack2();
                     break;
                 }
                 if (!foot.TrigGround)
@@ -245,14 +253,7 @@ public class Demonic : MonoBehaviour
                 }
                 rb.velocity = rb.velocity / 5 * 4;
                 break;
-            case DemonicState.Attack1:
-                if (attackTime <= 0)
-                {
-                    ChangeState(DemonicState.Idle);
-                    break;
-                }
-                break;
-            case DemonicState.Attack2:
+            case DemonicState.Attack:
                 if (attackTime <= 0)
                 {
                     ChangeState(DemonicState.Idle);
@@ -264,6 +265,42 @@ public class Demonic : MonoBehaviour
         }
     }
 
+    public void Attack1()
+    {
+        ani.Play("attack1", 0, 0);
+        aniAttack.Play("attack1", 0, 0);
+        attackTime = totalAttack1Time;
+        for (int i = 0; i < attack1Infos.Count; i++)
+        {
+            attackTriggers[i].damage = attack1Infos[i].damage;
+            Vector3 attackDir = attack1Infos[i].attackDir.normalized;
+            if (transform.localScale.x < 0)
+            {
+                attackDir.x = -attackDir.x;
+            }
+            attackTriggers[i].force = attackDir * attack1Infos[i].force;
+        }
+        ChangeState(DemonicState.Attack);
+    }
+
+    void Attack2()
+    {
+        ani.Play("attack2", 0, 0);
+        aniAttack.Play("attack2", 0, 0);
+        attackTime = totalAttack2Time;
+        for (int i = 0; i < attack2Infos.Count; i++)
+        {
+            attackTriggers[i].damage = attack2Infos[i].damage;
+            Vector3 attackDir = attack2Infos[i].attackDir.normalized;
+            if (transform.localScale.x < 0)
+            {
+                attackDir.x = -attackDir.x;
+            }
+            attackTriggers[i].force = attackDir * attack2Infos[i].force;
+        }
+        ChangeState(DemonicState.Attack);
+    }
+
     public void ChangeState(DemonicState newState)
     {
         switch (state)
@@ -278,9 +315,8 @@ public class Demonic : MonoBehaviour
                 break;
             case DemonicState.Hurt:
                 break;
-            case DemonicState.Attack1:
-                break;
-            case DemonicState.Attack2:
+            case DemonicState.Attack:
+                aniAttack.Play("idle", 0, 0);
                 break;
             case DemonicState.Die:
                 isDie = false;
@@ -312,13 +348,7 @@ public class Demonic : MonoBehaviour
                 invincibleTime = totalInvincibleTime;
                 //ani.Play("Invincible", 2, 0);
                 break;
-            case DemonicState.Attack1:
-                ani.Play("attack1", 0, 0);
-                attackTime = totalAttack1Time;
-                break;
-            case DemonicState.Attack2:
-                ani.Play("attack2", 0, 0);
-                attackTime = totalAttack2Time;
+            case DemonicState.Attack:
                 break;
             case DemonicState.Die:
                 ani.Play("die", 0, 0);
@@ -329,4 +359,8 @@ public class Demonic : MonoBehaviour
         }
     }
 
+    public void BeHit(int damage, Vector3 force)
+    {
+
+    }
 }

+ 71 - 25
ActionTowerDefense/Assets/Scripts/Enemy.cs

@@ -11,9 +11,8 @@ public enum EnemyState
     Rise = 3,//¿ÕÖÐÉÏÉý
     Fall = 4,//¿ÕÖÐÏÂÂä
     Hurt = 5,
-    Attack1 = 6,
-    Attack2 = 7,
-    Die = 8,
+    Attack = 6,
+    Die = 7,
 }
 
 public enum EnemyTargetType
@@ -38,6 +37,7 @@ public class Enemy : MonoBehaviour
     public Skeleton skeleton;
 
     public Animator ani;
+    public Animator aniAttack;
     public Rigidbody rb;
     public Foot foot;
     public Collider bodyCollider;
@@ -66,6 +66,8 @@ public class Enemy : MonoBehaviour
     public bool isDie = false;
     public int totalHp = 100;
     public int hp;
+    public List<AttackInfo> attack1Infos, attack2Infos;
+    public List<AttackTrigger> attackTriggers;
     public float attackDistance;
     public bool canFly = false;
     public bool canHitFly = false;
@@ -85,8 +87,8 @@ public class Enemy : MonoBehaviour
         {
             ani = GetComponentInChildren<Animator>();
         }
-        ChangeState(EnemyState.Idle);
-        ChangeSearchState(SearchState.NoTarget);
+        Debug.Log("²âÊÔ");
+        BeCreate(100);
     }
 
     private void FixedUpdate()
@@ -194,7 +196,7 @@ public class Enemy : MonoBehaviour
             case EnemyState.Idle:
                 if (isAttack)
                 {
-                    ChangeState(EnemyState.Attack2);
+                    Attack2();
                     break;
                 }
                 if (!foot.TrigGround)
@@ -220,7 +222,7 @@ public class Enemy : MonoBehaviour
             case EnemyState.Walk:
                 if (isAttack)
                 {
-                    ChangeState(EnemyState.Attack2);
+                    Attack2();
                     break;
                 }
                 if (!foot.TrigGround)
@@ -332,14 +334,7 @@ public class Enemy : MonoBehaviour
                 }
                 rb.velocity = rb.velocity / 5 * 4;
                 break;
-            case EnemyState.Attack1:
-                if (attackTime <= 0)
-                {
-                    ChangeState(EnemyState.Idle);
-                    break;
-                }
-                break;
-            case EnemyState.Attack2:
+            case EnemyState.Attack:
                 if (attackTime <= 0)
                 {
                     ChangeState(EnemyState.Idle);
@@ -365,9 +360,8 @@ public class Enemy : MonoBehaviour
                 break;
             case EnemyState.Hurt:
                 break;
-            case EnemyState.Attack1:
-                break;
-            case EnemyState.Attack2:
+            case EnemyState.Attack:
+                aniAttack.Play("idle", 0, 0);
                 break;
             case EnemyState.Die:
                 isDie = false;
@@ -398,13 +392,7 @@ public class Enemy : MonoBehaviour
                 hurtKeepTime = totalHurtKeepTime;
                 //ani.Play("Invincible", 2, 0);
                 break;
-            case EnemyState.Attack1:
-                ani.Play("attack1", 0, 0);
-                attackTime = totalAttack1Time;
-                break;
-            case EnemyState.Attack2:
-                ani.Play("attack2", 0, 0);
-                attackTime = totalAttack2Time;
+            case EnemyState.Attack:
                 break;
             case EnemyState.Die:
                 ani.Play("die", 0, 0);
@@ -613,4 +601,62 @@ public class Enemy : MonoBehaviour
                 break;
         }
     }
+
+    public void BeHit(int damage, Vector3 force)
+    {
+        hp -= damage;
+        rb.AddForce(force);
+        if (hp < 0)
+        {
+            ChangeState(EnemyState.Die);
+        }
+        else
+        {
+            ChangeState(EnemyState.Hurt);
+        }
+    }
+
+    public void Attack1()
+    {
+        ani.Play("attack1", 0, 0);
+        aniAttack.Play("attack1", 0, 0);
+        attackTime = totalAttack1Time;
+        for (int i = 0; i < attack1Infos.Count; i++)
+        {
+            attackTriggers[i].damage = attack1Infos[i].damage;
+            Vector3 attackDir = attack1Infos[i].attackDir.normalized;
+            if (transform.localScale.x < 0)
+            {
+                attackDir.x = -attackDir.x;
+            }
+            attackTriggers[i].force = attackDir * attack1Infos[i].force;
+        }
+        ChangeState(EnemyState.Attack);
+    }
+
+    void Attack2()
+    {
+        ani.Play("attack2", 0, 0);
+        aniAttack.Play("attack2", 0, 0);
+        attackTime = totalAttack2Time;
+        for (int i = 0; i < attack2Infos.Count; i++)
+        {
+            attackTriggers[i].damage = attack2Infos[i].damage;
+            Vector3 attackDir = attack2Infos[i].attackDir.normalized;
+            if (transform.localScale.x < 0)
+            {
+                attackDir.x = -attackDir.x;
+            }
+            attackTriggers[i].force = attackDir * attack2Infos[i].force;
+        }
+        ChangeState(EnemyState.Attack);
+    }
+
+    void BeCreate(int tHp)
+    {
+        totalHp = tHp;
+        hp = totalHp;
+        ChangeState(EnemyState.Idle);
+        ChangeSearchState(SearchState.NoTarget);
+    }
 }

+ 1 - 8
ActionTowerDefense/Assets/Scripts/EnemyTower.cs

@@ -4,15 +4,8 @@ using UnityEngine;
 
 public class EnemyTower : MonoBehaviour
 {
-    // Start is called before the first frame update
-    void Start()
+    public void BeHit(int damage, Vector3 force)
     {
-        
-    }
 
-    // Update is called once per frame
-    void Update()
-    {
-        
     }
 }

+ 47 - 2
ActionTowerDefense/Assets/Scripts/PlayerController.cs

@@ -7,7 +7,15 @@ using UnityEngine.LowLevel;
 using UnityEngine.Playables;
 using System.ComponentModel;
 using Unity.VisualScripting;
+using System;
 
+[Serializable]
+public struct AttackInfo
+{
+    public int damage;
+    public Vector3 attackDir;
+    public float force;
+}
 public enum PlayerState
 {
     None = 0,
@@ -27,6 +35,7 @@ public class PlayerController : MonoBehaviour
     public Skeleton skeleton;
 
     public Animator ani;
+    public Animator aniAttack;
     public Rigidbody rb;
     public Foot foot;
     public Collider bodyCollider;
@@ -83,6 +92,8 @@ public class PlayerController : MonoBehaviour
     public bool isDie = false;
     public int totalHp = 100;
     public int hp;
+    public List<AttackInfo> attack1Infos;
+    public List<AttackTrigger> attackTriggers;
 
     public bool btnJumpPress
     {
@@ -176,6 +187,7 @@ public class PlayerController : MonoBehaviour
         {
             ani = GetComponentInChildren<Animator>();
         }
+        hp = totalHp;
         ChangeState(PlayerState.Idle);
     }
 
@@ -281,7 +293,7 @@ public class PlayerController : MonoBehaviour
             {
                 if (excludeState != PlayerState.Attack)
                 {
-                    ChangeState(PlayerState.Attack);
+                    Attack1();
                     return true;
                 }
             }
@@ -358,6 +370,23 @@ public class PlayerController : MonoBehaviour
         return false;
     }
 
+    void Attack1()
+    {
+        ani.Play("attack1", 0, 0);
+        aniAttack.Play("attack1", 0, 0);
+        for (int i = 0; i < attack1Infos.Count; i++)
+        {
+            attackTriggers[i].damage = attack1Infos[i].damage;
+            Vector3 attackDir = attack1Infos[i].attackDir.normalized;
+            if (transform.localScale.x < 0)
+            {
+                attackDir.x = -attackDir.x;
+            }
+            attackTriggers[i].force = attackDir * attack1Infos[i].force;
+        }
+        ChangeState(PlayerState.Attack);
+    }
+
     public void CachedPlayerInput()
     {
         if (btnRushPress)
@@ -590,6 +619,7 @@ public class PlayerController : MonoBehaviour
             case PlayerState.Hurt:
                 break;
             case PlayerState.Attack:
+                aniAttack.Play("idle", 0, 0);
                 break;
             case PlayerState.Summon:
                 break;
@@ -648,6 +678,7 @@ public class PlayerController : MonoBehaviour
                 bodyCollider.enabled = true;
                 jumpBodyCollider.enabled = false;
                 ani.Play("attack1", 0, 0);
+                aniAttack.Play("attack1", 0, 0);
                 attackTime = totalAttackTime;
                 break;
             case PlayerState.Summon:
@@ -736,7 +767,21 @@ public class PlayerController : MonoBehaviour
             demonicObj.transform.position = transform.position + new Vector3(-offset.x, offset.y, offset.z);
             demonicObj.transform.localScale = new Vector3(-1, 1, 1);
         }
-        demonic.ChangeState(DemonicState.Attack1);
+        demonic.BeSummon(100);
+        demonic.Attack1();
     }
 
+    public void BeHit(int damage, Vector3 force)
+    {
+        hp -= damage;
+        rb.AddForce(force);
+        if (hp < 0)
+        {
+            ChangeState(PlayerState.Die);
+        }
+        else
+        {
+            ChangeState(PlayerState.Hurt);
+        }
+    }
 }

+ 37 - 82
ActionTowerDefense/Assets/Scripts/SearchTrigger.cs

@@ -6,13 +6,37 @@ public class SearchTrigger : MonoBehaviour
 {
     public GameObject owner;
 
-    public List<GameObject> trigObjList;
+    public List<BeSearchTrigger> trigObjList;
+
+    private void Awake()
+    {
+        if (GetComponentInParent<PlayerController>())
+        {
+            owner = GetComponentInParent<PlayerController>().gameObject;
+        }
+        else if (GetComponentInParent<Demonic>())
+        {
+            owner = GetComponentInParent<Demonic>().gameObject;
+        }
+        else if (GetComponentInParent<Tower>())
+        {
+            owner = GetComponentInParent<Tower>().gameObject;
+        }
+        else if (GetComponentInParent<Enemy>())
+        {
+            owner = GetComponentInParent<Enemy>().gameObject;
+        }
+        else if (GetComponentInParent<EnemyTower>())
+        {
+            owner = GetComponentInParent<EnemyTower>().gameObject;
+        }
+    }
 
     private void FixedUpdate()
     {
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i] == null || !trigObjList[i].activeInHierarchy)
+            if (trigObjList[i] == null || !trigObjList[i].enabled || !trigObjList[i].gameObject.activeInHierarchy)
             {
                 trigObjList.RemoveAt(i);
                 i--;
@@ -22,21 +46,17 @@ public class SearchTrigger : MonoBehaviour
 
     private void OnTriggerEnter(Collider other)
     {
-        print("OnTriggerEnter:" + other.tag);
-        if (other.CompareTag("Enemy") || other.CompareTag("Demonic") || other.CompareTag("Tower") || other.CompareTag("EnemyTower") || other.CompareTag("Player"))
+        if (other.GetComponent<BeSearchTrigger>())
         {
-            trigObjList.Add(other.gameObject);
+            trigObjList.Add(other.GetComponent<BeSearchTrigger>());
         }
     }
 
     private void OnTriggerExit(Collider other)
     {
-        print("OnTriggerExit:" + other.tag);
-        if (other.CompareTag("Enemy") || other.CompareTag("Demonic") || other.CompareTag("Tower") || other.CompareTag("EnemyTower") || other.CompareTag("Player"))
+        if (other.GetComponent<BeSearchTrigger>())
         {
-            print("OnTriggerExit:" + trigObjList.Count);
-            trigObjList.Remove(other.gameObject);
-            print("Remove:" + trigObjList.Count);
+            trigObjList.Remove(other.GetComponent<BeSearchTrigger>());
         }
     }
 
@@ -46,7 +66,7 @@ public class SearchTrigger : MonoBehaviour
         dis = 99999;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "Demonic")
+            if (trigObjList[i].owner.tag == "Demonic")
             {
                 Demonic demonic = trigObjList[i].GetComponentInParent<Demonic>();
                 if (owner.tag == "Demonic" && owner.GetComponent<Demonic>() == demonic)
@@ -72,7 +92,7 @@ public class SearchTrigger : MonoBehaviour
         Demonic minHPDemonic = null;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "Demonic")
+            if (trigObjList[i].owner.tag == "Demonic")
             {
                 Demonic demonic = trigObjList[i].GetComponentInParent<Demonic>();
                 if (owner.tag == "Demonic" && owner.GetComponent<Demonic>() == demonic)
@@ -98,7 +118,7 @@ public class SearchTrigger : MonoBehaviour
         dis = 99999;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "Tower")
+            if (trigObjList[i].owner.tag == "Tower")
             {
                 Tower tower = trigObjList[i].GetComponentInParent<Tower>();
                 if (owner.tag == "Tower" && owner.GetComponent<Tower>() == tower)
@@ -120,7 +140,7 @@ public class SearchTrigger : MonoBehaviour
         dis = 99999;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "Player")
+            if (trigObjList[i].owner.tag == "Player")
             {
                 PlayerController player = trigObjList[i].GetComponentInParent<PlayerController>();
                 dis = Mathf.Abs(player.transform.position.x - owner.transform.position.x);
@@ -136,7 +156,7 @@ public class SearchTrigger : MonoBehaviour
         Enemy minDisEnemy = null;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "Enemy")
+            if (trigObjList[i].owner.tag == "Enemy")
             {
                 Enemy enemy = trigObjList[i].GetComponentInParent<Enemy>();
                 if (owner.tag == "Enemy" && owner.GetComponent<Enemy>() == enemy)
@@ -161,7 +181,7 @@ public class SearchTrigger : MonoBehaviour
         Enemy minHPEnemy = null;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "Enemy")
+            if (trigObjList[i].owner.tag == "Enemy")
             {
                 Enemy enemy = trigObjList[i].GetComponentInParent<Enemy>();
                 if (owner.tag == "Enemy" && owner.GetComponent<Enemy>() == enemy)
@@ -186,7 +206,7 @@ public class SearchTrigger : MonoBehaviour
         EnemyTower minDisEnemyTower = null;
         for (int i = 0; i < trigObjList.Count; i++)
         {
-            if (trigObjList[i].tag == "EnemyTower")
+            if (trigObjList[i].owner.tag == "EnemyTower")
             {
                 EnemyTower enemyTower = trigObjList[i].GetComponentInParent<EnemyTower>();
                 if (owner.tag == "EnemyTower" && owner.GetComponent<EnemyTower>() == enemyTower)
@@ -201,69 +221,4 @@ public class SearchTrigger : MonoBehaviour
         }
         return minDisEnemyTower;
     }
-
-    public bool IsExit(Demonic demonic)
-    {
-        bool isHave = false;
-        for (int i = 0; i < trigObjList.Count; i++)
-        {
-            if (trigObjList[i].tag == "Demonic" && trigObjList[i].GetComponentInParent<Demonic>() == demonic)
-            {
-                isHave = true;
-            }
-        }
-        return !isHave;
-    }
-
-    public bool IsExit(Enemy enemy)
-    {
-        bool isHave = false;
-        for (int i = 0; i < trigObjList.Count; i++)
-        {
-            if (trigObjList[i].tag == "Enemy" && trigObjList[i].GetComponentInParent<Enemy>() == enemy)
-            {
-                isHave = true;
-            }
-        }
-        return !isHave;
-    }
-
-    public bool IsExit(Tower tower)
-    {
-        bool isHave = false;
-        for (int i = 0; i < trigObjList.Count; i++)
-        {
-            if (trigObjList[i].tag == "Tower" && trigObjList[i].GetComponentInParent<Tower>() == tower)
-            {
-                isHave = true;
-            }
-        }
-        return !isHave;
-    }
-
-    public bool IsExit(EnemyTower enemyTower)
-    {
-        bool isHave = false;
-        for (int i = 0; i < trigObjList.Count; i++)
-        {
-            if (trigObjList[i].tag == "EnemyTower" && trigObjList[i].GetComponentInParent<EnemyTower>() == enemyTower)
-            {
-                isHave = true;
-            }
-        }
-        return !isHave;
-    }
-
-    public bool IsExit(PlayerController player)
-    {
-        bool isHave = false;
-        for (int i = 0; i < trigObjList.Count; i++)
-        {
-            if (trigObjList[i].tag == "Player" && trigObjList[i].GetComponentInParent<PlayerController>() == player)
-            {
-                isHave = true;
-            }
-        }
-        return !isHave;
-    }
 }

+ 1 - 8
ActionTowerDefense/Assets/Scripts/Tower.cs

@@ -4,15 +4,8 @@ using UnityEngine;
 
 public class Tower : MonoBehaviour
 {
-    // Start is called before the first frame update
-    void Start()
+    public void BeHit(int damage, Vector3 force)
     {
-        
-    }
 
-    // Update is called once per frame
-    void Update()
-    {
-        
     }
 }

+ 1 - 1
ActionTowerDefense/ProjectSettings/DynamicsManager.asset

@@ -18,7 +18,7 @@ PhysicsManager:
   m_ClothInterCollisionDistance: 0.1
   m_ClothInterCollisionStiffness: 0.2
   m_ContactsGeneration: 1
-  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffff3ff8ffff3ff8ffff3ff8ffff3ff8ffff3ff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+  m_LayerCollisionMatrix: ff87ffffff87ffffff87ffffffffffffff87ffffff87ffff3f80ffff3f80ffff3f80ffff3f80ffff3f80ffff0890ffff0888ffff08c0ffff08a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
   m_AutoSimulation: 1
   m_AutoSyncTransforms: 0
   m_ReuseCollisionCallbacks: 1