wangguan
2020-11-11 6f32c1848f141eb7c4b2fe32875b2dfde5f5226c
拖拽BUG
2 files added
16 files modified
507 ■■■■ changed files
Assets/Materials/PVPTD/WaveLineBackGround.mat 2 ●●● patch | view | raw | blame | history
Assets/Materials/UI/tileTowerVSMat.mat 78 ●●●●● patch | view | raw | blame | history
Assets/Materials/UI/tileTowerVSMat.mat.meta 8 ●●●●● patch | view | raw | blame | history
Assets/Prefabs/UI/PlacementTileMobile.prefab 86 ●●●●● patch | view | raw | blame | history
Assets/Scenes/Levels/Battle/Endless.unity 119 ●●●● patch | view | raw | blame | history
Assets/Scripts/Common/GameConfig.cs 21 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Economy/LootDrop.cs 2 ●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs 15 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs 6 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs 17 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs 57 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs 3 ●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs 85 ●●●●● patch | view | raw | blame | history
Assets/UI/Endless/Fire.png patch | view | raw | blame | history
Assets/UI/Endless/Fire.png.meta 2 ●●● patch | view | raw | blame | history
Assets/UI/Endless/Wood.png patch | view | raw | blame | history
Assets/UI/Endless/Wood.png.meta 2 ●●● patch | view | raw | blame | history
ProjectSettings/EditorBuildSettings.asset 4 ●●●● patch | view | raw | blame | history
Assets/Materials/PVPTD/WaveLineBackGround.mat
@@ -40,7 +40,7 @@
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _MainTex:
        m_Texture: {fileID: 2800000, guid: d95395dc61ff4ce4baabc8fa53b612e1, type: 3}
        m_Texture: {fileID: 2800000, guid: 7e7e8a047b05850449ffe07f5e9613f3, type: 3}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _MetallicGlossMap:
Assets/Materials/UI/tileTowerVSMat.mat
New file
@@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
  serializedVersion: 6
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_Name: tileTowerVSMat
  m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0}
  m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  m_LightmapFlags: 4
  m_EnableInstancingVariants: 0
  m_DoubleSidedGI: 0
  m_CustomRenderQueue: -1
  stringTagMap: {}
  disabledShaderPasses: []
  m_SavedProperties:
    serializedVersion: 3
    m_TexEnvs:
    - _BumpMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _DetailAlbedoMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _DetailMask:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _DetailNormalMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _EmissionMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _MainTex:
        m_Texture: {fileID: 2800000, guid: 93f40a01d57fbff418fc0b54b6ab7d9f, type: 3}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _MetallicGlossMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _OcclusionMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    - _ParallaxMap:
        m_Texture: {fileID: 0}
        m_Scale: {x: 1, y: 1}
        m_Offset: {x: 0, y: 0}
    m_Floats:
    - _BumpScale: 1
    - _Cutoff: 0.5
    - _DetailNormalMapScale: 1
    - _DstBlend: 0
    - _GlossMapScale: 1
    - _Glossiness: 0.5
    - _GlossyReflections: 1
    - _Metallic: 0
    - _Mode: 0
    - _OcclusionStrength: 1
    - _Parallax: 0.02
    - _SmoothnessTextureChannel: 1
    - _SpecularHighlights: 1
    - _SrcBlend: 1
    - _UVSec: 0
    - _ZWrite: 1
    m_Colors:
    - _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.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c40b753d26a2b4a4facef99e60c526d2
