From 60571ce1c77c5c323dff0d13e0fcd1ae9c22b40a Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Wed, 18 Nov 2020 19:34:55 +0800 Subject: [PATCH] 添加Manager的时候初始化DOTween 切换场景的时候clear了 --- Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs | 125 +++++++++++++++++++++++++++++++++++------ 1 files changed, 107 insertions(+), 18 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs b/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs index 3628f72..e98d12c 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/PlacementTile.cs @@ -1,5 +1,7 @@ using UnityEngine; using TowerDefense.Level; +using UnityEditor; +using KTGMGemClient; namespace TowerDefense.UI.HUD { @@ -61,7 +63,7 @@ /// </summary> public Material selectMat; - public ParticleSystem myPS;//可以升级的特效 + //public ParticleSystem myPS;//可以升级的特效 /// <summary> @@ -86,21 +88,21 @@ } } - public void SetParticleSystem(bool isOn) - { - if (isOn) - { - if (myPS.gameObject.activeSelf != isOn) myPS.gameObject.SetActive(isOn); - myPS.Play(); + // public void SetParticleSystem(bool isOn) + // { + // if (isOn) + // { + // if (myPS.gameObject.activeSelf != isOn) myPS.gameObject.SetActive(isOn); + // myPS.Play(); - } - else - { - myPS.Stop(); - if (myPS.gameObject.activeSelf != isOn) myPS.gameObject.SetActive(isOn); + // } + // else + // { + // myPS.Stop(); + // if (myPS.gameObject.activeSelf != isOn) myPS.gameObject.SetActive(isOn); - } - } + // } + // } /// <summary> /// 设置是否可以放置 @@ -108,20 +110,107 @@ /// <param name="canPlace"></param> public void CheckCanPlace(bool canPlace) { - canPlaceRenderer.enabled = canPlace; - if (canPlace) + if (canPlaceRenderer) { - SetSelect(false); + if (canPlaceRenderer.enabled != canPlace) + canPlaceRenderer.enabled = canPlace; + if (canPlace) + { + SetSelect(false); + } + else if (towerVSRenderer.enabled) + { + towerVSRenderer.enabled = false; + } } + } /// <summary> /// 设置当前材质 /// </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; } -- Gitblit v1.9.1