liuzhiwei
2020-11-17 df50daf0ca2cd0c442b10f83fdf0d25758fd9d2d
Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master
30 files modified
1393 ■■■■■ changed files
Assets/Materials/Guide/RectGuidance.mat 2 ●●● patch | view | raw | blame | history
Assets/Materials/UI/tileTowerVSMat.mat 2 ●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower.prefab 1 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_0.prefab 17 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_1.prefab 15 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_2.prefab 15 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_3.prefab 9 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Fire/GrowUpTower_4.prefab 15 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/SkillBomb/SkillBombTower_0.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/SkillFire/SkillFireTower_0.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab 5 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_1.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_2.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_3.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/Water/CopyCatTower_4.prefab 3 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower.prefab 1 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_0.prefab 17 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_1.prefab 17 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_2.prefab 13 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_3.prefab 13 ●●●● patch | view | raw | blame | history
Assets/Prefabs/Towers/WoodTower/BlinkTower_4.prefab 13 ●●●● patch | view | raw | blame | history
Assets/Resources/GuideFile/RectGuidance_Panel.prefab 154 ●●●●● patch | view | raw | blame | history
Assets/Resources/UI/Guide/GuidePanel.prefab 188 ●●●●● patch | view | raw | blame | history
Assets/Scenes/Levels/Battle/Endless2D.unity 5 ●●●●● patch | view | raw | blame | history
Assets/Scripts/Core/Input/InputController.cs 833 ●●●● patch | view | raw | blame | history
Assets/Scripts/Guide/GuidePanel.cs 7 ●●●● patch | view | raw | blame | history
Assets/Scripts/Music/AudioSourceManager.cs 9 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs 7 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/UI/ClickEffect.cs 15 ●●●● patch | view | raw | blame | history
Assets/Materials/Guide/RectGuidance.mat
@@ -83,7 +83,7 @@
    - _UseUIAlphaClip: 0
    - _ZWrite: 1
    m_Colors:
    - _Center: {r: -3, g: 98, b: 0, a: 0}
    - _Center: {r: -3, g: -862, b: 0, a: 0}
    - _Color: {r: 1, g: 1, b: 1, a: 1}
    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
  m_BuildTextureStacks: []
Assets/Materials/UI/tileTowerVSMat.mat
@@ -40,7 +40,7 @@
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _MainTex:
        m_Texture: {fileID: 2800000, guid: 8c9a3d26120e78f40aa4ef9ed23d573c, type: 3}
        m_Texture: {fileID: 2800000, guid: 93f40a01d57fbff418fc0b54b6ab7d9f, type: 3}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _MetallicGlossMap:
Assets/Prefabs/Towers/Fire/GrowUpTower.prefab
@@ -133,6 +133,7 @@
  eTowerFuntion: 2
  bulletCtl: {fileID: 0}
  energyCtl: {fileID: 0}
  FreezeBreathCtrl: {fileID: 0}
  levels:
  - {fileID: 114779466188146336, guid: 0ead2ba21a4e3e84e9bca834100c4456, type: 3}
  - {fileID: 114056922861069036, guid: 538d7be2cf35d90438a4c101023e8839, type: 3}
Assets/Prefabs/Towers/Fire/GrowUpTower_0.prefab
@@ -882,6 +882,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1001 &474904627256471190
PrefabInstance:
  m_ObjectHideFlags: 0
@@ -1015,7 +1016,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -1065,12 +1066,22 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_Name
      value: Quad
      value: Star
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 6c579c0e357fbc04890529f3fea5863a, type: 3}
Assets/Prefabs/Towers/Fire/GrowUpTower_1.prefab
@@ -62612,6 +62612,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &4306817116596848000
GameObject:
  m_ObjectHideFlags: 0
@@ -86917,7 +86918,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -86932,12 +86933,12 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.8660254
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: -0.7071068
      value: -0.5
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -86952,7 +86953,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 60
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -86967,17 +86968,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/Fire/GrowUpTower_2.prefab
@@ -48573,6 +48573,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &2135637678856507987
GameObject:
  m_ObjectHideFlags: 0
@@ -129939,7 +129940,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129954,12 +129955,12 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.8660254
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: -0.7071068
      value: -0.5
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129974,7 +129975,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 60
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129989,17 +129990,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/Fire/GrowUpTower_3.prefab
@@ -72520,6 +72520,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &5186236263343742608
GameObject:
  m_ObjectHideFlags: 0
@@ -129939,7 +129940,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129954,12 +129955,12 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.8660254
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: -0.7071068
      value: -0.5
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129974,7 +129975,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 60
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/Fire/GrowUpTower_4.prefab
@@ -43662,6 +43662,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &1288252861827877360
GameObject:
  m_ObjectHideFlags: 0
@@ -129791,7 +129792,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129806,12 +129807,12 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.8660254
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: -0.7071068
      value: -0.5
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129826,7 +129827,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 60
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129841,17 +129842,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/SkillBomb/SkillBombTower_0.prefab
@@ -684,6 +684,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &8662021054477209990
GameObject:
  m_ObjectHideFlags: 0
@@ -953,7 +954,7 @@
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_Name
      value: Quad
      value: Star
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 6c579c0e357fbc04890529f3fea5863a, type: 3}
Assets/Prefabs/Towers/SkillFire/SkillFireTower_0.prefab
@@ -684,6 +684,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &8662021054477209990
GameObject:
  m_ObjectHideFlags: 0
@@ -953,7 +954,7 @@
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_Name
      value: Quad
      value: Star
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 6c579c0e357fbc04890529f3fea5863a, type: 3}
Assets/Prefabs/Towers/Water/CopyCatTower_0.prefab
@@ -43608,6 +43608,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &4886038783420556509
GameObject:
  m_ObjectHideFlags: 0
