liuzhiwei
2020-11-12 18f96c9313bf24d2296e615f44fc0ca005f2e872
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,87 @@
        /// 设置当前材质
        /// </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);
            shaderPropertyName = "_MainTex";
            //Debug.Log("获取到了Shader的名字" + shaderPropertyName);
            towerVSRenderer.enabled = false;
        }