NativeFormatImporter:
  externalObjects: {}
  mainObjectFileID: 0
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Prefabs/UI/PlacementTileMobile.prefab
@@ -31,6 +31,7 @@
  - {fileID: 4082878821884824}
  - {fileID: 3708897891681601760}
  - {fileID: 675910950832637167}
  - {fileID: 5551798738058946706}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -56,6 +57,10 @@
  canPlaceMat: {fileID: 2100000, guid: 434316934db1c90498f004f124d7c733, type: 2}
  selectMat: {fileID: 2100000, guid: 3b7aa7626a2d4674ca2aa32958f14ca9, type: 2}
  myPS: {fileID: 675910951314242398}
  towerVSRenderer: {fileID: 2078962303223178405}
  towerVSMat: {fileID: 2100000, guid: c40b753d26a2b4a4facef99e60c526d2, type: 2}
  fire: {fileID: 2800000, guid: 8c9a3d26120e78f40aa4ef9ed23d573c, type: 3}
  wood: {fileID: 2800000, guid: 93f40a01d57fbff418fc0b54b6ab7d9f, type: 3}
--- !u!1 &1648682030917314
GameObject:
  m_ObjectHideFlags: 0
@@ -137,6 +142,87 @@
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1648682030917314}
  m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &5077960921151876512
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 5551798738058946706}
  - component: {fileID: 2078962303223178405}
  - component: {fileID: 2526113355552920061}
  m_Layer: 0
  m_Name: TowerVSMesh
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &5551798738058946706
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5077960921151876512}
  m_LocalRotation: {x: 0.70710576, y: -0, z: -0, w: 0.70710784}
  m_LocalPosition: {x: 0, y: 0, z: 0.0785}
  m_LocalScale: {x: 1, y: 0.7293007, z: 1}
  m_Children: []
  m_Father: {fileID: 4376446327882660}
  m_RootOrder: 3
  m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: 0}
--- !u!23 &2078962303223178405
MeshRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5077960921151876512}
  m_Enabled: 1
  m_CastShadows: 0
  m_ReceiveShadows: 1
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 2
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 2100000, guid: c40b753d26a2b4a4facef99e60c526d2, type: 2}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 3
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &2526113355552920061
MeshFilter:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 5077960921151876512}
  m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &6911264303789898319
GameObject:
  m_ObjectHideFlags: 0
Assets/Scenes/Levels/Battle/Endless.unity
@@ -550,7 +550,7 @@
  m_LocalScale: {x: 0.8, y: 0.8, z: 0.8}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 9
  m_RootOrder: 10
  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!64 &49423734
MeshCollider:
@@ -1009,7 +1009,7 @@
  m_LocalScale: {x: 4.5, y: 3, z: 3}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 6
  m_RootOrder: 7
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &146816453
BoxCollider:
@@ -1282,7 +1282,7 @@
  m_Children:
  - {fileID: 1047835204}
  m_Father: {fileID: 304173789}
  m_RootOrder: 5
  m_RootOrder: 6
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &167919693
MonoBehaviour:
@@ -2174,6 +2174,7 @@
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 1308461725}
  - {fileID: 1312527600}
  - {fileID: 495435994}
  - {fileID: 1172845527}
@@ -2911,7 +2912,7 @@
  m_Children:
  - {fileID: 585504009}
  m_Father: {fileID: 304173789}
  m_RootOrder: 1
  m_RootOrder: 2
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &495435995
MonoBehaviour:
@@ -4079,7 +4080,7 @@
  m_Children:
  - {fileID: 741868831}
  m_Father: {fileID: 304173789}
  m_RootOrder: 4
  m_RootOrder: 5
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &618377764
MonoBehaviour:
@@ -6156,7 +6157,7 @@
  m_LocalScale: {x: 0.8, y: 0.8, z: 0.8}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 10
  m_RootOrder: 11
  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!64 &902738590
MeshCollider:
@@ -8911,7 +8912,7 @@
  m_Children:
  - {fileID: 1397278834}
  m_Father: {fileID: 304173789}
  m_RootOrder: 2
  m_RootOrder: 3
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1172845528
MonoBehaviour:
@@ -9487,6 +9488,100 @@
  m_Father: {fileID: 208464362}
  m_RootOrder: 6
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1308461724
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 1308461725}
  - component: {fileID: 1308461728}
  - component: {fileID: 1308461727}
  - component: {fileID: 1308461726}
  m_Layer: 16
  m_Name: SkillGround
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!4 &1308461725
Transform:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1308461724}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0.9, z: 6.574}
  m_LocalScale: {x: 5.08, y: 1, z: 3}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 0
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1308461726
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1308461724}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: e9b3dec8bdbaad047b1755149950ddb1, type: 3}
  m_Name:
  m_EditorClassIdentifier:
