using UnityEngine; namespace TowerDefense.UI.HUD { /// /// States the placement tile can be in /// public enum PlacementTileState { Filled, Empty } /// /// Simple class to illustrate tile placement locations /// 主要功能是在场景内能够表示可以放置Tower的位置 /// public class PlacementTile : MonoBehaviour { /// /// Material to use when this tile is empty /// public Material emptyMaterial; /// /// Material to use when this tile is filled /// public Material filledMaterial; /// /// The renderer whose material we're changing /// public Renderer tileRenderer; /// /// 等待购买的材质 /// public Material waitBuyMat; /// /// 已开放的材质. /// public Material openMat; /// /// 塔位已被破坏的材质 /// public Material destroyedMat; /// /// Update the state of this placement tile /// public void SetState(PlacementTileState newState) { switch (newState) { case PlacementTileState.Filled: if (tileRenderer != null && filledMaterial != null) { tileRenderer.sharedMaterial = filledMaterial; } break; case PlacementTileState.Empty: if (tileRenderer != null && emptyMaterial != null) { tileRenderer.sharedMaterial = emptyMaterial; } break; } } /// /// 根据传入的参数来设置当前Grid对应的显示信息 /// WORK START: 从这个函数开始,替换相关的显示效果 /// /// public void SetTileType( PlacementGridType newtype) { switch( newtype) { case PlacementGridType.EGridWaitBuy: if (tileRenderer != null && waitBuyMat != null) tileRenderer.sharedMaterial = waitBuyMat; break; case PlacementGridType.EGridOpen: if (tileRenderer != null && openMat != null) tileRenderer.sharedMaterial = openMat; break; case PlacementGridType.EGridDestroyed: if (tileRenderer != null && destroyedMat != null) tileRenderer.sharedMaterial = destroyedMat; break; } } } }