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;
}
}
}
}