--- !u!23 &1308461727
MeshRenderer:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1308461724}
  m_Enabled: 1
  m_CastShadows: 1
  m_ReceiveShadows: 1
  m_DynamicOccludee: 1
  m_MotionVectors: 1
  m_LightProbeUsage: 1
  m_ReflectionProbeUsage: 1
  m_RayTracingMode: 2
  m_RayTraceProcedural: 0
  m_RenderingLayerMask: 1
  m_RendererPriority: 0
  m_Materials:
  - {fileID: 2100000, guid: fb161d5c142e81646acc60fe89cbc8e5, type: 2}
  m_StaticBatchInfo:
    firstSubMesh: 0
    subMeshCount: 0
  m_StaticBatchRoot: {fileID: 0}
  m_ProbeAnchor: {fileID: 0}
  m_LightProbeVolumeOverride: {fileID: 0}
  m_ScaleInLightmap: 1
  m_ReceiveGI: 1
  m_PreserveUVs: 0
  m_IgnoreNormalsForChartDetection: 0
  m_ImportantGI: 0
  m_StitchLightmapSeams: 1
  m_SelectedEditorRenderState: 3
  m_MinimumChartSize: 4
  m_AutoUVMaxDistance: 0.5
  m_AutoUVMaxAngle: 89
  m_LightmapParameters: {fileID: 0}
  m_SortingLayerID: 0
  m_SortingLayer: 0
  m_SortingOrder: 0
  m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1308461728
MeshFilter:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 1308461724}
  m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &1310262349 stripped