@@ -43908,7 +43909,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -43963,7 +43964,7 @@
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_Name
      value: Quad
      value: Star
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 6c579c0e357fbc04890529f3fea5863a, type: 3}
Assets/Prefabs/Towers/Water/CopyCatTower_1.prefab
@@ -48325,6 +48325,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &1351797752182239869
GameObject:
  m_ObjectHideFlags: 0
@@ -86923,7 +86924,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/Water/CopyCatTower_2.prefab
@@ -115463,6 +115463,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &8012985704037483311
GameObject:
  m_ObjectHideFlags: 0
@@ -129931,7 +129932,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/Water/CopyCatTower_3.prefab
@@ -48342,6 +48342,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &2135637678856507987
GameObject:
  m_ObjectHideFlags: 0
@@ -129931,7 +129932,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/Water/CopyCatTower_4.prefab
@@ -110594,6 +110594,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &7117407363955675801
GameObject:
  m_ObjectHideFlags: 0
@@ -129938,7 +129939,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/WoodTower/BlinkTower.prefab
@@ -133,6 +133,7 @@
  eTowerFuntion: 1
  bulletCtl: {fileID: 0}
  energyCtl: {fileID: 0}
  FreezeBreathCtrl: {fileID: 0}
  levels:
  - {fileID: 114779466188146336, guid: 59e07ac57b910c8499149567209a3607, type: 3}
  - {fileID: 114056922861069036, guid: 07762f03d122d5448b88b833b0b659b6, type: 3}
Assets/Prefabs/Towers/WoodTower/BlinkTower_0.prefab
@@ -43809,6 +43809,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &8662021054477209990
GameObject:
  m_ObjectHideFlags: 0
@@ -43910,7 +43911,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -43960,12 +43961,22 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_Name
      value: Quad
      value: Star
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 6c579c0e357fbc04890529f3fea5863a, type: 3}
Assets/Prefabs/Towers/WoodTower/BlinkTower_1.prefab
@@ -62702,6 +62702,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &4110419967809627379
GameObject:
  m_ObjectHideFlags: 0
@@ -86925,7 +86926,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.2
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -86935,17 +86936,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.x
      value: -0
      value: 0
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: -0.7071068
      value: 0.7071068
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.z
      value: 0.7071068
      value: -0.7071068
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -86965,7 +86966,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.y
      value: 0
      value: 180
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -86975,17 +86976,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/WoodTower/BlinkTower_2.prefab
@@ -105936,6 +105936,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &6827681136450262429
GameObject:
  m_ObjectHideFlags: 0
@@ -129940,7 +129941,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129955,7 +129956,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.7071068
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129975,7 +129976,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 90
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129990,17 +129991,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/WoodTower/BlinkTower_3.prefab
@@ -125058,6 +125058,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &8601541520288630705
GameObject:
  m_ObjectHideFlags: 0
@@ -129940,7 +129941,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129955,7 +129956,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.7071068
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129975,7 +129976,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 90
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129990,17 +129991,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Prefabs/Towers/WoodTower/BlinkTower_4.prefab
@@ -43582,6 +43582,7 @@
  m_Script: {fileID: 11500000, guid: 70719dcea2b0be54580a41e62debeab1, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  offect: {x: 0, y: 0.07, z: 0.04}
--- !u!1 &1288252861827877360
GameObject:
  m_ObjectHideFlags: 0
@@ -129940,7 +129941,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalPosition.y
      value: 1.5
      value: 0.2
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129955,7 +129956,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalRotation.y
      value: 0.70710677
      value: 0.7071068
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129975,7 +129976,7 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalEulerAnglesHint.x
      value: 90.00001
      value: 90
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
@@ -129990,17 +129991,17 @@
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.x
      value: 0.72
      value: 0.864
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.y
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 2698295651963367800, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
      propertyPath: m_LocalScale.z
      value: 0.5
      value: 0.6
      objectReference: {fileID: 0}
    - target: {fileID: 6866078322230836259, guid: 6c579c0e357fbc04890529f3fea5863a,
        type: 3}
Assets/Resources/GuideFile/RectGuidance_Panel.prefab
@@ -30,7 +30,9 @@
  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_Children: []
  m_Children:
  - {fileID: 6504335971994444217}
  - {fileID: 2630238849477867844}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -102,3 +104,153 @@
  m_Script: {fileID: 11500000, guid: 9d32016a0d271654da94bac4b7b28828, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!1 &1734944270735507421
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 6504335971994444217}
  - component: {fileID: 6955529029650594838}
  - component: {fileID: 1719080317224421083}
  m_Layer: 5
  m_Name: Image
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &6504335971994444217
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1734944270735507421}
  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_Children: []
  m_Father: {fileID: 3976185157287800}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 1}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 250}
  m_SizeDelta: {x: 0, y: 500}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6955529029650594838
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1734944270735507421}
  m_CullTransparentMesh: 0
--- !u!114 &1719080317224421083
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1734944270735507421}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 7545f6da4eda5274396e5021d128679d, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!1 &6272770287035190793
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 2630238849477867844}
  - component: {fileID: 8387185480071817090}
  - component: {fileID: 7150521371201425719}
  m_Layer: 5
  m_Name: Image (1)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &2630238849477867844
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 6272770287035190793}
  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_Children: []
  m_Father: {fileID: 3976185157287800}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 0}
  m_AnchoredPosition: {x: 0, y: -250}
  m_SizeDelta: {x: 0, y: 500}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8387185480071817090
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 6272770287035190793}
  m_CullTransparentMesh: 0