MonoBehaviour:
  m_CorrespondingSourceObject: {fileID: 3130750578608519141, guid: 49213eb9f84d76e47b6b19e9a246b83c,
@@ -9676,7 +9771,7 @@
  m_LocalScale: {x: 7.2, y: 1, z: 12.8}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 0
  m_RootOrder: 1
  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!64 &1312527601
MeshCollider:
@@ -10534,7 +10629,7 @@
  m_LocalScale: {x: 0.8, y: 0.8, z: 0.8}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 8
  m_RootOrder: 9
  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!64 &1396658963
MeshCollider:
@@ -12641,7 +12736,7 @@
  m_LocalScale: {x: 0.8, y: 0.8, z: 0.8}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 11
  m_RootOrder: 12
  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!64 &1643240605
MeshCollider:
@@ -13908,7 +14003,7 @@
  m_LocalScale: {x: 0.8, y: 0.8, z: 0.8}
  m_Children: []
  m_Father: {fileID: 304173789}
  m_RootOrder: 7
  m_RootOrder: 8
  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!64 &1813750112
MeshCollider:
@@ -15740,7 +15835,7 @@
  m_Children:
  - {fileID: 1584088620}
  m_Father: {fileID: 304173789}
  m_RootOrder: 3
  m_RootOrder: 4
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1977355536
MonoBehaviour:
Assets/Scripts/Common/GameConfig.cs
@@ -1,8 +1,10 @@
/**
 * 全局配置
 * @Author: chenxin
 * @Date: 2020-10-14 10:40:24
 */

using UnityEngine;
/**
* 全局配置
* @Author: chenxin
* @Date: 2020-10-14 10:40:24
*/
namespace KTGMGemClient
{
    public class GameConfig
@@ -61,5 +63,14 @@
        /// 每一轮游戏中成功购买塔的数量
        /// </summary>
        public static int EndlessBuyTowerCount;
        #region 各个塔的偏移量
        public static Vector3 fireScale = new Vector3(1.92f, 1.92f, 2.208f);
        public static Vector3 woodScale = new Vector3(1.5f, 1.5f, 2.82f);
        public static Vector3 waterScale = new Vector3(1.0f, 1.0f, 1.88f);
        public static Vector3 fireOffectp = new Vector3(0f, 0f, -0.15f);
        public static Vector3 woodOffectp = new Vector3(0.08f, 0f, 0.2f);
        #endregion
    }
}
Assets/Scripts/TowerDefense/Economy/LootDrop.cs
@@ -102,7 +102,7 @@
                    List<reward> rewardList = EndlessPortData.GetDropRewardList(EndlessLevelManager.instance.CurrentLevel,
                        EndlessLevelManager.instance.WaveManager.CurrentWaveIndex + 1, tunel);
                    if (rewardList.Count > 0)
                    //if (rewardList.Count > 0)
                        EndlessDropManager.instance.AddDrop(rewardList, gameObject.transform.position);
                }
            }
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -155,13 +155,16 @@
            // River: 为了开始拖动后可以直接显示GhostTower
            m_GameUI.TryMoveGhost(pointer, false);
            this.isInDragState = true;
            AudioSourceManager.Ins.Play(AudioEnum.DragTower);
            m_GameUI.CheckAllCanPlace();//检查上阵宝石有么有可以合成的位置
            if (m_GameUI.HasTower)
            {
                Debug.Log("什么时候拖拽的");
                this.isInDragState = true;
                AudioSourceManager.Ins.Play(AudioEnum.DragTower);
                m_GameUI.CheckAllCanPlace();//检查上阵宝石有么有可以合成的位置
            currentTimeScale = Time.timeScale;
            Time.timeScale = 0.5f;
                currentTimeScale = Time.timeScale;
                Time.timeScale = 0.5f;
            }
        }
        protected override void OnDrag(PointerActionInfo pointer)
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
@@ -961,11 +961,15 @@
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        public void CheckCanPlaceUpdate(int x, int y)
        public void CheckCanPlaceUpdate(int x, int y, bool isEmpty, string towerName)
        {
            CloseCanPlace();
            currentCanPlace = m_Tiles[x, y];
            currentCanPlace.SetSelect(true);
            if (isEmpty)
            {
                currentCanPlace.SetTowerVirtualshadow(towerName);
            }
        }
        /// <summary>