--- !u!114 &7150521371201425719
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 6272770287035190793}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 7545f6da4eda5274396e5021d128679d, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
Assets/Resources/UI/Guide/GuidePanel.prefab
@@ -90,6 +90,43 @@
  m_Name: 
  m_EditorClassIdentifier: 
  m_ShowMaskGraphic: 0
--- !u!1 &456834642854222358
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1725281817447037252}
  m_Layer: 5
  m_Name: OffectImage
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &1725281817447037252
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 456834642854222358}
  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_Children:
  - {fileID: 2232825125552306022}
  - {fileID: 669222673568990928}
  m_Father: {fileID: 5529930024907350475}
  m_RootOrder: 12
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &631201737652148451
GameObject:
  m_ObjectHideFlags: 0
@@ -16628,6 +16665,7 @@
  - {fileID: 1317519610470281476}
  - {fileID: 4438159195928217730}
  - {fileID: 4727596860417850039}
  - {fileID: 1725281817447037252}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -16775,3 +16813,153 @@
  m_Script: {fileID: 11500000, guid: cde50e452d90aa04eaf5455075f05942, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
--- !u!1 &9003939257793759947
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 669222673568990928}
  - component: {fileID: 775810324338967392}
  - component: {fileID: 7940261990509441062}
  m_Layer: 5
  m_Name: Image (1)
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &669222673568990928
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 9003939257793759947}
  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_Children: []
  m_Father: {fileID: 1725281817447037252}
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 0}
  m_AnchoredPosition: {x: 0, y: -250}
  m_SizeDelta: {x: 0, y: 500}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &775810324338967392
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 9003939257793759947}
  m_CullTransparentMesh: 0
--- !u!114 &7940261990509441062
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 9003939257793759947}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 7545f6da4eda5274396e5021d128679d, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
--- !u!1 &9072938025323439654
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 2232825125552306022}
  - component: {fileID: 1669779624015234029}
  - component: {fileID: 7219048993191041707}
  m_Layer: 5
  m_Name: Image
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!224 &2232825125552306022
RectTransform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 9072938025323439654}
  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_Children: []
  m_Father: {fileID: 1725281817447037252}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  m_AnchorMin: {x: 0, y: 1}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 250}
  m_SizeDelta: {x: 0, y: 500}
  m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1669779624015234029
CanvasRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 9072938025323439654}
  m_CullTransparentMesh: 0
--- !u!114 &7219048993191041707
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 9072938025323439654}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 1
  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
  m_Maskable: 1
  m_OnCullStateChanged:
    m_PersistentCalls:
      m_Calls: []
  m_Sprite: {fileID: 21300000, guid: 7545f6da4eda5274396e5021d128679d, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  m_UseSpriteMesh: 0
  m_PixelsPerUnitMultiplier: 1
Assets/Scenes/Levels/Battle/Endless2D.unity
@@ -677,6 +677,11 @@
      propertyPath: m_Name
      value: ClearCamera
      objectReference: {fileID: 0}
    - target: {fileID: 3091314759354326717, guid: 91d321cd869bc0c47808f6fd7d755ae3,
        type: 3}
      propertyPath: m_IsActive
      value: 0
      objectReference: {fileID: 0}
    m_RemovedComponents: []
  m_SourcePrefab: {fileID: 100100000, guid: 91d321cd869bc0c47808f6fd7d755ae3, type: 3}
--- !u!43 &115306053
Assets/Scripts/Core/Input/InputController.cs
@@ -9,472 +9,473 @@
namespace Core.Input
{
    /// <summary>
    /// Class to manage tap/drag/pinch gestures and other controls
    /// </summary>
    public class InputController : Singleton<InputController>
    {
        /// <summary>
        /// How quickly flick velocity is accumulated with movements
        /// </summary>
        const float k_FlickAccumulationFactor = 0.8f;
    /// <summary>
    /// Class to manage tap/drag/pinch gestures and other controls
    /// </summary>
    public class InputController : Singleton<InputController>
    {
        /// <summary>
        /// How quickly flick velocity is accumulated with movements
        /// </summary>
        const float k_FlickAccumulationFactor = 0.8f;
        /// <summary>
        /// How far fingers must move before starting a drag
        /// </summary>
        public float dragThresholdTouch = 5;
        /// <summary>
        /// How far fingers must move before starting a drag
        /// </summary>
        public float dragThresholdTouch = 5;
        /// <summary>
        /// How far mouse must move before starting a drag
        /// </summary>
        public float dragThresholdMouse;
        /// <summary>
        /// How far mouse must move before starting a drag
        /// </summary>
        public float dragThresholdMouse;
        /// <summary>
        /// How long before a touch can no longer be considered a tap
        /// </summary>
        public float tapTime = 0.2f;
        /// <summary>
        /// How long before a touch can no longer be considered a tap
        /// </summary>
        public float tapTime = 0.2f;
        /// <summary>
        /// How long before a touch is considered a hold
        /// </summary>
        public float holdTime = 0.8f;
        /// <summary>
        /// How long before a touch is considered a hold
        /// </summary>
        public float holdTime = 0.8f;
        /// <summary>
        /// Sensitivity of mouse-wheel based zoom
        /// </summary>
        public float mouseWheelSensitivity = 1.0f;
        /// <summary>
        /// Sensitivity of mouse-wheel based zoom
        /// </summary>
        public float mouseWheelSensitivity = 1.0f;
        /// <summary>
        /// How many mouse buttons to track
        /// </summary>
        public int trackMouseButtons = 2;
        /// <summary>
        /// How many mouse buttons to track
        /// </summary>
        public int trackMouseButtons = 2;
        /// <summary>
        /// Flick movement threshold
        /// </summary>
        public float flickThreshold = 2f;
        /// <summary>
        /// Flick movement threshold
        /// </summary>
        public float flickThreshold = 2f;
        /// <summary>
        /// All the touches we're tracking
        /// </summary>
        List<TouchInfo> m_Touches;
        /// <summary>
        /// All the touches we're tracking
        /// </summary>
        List<TouchInfo> m_Touches;
        /// <summary>
        /// Mouse button info
        /// </summary>
        List<MouseButtonInfo> m_MouseInfo;
        /// <summary>
        /// Mouse button info
        /// </summary>
        List<MouseButtonInfo> m_MouseInfo;
        /// <summary>
        /// Gets the number of active touches
        /// </summary>
        public int activeTouchCount
        {
            get { return m_Touches.Count; }
        }
        /// <summary>
        /// Gets the number of active touches
        /// </summary>
        public int activeTouchCount
        {
            get { return m_Touches.Count; }
        }
        /// <summary>
        /// Tracks if any of the mouse buttons were pressed this frame
        /// </summary>
        public bool mouseButtonPressedThisFrame { get; private set; }
        /// <summary>
        /// Tracks if any of the mouse buttons were pressed this frame
        /// </summary>
        public bool mouseButtonPressedThisFrame { get; private set; }
        /// <summary>
        /// Tracks if the mouse moved this frame
        /// </summary>
        public bool mouseMovedOnThisFrame { get; private set; }
        /// <summary>
        /// Tracks if the mouse moved this frame
        /// </summary>
        public bool mouseMovedOnThisFrame { get; private set; }
        /// <summary>
        /// Tracks if a touch began this frame
        /// </summary>
        public bool touchPressedThisFrame { get; private set; }
        /// <summary>
        /// Tracks if a touch began this frame
        /// </summary>
        public bool touchPressedThisFrame { get; private set; }
        /// <summary>
        /// Current mouse pointer info
        /// </summary>
        public PointerInfo basicMouseInfo { get; private set; }
        /// <summary>
        /// Current mouse pointer info
        /// </summary>
        public PointerInfo basicMouseInfo { get; private set; }
        /// <summary>
        /// Event called when a pointer press is detected
        /// </summary>
        public event Action<PointerActionInfo> pressed;
        /// <summary>
        /// Event called when a pointer press is detected
        /// </summary>
        public event Action<PointerActionInfo> pressed;
        /// <summary>
        /// Event called when a pointer is released
        /// </summary>
        public event Action<PointerActionInfo> released;
        /// <summary>
        /// Event called when a pointer is released
        /// </summary>
        public event Action<PointerActionInfo> released;
        /// <summary>
        /// Event called when a pointer is tapped
        /// </summary>
        public event Action<PointerActionInfo> tapped;
        /// <summary>
        /// Event called when a pointer is tapped
        /// </summary>
        public event Action<PointerActionInfo> tapped;
        /// <summary>
        /// Event called when a drag starts
        /// </summary>
        public event Action<PointerActionInfo> startedDrag;
        /// <summary>
        /// Event called when a drag starts
        /// </summary>
        public event Action<PointerActionInfo> startedDrag;
        /// <summary>
        /// Event called when a pointer is dragged
        /// </summary>
        public event Action<PointerActionInfo> dragged;
        /// <summary>
        /// Event called when a pointer is dragged
        /// </summary>
        public event Action<PointerActionInfo> dragged;
        /// <summary>
        /// Event called when a pointer starts a hold
        /// </summary>
        public event Action<PointerActionInfo> startedHold;
        /// <summary>
        /// Event called when a pointer starts a hold
        /// </summary>
        public event Action<PointerActionInfo> startedHold;
        /// <summary>
        /// Event called when the user scrolls the mouse wheel
        /// </summary>
        public event Action<WheelInfo> spunWheel;
        /// <summary>
        /// Event called when the user scrolls the mouse wheel
        /// </summary>
        public event Action<WheelInfo> spunWheel;
        /// <summary>
        /// Event called when the user performs a pinch gesture
        /// </summary>
        public event Action<PinchInfo> pinched;
        /// <summary>
        /// Event called when the user performs a pinch gesture
        /// </summary>
        public event Action<PinchInfo> pinched;
        /// <summary>
        /// Event called whenever the mouse is moved
        /// </summary>
        public event Action<PointerInfo> mouseMoved;
        /// <summary>
        /// Event called whenever the mouse is moved
        /// </summary>
        public event Action<PointerInfo> mouseMoved;
        protected override void Awake()
        {
            base.Awake();
            m_Touches = new List<TouchInfo>();
        protected override void Awake()
        {
            base.Awake();
            m_Touches = new List<TouchInfo>();
            // Mouse specific initialization
            if (UnityInput.mousePresent)
            {
                m_MouseInfo = new List<MouseButtonInfo>();
                basicMouseInfo = new MouseCursorInfo {currentPosition = UnityInput.mousePosition};
            // Mouse specific initialization
            if (UnityInput.mousePresent)
            {
                m_MouseInfo = new List<MouseButtonInfo>();
                basicMouseInfo = new MouseCursorInfo { currentPosition = UnityInput.mousePosition };
                for (int i = 0; i < trackMouseButtons; ++i)
                {
                    m_MouseInfo.Add(new MouseButtonInfo
                    {
                        currentPosition = UnityInput.mousePosition,
                        mouseButtonId = i
                    });
                }
            }
                for (int i = 0; i < trackMouseButtons; ++i)
                {
                    m_MouseInfo.Add(new MouseButtonInfo
                    {
                        currentPosition = UnityInput.mousePosition,
                        mouseButtonId = i
                    });
                }
            }
            UnityInput.simulateMouseWithTouches = false;
        }
            UnityInput.simulateMouseWithTouches = false;
        }
        /// <summary>
        /// Update all input
        /// </summary>
        void Update()
        {
            if (basicMouseInfo != null)
            {
                // Mouse was detected as present
                UpdateMouse();
            }
            // Handle touches
            UpdateTouches();
        }
        /// <summary>
        /// Update all input
        /// </summary>
        void Update()
        {
            if (basicMouseInfo != null)
            {
                // Mouse was detected as present
                UpdateMouse();
            }
            // Handle touches
            UpdateTouches();
        }
        /// <summary>
        /// Perform logic to update mouse/pointing device
        /// </summary>
        void UpdateMouse()
        {
            basicMouseInfo.previousPosition = basicMouseInfo.currentPosition;
            basicMouseInfo.currentPosition = UnityInput.mousePosition;
            basicMouseInfo.delta = basicMouseInfo.currentPosition - basicMouseInfo.previousPosition;
            mouseMovedOnThisFrame = basicMouseInfo.delta.sqrMagnitude >= Mathf.Epsilon;
            mouseButtonPressedThisFrame = false;
        /// <summary>
        /// Perform logic to update mouse/pointing device
        /// </summary>
        void UpdateMouse()
        {
            basicMouseInfo.previousPosition = basicMouseInfo.currentPosition;
            basicMouseInfo.currentPosition = UnityInput.mousePosition;
            basicMouseInfo.delta = basicMouseInfo.currentPosition - basicMouseInfo.previousPosition;
            mouseMovedOnThisFrame = basicMouseInfo.delta.sqrMagnitude >= Mathf.Epsilon;
            mouseButtonPressedThisFrame = false;
            // Move event
            if (basicMouseInfo.delta.sqrMagnitude > Mathf.Epsilon)
            {
                if (mouseMoved != null)
                {
                    mouseMoved(basicMouseInfo);
                }
            }
            // Button events
            for (int i = 0; i < trackMouseButtons; ++i)
            {
                MouseButtonInfo mouseButton = m_MouseInfo[i];
                mouseButton.delta = basicMouseInfo.delta;
                mouseButton.previousPosition = basicMouseInfo.previousPosition;
                mouseButton.currentPosition = basicMouseInfo.currentPosition;
                if (UnityInput.GetMouseButton(i))
                {
                    if (!mouseButton.isDown)
                    {
                        // First press
                        mouseButtonPressedThisFrame = true;
                        mouseButton.isDown = true;
                        mouseButton.startPosition = UnityInput.mousePosition;
                        mouseButton.startTime = Time.realtimeSinceStartup;
                        mouseButton.startedOverUI = EventSystem.current.IsPointerOverGameObject(-mouseButton.mouseButtonId - 1);
            // Move event
            if (basicMouseInfo.delta.sqrMagnitude > Mathf.Epsilon)
            {
                if (mouseMoved != null)
                {
                    mouseMoved(basicMouseInfo);
                }
            }
            // Button events
            for (int i = 0; i < trackMouseButtons; ++i)
            {
                MouseButtonInfo mouseButton = m_MouseInfo[i];
                mouseButton.delta = basicMouseInfo.delta;
                mouseButton.previousPosition = basicMouseInfo.previousPosition;
                mouseButton.currentPosition = basicMouseInfo.currentPosition;
                if (UnityInput.GetMouseButton(i))
                {
                    if (!mouseButton.isDown)
                    {
                        // First press
                        mouseButtonPressedThisFrame = true;
                        mouseButton.isDown = true;
                        mouseButton.startPosition = UnityInput.mousePosition;
                        mouseButton.startTime = Time.realtimeSinceStartup;
                        mouseButton.startedOverUI = EventSystem.current.IsPointerOverGameObject(-mouseButton.mouseButtonId - 1);
                        // Reset some stuff
                        mouseButton.totalMovement = 0;
                        mouseButton.isDrag = false;
                        mouseButton.wasHold = false;
                        mouseButton.isHold = false;
                        mouseButton.flickVelocity = Vector2.zero;
                        // Reset some stuff
                        mouseButton.totalMovement = 0;
                        mouseButton.isDrag = false;
                        mouseButton.wasHold = false;
                        mouseButton.isHold = false;
                        mouseButton.flickVelocity = Vector2.zero;
                        if (pressed != null)
                        {
                            pressed(mouseButton);
                        }
                    }
                    else
                    {
                        float moveDist = mouseButton.delta.magnitude;
                        // Dragging?
                        mouseButton.totalMovement += moveDist;
                        if (mouseButton.totalMovement > dragThresholdMouse)
                        {
                            bool wasDrag = mouseButton.isDrag;
                        if (pressed != null)
                        {
                            pressed(mouseButton);
                        }
                    }
                    else
                    {
                        float moveDist = mouseButton.delta.magnitude;
                        // Dragging?
                        mouseButton.totalMovement += moveDist;
                        if (mouseButton.totalMovement > dragThresholdMouse)
                        {
                            bool wasDrag = mouseButton.isDrag;
                            mouseButton.isDrag = true;
                            if (mouseButton.isHold)
                            {
                                mouseButton.wasHold = mouseButton.isHold;
                                mouseButton.isHold = false;
                            }
                            mouseButton.isDrag = true;
                            if (mouseButton.isHold)
                            {
                                mouseButton.wasHold = mouseButton.isHold;
                                mouseButton.isHold = false;
                            }
                            // Did it just start now?
                            if (!wasDrag)
                            {
                                if (startedDrag != null)
                                {
                                    startedDrag(mouseButton);
                                }
                            }
                            if (dragged != null)
                            {
                                dragged(mouseButton);
                            }
                            // Did it just start now?
                            if (!wasDrag)
                            {
                                if (startedDrag != null)
                                {
                                    startedDrag(mouseButton);
                                }
                            }
                            if (dragged != null)
                            {
                                dragged(mouseButton);
                            }
                            // Flick?
                            if (moveDist > flickThreshold)
                            {
                                mouseButton.flickVelocity =
                                    (mouseButton.flickVelocity * (1 - k_FlickAccumulationFactor)) +
                                    (mouseButton.delta * k_FlickAccumulationFactor);
                            }
                            else
                            {
                                mouseButton.flickVelocity = Vector2.zero;
                            }
                        }
                        else
                        {
                            // Stationary?
                            if (!mouseButton.isHold &&
                                !mouseButton.isDrag &&
                                Time.realtimeSinceStartup - mouseButton.startTime >= holdTime)
                            {
                                mouseButton.isHold = true;
                                if (startedHold != null)
                                {
                                    startedHold(mouseButton);
                                }
                            }
                        }
                    }
                }
                else // Mouse button not up
                {
                    if (mouseButton.isDown) // Released
                    {
                        mouseButton.isDown = false;
                        // Quick enough (with no drift) to be a tap?
                        if (!mouseButton.isDrag &&
                            Time.realtimeSinceStartup - mouseButton.startTime < tapTime)
                        {
                            if (tapped != null)
                            {
                                tapped(mouseButton);
                            }
                        }
                        if (released != null)
                        {
                            released(mouseButton);
                        }
                    }
                }
            }
                            // Flick?
                            if (moveDist > flickThreshold)
                            {
                                mouseButton.flickVelocity =
                                    (mouseButton.flickVelocity * (1 - k_FlickAccumulationFactor)) +
                                    (mouseButton.delta * k_FlickAccumulationFactor);
                            }
                            else
                            {
                                mouseButton.flickVelocity = Vector2.zero;
                            }
                        }
                        else
                        {
                            // Stationary?
                            if (!mouseButton.isHold &&
                                !mouseButton.isDrag &&
                                Time.realtimeSinceStartup - mouseButton.startTime >= holdTime)
                            {
                                mouseButton.isHold = true;
                                if (startedHold != null)
                                {
                                    startedHold(mouseButton);
                                }
                            }
                        }
                    }
                }
                else // Mouse button not up
                {
                    if (mouseButton.isDown) // Released
                    {
                        mouseButton.isDown = false;
                        // Quick enough (with no drift) to be a tap?
                        if (!mouseButton.isDrag &&
                            Time.realtimeSinceStartup - mouseButton.startTime < tapTime)
                        {
                            if (tapped != null)
                            {
                                tapped(mouseButton);
                            }
                        }
                        if (released != null)
                        {
                            released(mouseButton);
                        }
                    }
                }
            }
            // Mouse wheel
            if (Mathf.Abs(UnityInput.GetAxis("Mouse ScrollWheel")) > Mathf.Epsilon)
            {
                if (spunWheel != null)
                {
                    spunWheel(new WheelInfo
                    {
                        zoomAmount = UnityInput.GetAxis("Mouse ScrollWheel") * mouseWheelSensitivity
                    });
                }
            }
        }
            // Mouse wheel
            if (Mathf.Abs(UnityInput.GetAxis("Mouse ScrollWheel")) > Mathf.Epsilon)
            {
                if (spunWheel != null)
                {
                    spunWheel(new WheelInfo
                    {
                        zoomAmount = UnityInput.GetAxis("Mouse ScrollWheel") * mouseWheelSensitivity
                    });
                }
            }
        }
        /// <summary>
        /// Update all touches
        /// </summary>
        void UpdateTouches()
        {
            touchPressedThisFrame = false;
            for (int i = 0; i < UnityInput.touchCount; ++i)
            {
                Touch touch = UnityInput.GetTouch(i);
        /// <summary>
        /// Update all touches
        /// </summary>
        void UpdateTouches()
        {
            touchPressedThisFrame = false;
            //for (int i = 0; i < UnityInput.touchCount; ++i)
            if (UnityInput.touchCount > 0)
            {
                Touch touch = UnityInput.GetTouch(0);
                // Find existing touch, or create new one
                TouchInfo existingTouch = m_Touches.FirstOrDefault(t => t.touchId == touch.fingerId);
                // Find existing touch, or create new one
                TouchInfo existingTouch = m_Touches.FirstOrDefault(t => t.touchId == touch.fingerId);
                if (existingTouch == null)
                {
                    existingTouch = new TouchInfo
                    {
                        touchId = touch.fingerId,
                        startPosition = touch.position,
                        currentPosition = touch.position,
                        previousPosition = touch.position,
                        startTime = Time.realtimeSinceStartup,
                        startedOverUI = EventSystem.current.IsPointerOverGameObject(touch.fingerId)
                    };
                if (existingTouch == null)
                {
                    existingTouch = new TouchInfo
                    {
                        touchId = touch.fingerId,
                        startPosition = touch.position,
                        currentPosition = touch.position,
                        previousPosition = touch.position,
                        startTime = Time.realtimeSinceStartup,
                        startedOverUI = EventSystem.current.IsPointerOverGameObject(touch.fingerId)
                    };
                    m_Touches.Add(existingTouch);
                    m_Touches.Add(existingTouch);
                    // Sanity check
                    Debug.Assert(touch.phase == TouchPhase.Began);
                }
                switch (touch.phase)
                {
                    case TouchPhase.Began:
                        touchPressedThisFrame = true;
                        if (pressed != null)
                        {
                            pressed(existingTouch);
                        }
                        break;
                    // Sanity check
                    Debug.Assert(touch.phase == TouchPhase.Began);
                }
                switch (touch.phase)
                {
                    case TouchPhase.Began:
                        touchPressedThisFrame = true;
                        if (pressed != null)
                        {
                            pressed(existingTouch);
                        }
                        break;
                    case TouchPhase.Moved:
                        bool wasDrag = existingTouch.isDrag;
                        UpdateMovingFinger(touch, existingTouch);
                    case TouchPhase.Moved:
                        bool wasDrag = existingTouch.isDrag;
                        UpdateMovingFinger(touch, existingTouch);
                        // Is this a drag?
                        existingTouch.isDrag = existingTouch.totalMovement >= dragThresholdTouch;
                        // Is this a drag?
                        existingTouch.isDrag = existingTouch.totalMovement >= dragThresholdTouch;
                        if (existingTouch.isDrag)
                        {
                            if (existingTouch.isHold)
                            {
                                existingTouch.wasHold = existingTouch.isHold;
                                existingTouch.isHold = false;
                            }
                            // Did it just start now?
                            if (!wasDrag)
                            {
                                if (startedDrag != null)
                                {
                                    startedDrag(existingTouch);
                                }
                            }
                            if (dragged != null)
                            {
                                dragged(existingTouch);
                            }
                        if (existingTouch.isDrag)
                        {
                            if (existingTouch.isHold)
                            {
                                existingTouch.wasHold = existingTouch.isHold;
                                existingTouch.isHold = false;
                            }
                            // Did it just start now?
                            if (!wasDrag)
                            {
                                if (startedDrag != null)
                                {
                                    startedDrag(existingTouch);
                                }
                            }
                            if (dragged != null)
                            {
                                dragged(existingTouch);
                            }
                            if (existingTouch.delta.sqrMagnitude > flickThreshold * flickThreshold)
                            {
                                existingTouch.flickVelocity =
                                    (existingTouch.flickVelocity * (1 - k_FlickAccumulationFactor)) +
                                    (existingTouch.delta * k_FlickAccumulationFactor);
                            }
                            else
                            {
                                existingTouch.flickVelocity = Vector2.zero;
                            }
                        }
                        else
                        {
                            UpdateHoldingFinger(existingTouch);
                        }
                        break;
                            if (existingTouch.delta.sqrMagnitude > flickThreshold * flickThreshold)
                            {
                                existingTouch.flickVelocity =
                                    (existingTouch.flickVelocity * (1 - k_FlickAccumulationFactor)) +
                                    (existingTouch.delta * k_FlickAccumulationFactor);
                            }
                            else
                            {
                                existingTouch.flickVelocity = Vector2.zero;
                            }
                        }
                        else
                        {
                            UpdateHoldingFinger(existingTouch);
                        }
                        break;
                    case TouchPhase.Canceled:
                    case TouchPhase.Ended:
                        // Could have moved a bit
                        UpdateMovingFinger(touch, existingTouch);
                        // Quick enough (with no drift) to be a tap?
                        if (!existingTouch.isDrag &&
                            Time.realtimeSinceStartup - existingTouch.startTime < tapTime)
                        {
                            if (tapped != null)
                            {
                                tapped(existingTouch);
                            }
                        }
                        if (released != null)
                        {
                            released(existingTouch);
                        }
                    case TouchPhase.Canceled:
                    case TouchPhase.Ended:
                        // Could have moved a bit
                        UpdateMovingFinger(touch, existingTouch);
                        // Quick enough (with no drift) to be a tap?
                        if (!existingTouch.isDrag &&
                            Time.realtimeSinceStartup - existingTouch.startTime < tapTime)
                        {
                            if (tapped != null)
                            {
                                tapped(existingTouch);
                            }
                        }
                        if (released != null)
                        {
                            released(existingTouch);
                        }
                        // Remove from track list
                        m_Touches.Remove(existingTouch);
                        break;
                        // Remove from track list
                        m_Touches.Remove(existingTouch);
                        break;
                    case TouchPhase.Stationary:
                        UpdateMovingFinger(touch, existingTouch);
                        UpdateHoldingFinger(existingTouch);
                        existingTouch.flickVelocity = Vector2.zero;
                        break;
                }
            }
                    case TouchPhase.Stationary:
                        UpdateMovingFinger(touch, existingTouch);
                        UpdateHoldingFinger(existingTouch);
                        existingTouch.flickVelocity = Vector2.zero;
                        break;
                }
            }
            if (activeTouchCount >= 2 && (m_Touches[0].isDrag ||
                                          m_Touches[1].isDrag))
            {
                if (pinched != null)
                {
                    pinched(new PinchInfo
                    {
                        touch1 = m_Touches[0],
                        touch2 = m_Touches[1]
                    });
                }
            }
        }
            if (activeTouchCount >= 2 && (m_Touches[0].isDrag ||
                                          m_Touches[1].isDrag))
            {
                if (pinched != null)
                {
                    pinched(new PinchInfo
                    {
                        touch1 = m_Touches[0],
                        touch2 = m_Touches[1]
                    });
                }
            }
        }
        /// <summary>
        /// Update a TouchInfo that might be holding
        /// </summary>
        /// <param name="existingTouch"></param>
        void UpdateHoldingFinger(PointerActionInfo existingTouch)
        {
            if (!existingTouch.isHold &&
                !existingTouch.isDrag &&
                Time.realtimeSinceStartup - existingTouch.startTime >= holdTime)
            {
                existingTouch.isHold = true;
                if (startedHold != null)
                {
                    startedHold(existingTouch);
                }
            }
        }
        /// <summary>
        /// Update a TouchInfo that might be holding
        /// </summary>
        /// <param name="existingTouch"></param>
        void UpdateHoldingFinger(PointerActionInfo existingTouch)
        {
            if (!existingTouch.isHold &&
                !existingTouch.isDrag &&
                Time.realtimeSinceStartup - existingTouch.startTime >= holdTime)
            {
                existingTouch.isHold = true;
                if (startedHold != null)
                {
                    startedHold(existingTouch);
                }
            }
        }
        /// <summary>
        /// Update a TouchInfo with movement
        /// </summary>
        /// <param name="touch">The Unity touch object</param>
        /// <param name="existingTouch">The object that's tracking Unity's touch</param>
        void UpdateMovingFinger(Touch touch, PointerActionInfo existingTouch)
        {
            float dragDist = touch.deltaPosition.magnitude;
        /// <summary>
        /// Update a TouchInfo with movement
        /// </summary>
        /// <param name="touch">The Unity touch object</param>
        /// <param name="existingTouch">The object that's tracking Unity's touch</param>
        void UpdateMovingFinger(Touch touch, PointerActionInfo existingTouch)
        {
            float dragDist = touch.deltaPosition.magnitude;
            existingTouch.previousPosition = existingTouch.currentPosition;
            existingTouch.currentPosition = touch.position;
            existingTouch.delta = touch.deltaPosition;
            existingTouch.totalMovement += dragDist;
        }
    }
            existingTouch.previousPosition = existingTouch.currentPosition;
            existingTouch.currentPosition = touch.position;
            existingTouch.delta = touch.deltaPosition;
            existingTouch.totalMovement += dragDist;
        }
    }
}
Assets/Scripts/Guide/GuidePanel.cs
@@ -29,7 +29,7 @@
    Vector2 rimOffset = new Vector2(30, 30);//边框要比按钮大一些
    Image tmpMask;//自身的遮罩
    GameObject offectBackground;//适配需要的黑色背景
    ImageFire1 fire1;
    ImageFire2 fire2;//两个用来合成的火元素
@@ -61,6 +61,9 @@
    {
        tmpMask = GetComponent<Image>();
        tmpMask.enabled = false;
        offectBackground = transform.Find("OffectImage").gameObject;
        offectBackground.SetActive(false);
        backgroundImg = transform.Find("Button").GetComponent<Image>();
        towerBuyBtn = GameObject.Find("UICamera/BottomCanvas/Panel/TowerBuyBtn");
@@ -213,6 +216,7 @@
        {
            tmpMask.enabled = true;
        offectBackground.SetActive(true);
            SetGuideUI(false);
@@ -240,6 +244,7 @@
        if (currentIndex == 0)
        {
            tmpMask.enabled = false;
        offectBackground.SetActive(false);
            SetRimActive(true);
            Image btnImg = transform.Find("Image_TowerPos").GetComponent<Image>();
Assets/Scripts/Music/AudioSourceManager.cs
@@ -118,13 +118,13 @@
                Play("放下宝石", true);
                break;
            case AudioEnum.FireTAttack:
                Play("火攻击", true);
                Play("火攻击", true, 0.5f);
                break;
            case AudioEnum.WaterTAttack:
                Play("水攻击", true);
                Play("水攻击", true, 0.5f);
                break;
            case AudioEnum.WoodTAttack:
                Play("木攻击", true);
                Play("木攻击", true, 0.5f);
                break;
            case AudioEnum.LightningSkill:
                Play("电技能", true);
@@ -140,7 +140,7 @@
    Dictionary<string, AudioClip> clipDic;
    private void Play(string musicName, bool isOneShot)
    private void Play(string musicName, bool isOneShot, float volume = 1.0f)
    {
        AudioClip au = LoadAudioClip(musicName);
        AudioSource tmpAudioSource;
@@ -160,6 +160,7 @@
            tmpAudioSource = audioSourceList[0];
            tmpAudioSource.clip = au;
            tmpAudioSource.loop = true;
            tmpAudioSource.volume = volume;
        }
        tmpAudioSource.Play();
    }
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs
@@ -197,6 +197,13 @@
                effect.towerPtr = tower;
            }
            m_ParentTower = tower;
            Transform starTs = transform.Find("Star");
            starTs.localPosition = new Vector3(0, 0.2f, 0.6f);
            starTs.localRotation = Quaternion.Euler(60, 180, 0);
            // Vector3 parentScale = transform.parent.transform.localScale;
            // Vector3 tmpScale = new Vector3(0.72f, 0.5f, 0.5f);
            // starTs.localScale = tmpScale * (6 / parentScale.x);
        }
        private Transform mat;
Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
@@ -83,7 +83,7 @@
            countDownTextNew.text = "";
            countDownTextNew.gameObject.SetActive(false);
            Instantiate(Resources.Load<GameObject>("UI/Guide/GuidePanel"), transform);
            Instantiate(Resources.Load<GameObject>("UI/Guide/GuidePanel"), transform.Find("Panel"));
            AddGuideEvent();
        }
Assets/Scripts/UI/ClickEffect.cs
@@ -45,14 +45,15 @@
    {
        if (Application.isMobilePlatform)
        {
            for (int i = 0; i < Input.touchCount; ++i)
            Touch touch = Input.GetTouch(0);
            if (touch.phase == TouchPhase.Began)
            {
                Touch touch = Input.GetTouch(i);
                if (touch.phase == TouchPhase.Began)
                {
                    PlayFX(touch.position);
                }
                PlayFX(touch.position);
            }
            // for (int i = 0; i < Input.touchCount; ++i)
            // {
            // }
        }
        else
        {
@@ -75,7 +76,7 @@
        fxRectTrans.anchoredPosition3D = fxLocalPos;
        //fxRectTrans.localScale = Vector3.one;
        fx.gameObject.SetActive(true);
        fx.StartPlay(fxLifeTime,RecycleFX);
        fx.StartPlay(fxLifeTime, RecycleFX);
    }