Assets/Scripts/TowerDefense/Towers/TowerLevel.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using ActionGameFramework.Health;
using Core.Health;
using KTGMGemClient;
using TowerDefense.Affectors;
using TowerDefense.Towers.Data;
using TowerDefense.UI.HUD;
@@ -143,14 +144,6 @@
        Vector3 normalScale;
        private Vector3 fireScale = new Vector3(1.92f, 1.92f, 2.208f);
        private Vector3 woodScale = new Vector3(1.5f, 1.5f, 2.82f);
        private Vector3 waterScale = new Vector3(1.0f, 1.0f, 1.88f);
        private Vector3 fireOffectp = new Vector3(0f, 0f, -0.15f);
        private Vector3 woodOffectp = new Vector3(0.08f, 0f, 0.2f);
        private void Awake()
        {
            mat = transform.Find("Cube");
@@ -192,14 +185,14 @@
            if (transform.name.StartsWith("GrowUpTower"))
            {
                //火元素
                mat.localScale = fireScale;
                mat.localPosition = fireOffectp;
                mat.localScale = GameConfig.fireScale;
                mat.localPosition = GameConfig.fireOffectp;
            }
            else if (transform.name.StartsWith("BlinkTower"))
            {
                //木元素
                mat.localScale = woodScale;
                mat.localPosition = woodOffectp;
                mat.localScale = GameConfig.woodScale;
                mat.localPosition = GameConfig.woodOffectp;
            }
            else if (transform.name.StartsWith("CopyCatTower"))
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -1,4 +1,5 @@
using Core.Health;
using System.Globalization;
using Core.Health;
using Core.Input;
using Core.Utilities;
using DG.Tweening;
@@ -177,6 +178,12 @@
        /// Current tower placeholder. Will be null if not in the <see cref="State.Building" /> state.
        /// </summary>
        TowerPlacementGhost m_CurrentTower;
        public bool HasTower{
            get{
                return m_CurrentTower!=null;
            }
        }
        // TowerList用于简单记录相关的数据
        protected List<Tower> m_listTower = new List<Tower>();
@@ -891,13 +898,19 @@
        /// </summary>
        public void CloseCanPlaceRenderer()
        {
            if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Fire || m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
            if (m_CurrentTower && m_CurrentTower.controller && m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Fire || m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
            {
                //Debug.Log("需要激活兵线下方绿色标识");
                EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessStartDragSkill, false);
            }
            if (m_CurrentArea != null)
                (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlaceRenderer();
            else
            {
                GameObject placeObj = GameObject.FindGameObjectWithTag("PlaceTower");
                if (placeObj != null)
                    (placeObj.GetComponent<IPlacementArea>() as TowerPlacementGridEndless).CloseCanPlaceRenderer();
            }
        }
        /// <summary>
@@ -914,16 +927,36 @@
                {
                    //Debug.Log("得到了一个空的塔位");
                    (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y);
                    (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, false, "");
                    //if(temporaryMat)
                }
                else if ((m_GridPosition.x >= 0) && (m_GridPosition.y >= 0))
                {
                    if (m_CurrentArea.isFreeAtackPos(m_GridPosition.x, m_GridPosition.y))
                    {
                        (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, towerToMove.towerName);
                    }
                    else
                    {
                        (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace();
                    }
                }
                else
                {
                    (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace();
                }
            }
            else
            {
                //Debug.Log("什么情况");
                if (m_CurrentTower.controller.towerFeature == EFeatureTower.NULL)
                {
                    dragTowerPlacement.CloseCanPlace();
                }
            }
        }
        TowerPlacementGridEndless dragTowerPlacement;
        /// <summary>
        /// 目标位置是否是可攻击属性的空塔位
@@ -947,15 +980,6 @@
                    return false;
                }
            }
            if ((m_GridPosition.x >= 0) && (m_GridPosition.y >= 0))
            {
                if (m_CurrentArea.isFreeAtackPos(m_GridPosition.x, m_GridPosition.y))
                {
                    return true;
                }
            }
            return false;
        }
@@ -1763,7 +1787,10 @@
            // 获取相应的放置区域。
            GameObject placeObj = GameObject.FindGameObjectWithTag("PlaceTower");
            if (placeObj != null)
            {
                m_CurrentArea = placeObj.GetComponent<IPlacementArea>();
                dragTowerPlacement = placeObj.GetComponent<IPlacementArea>() as TowerPlacementGridEndless;
            }
            placeObj = GameObject.FindGameObjectWithTag("PlaceTowerOpponent");
            EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessHeartAllLose, AllHeartLose);
        }
@@ -2163,7 +2190,7 @@
                    }
                }
                // 炸弹是区域攻击显示:
                if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
                else if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
                {
                    // 测试代码与战场区域碰撞,碰撞后显示攻击区域:
                    BattleAreaRaycast(ref npt);
Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -308,7 +308,8 @@
        AudioSourceManager.Ins.Play(AudioEnum.UI);
        // 还没到技能时间,忽略掉技能宝石
        Tower newTower = GetRandomTower(EndlessUIStart.instance.GameStartTime <= SKILL_TOWER_TIME);
        //Tower newTower = GetRandomTower(EndlessUIStart.instance.GameStartTime <= SKILL_TOWER_TIME);
        Tower newTower = GetRandomTower(false);
        if (!newTower)
            throw new Exception("未能成功产生Tower");
Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs
@@ -1,5 +1,7 @@
using UnityEngine;
using TowerDefense.Level;
using UnityEditor;
using KTGMGemClient;
namespace TowerDefense.UI.HUD
{
@@ -116,6 +118,10 @@
                {
                    SetSelect(false);
                }
                else if (towerVSRenderer.enabled)
                {
                    towerVSRenderer.enabled = false;
                }
            }
        }
@@ -124,9 +130,86 @@
        /// 设置当前材质
        /// </summary>
        /// <param name="isSelect"></param>
        /// <param name="isEmpty"></param>
        public void SetSelect(bool isSelect)
        {
            canPlaceRenderer.material = isSelect ? selectMat : canPlaceMat;
            if (isSelect)
            {
                if (canPlaceRenderer.material != selectMat)
                {
                    canPlaceRenderer.material = selectMat;
                }
            }
            else
            {
                if (canPlaceRenderer.material != canPlaceMat)
                {
                    canPlaceRenderer.material = canPlaceMat;
                }
                if (towerVSRenderer.enabled)
                    towerVSRenderer.enabled = false;
            }
        }
        /// <summary>
        /// 塔的虚影
        /// </summary>
        public Renderer towerVSRenderer;
        /// <summary>
        /// 塔的虚影
        /// </summary>
        public Material towerVSMat;
        public Texture fire, wood;
        private Vector3 fireScale = new Vector3(1.02f, 0.926f, 1f);
        private Vector3 woodScale = new Vector3(0.82f, 1.03f, 1f);
        private Vector3 waterScale = new Vector3(1.0f, 1.0f, 1.88f);
        private Vector3 fireOffectp = new Vector3(-0.05f, 0f, 0f);
        private Vector3 woodOffectp = new Vector3(0.0f, 0f, 0.19f);
        public void SetTowerVirtualshadow(string towerName)
        {
            if (towerName.StartsWith("GrowUpTower"))
            {
                if (!towerVSRenderer.enabled) towerVSRenderer.enabled = true;
                //火元素
                towerVSMat.SetTexture(shaderPropertyName, fire);
                towerVSRenderer.transform.localScale = fireScale;
                towerVSRenderer.transform.localPosition = fireOffectp;
            }
            else if (towerName.StartsWith("BlinkTower"))
            {
                if (!towerVSRenderer.enabled) towerVSRenderer.enabled = true;
                //木元素
                towerVSMat.SetTexture(shaderPropertyName, wood);
                //木元素
                towerVSRenderer.transform.localScale = woodScale;
                towerVSRenderer.transform.localPosition = woodOffectp;
            }
            else if (towerName.StartsWith("CopyCatTower"))
            {
                //水元素
            }
        }
        string shaderPropertyName;
        /// <summary>
        /// Start is called on the frame when a script is enabled just before
        /// any of the Update methods is called the first time.
        /// </summary>
        void Start()
        {
            shaderPropertyName = ShaderUtil.GetPropertyName(towerVSMat.shader, 0);
            //Debug.Log("获取到了Shader的名字" + shaderPropertyName);
            towerVSRenderer.enabled = false;
        }
Assets/UI/Endless/Fire.png

Assets/UI/Endless/Fire.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fb111de56e5ae7d4dbb501e9d4da7875
guid: 8c9a3d26120e78f40aa4ef9ed23d573c
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
Assets/UI/Endless/Wood.png

Assets/UI/Endless/Wood.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 82d4eaa29085eae4296f38062fb43d00
guid: 93f40a01d57fbff418fc0b54b6ab7d9f
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
ProjectSettings/EditorBuildSettings.asset
@@ -11,10 +11,10 @@
  - enabled: 1
    path: Assets/Scenes/LoadingScene.unity
    guid: 587e6361681b8c54f92c0bc9bbfa2cb7
  - enabled: 1
  - enabled: 0
    path: Assets/Scenes/MainManuScene.unity
    guid: 520ddc4fdac3ea246b57984ad40aea6c
  - enabled: 1
  - enabled: 0
    path: Assets/Scenes/Levels/Battle/GemBattle.unity
    guid: 31be1c7e41e144742a462aa0c605346c
  - enabled: 1