这里要对游戏要素进行拆分, 需要细分游戏的要素( 农场游戏来说 ):
-
地块需要包含以下的内容:
-
玩家需要包含以下的信息:
-
界面需要包含以下信息:
-
点击土地的时候, 是弹出还是显示对应窗口
-
判断是购买弹出窗口界面, 还是建造/升级窗口界面
对于类型可以利用数值来处理类型, 也可以通过 `enum` 枚举来定义选择类型, 按照使用情况来进行选择即可.
GroundProperties 脚本内容:
using UnityEngine;
/// <summary>
/// 土地属性类型
/// </summary>
public class GroundProperties : MonoBehaviour{
/// <summary>
/// 土地的通用类型标识( 公开的类型对象 )
/// 可以通过 GroundProperties.StatusFlags.Empty 直接获取
/// </summary>
public enum StatusFlags {
Empty, // 空地
Payed, // 已购买
Build, // 已经建造
}
/// <summary>
/// 土地当前状态
/// </summary>
public StatusFlags Status { get; private set; }
/// <summary>
/// 土地的价格
/// </summary>
public readonly int Price = 200;
}
GameController 脚本内容:
using UnityEngine;
/// <summary>
/// 游戏控制器类
/// </summary>
public class GameController : MonoBehaviour{
// 其他代码略
void Update(){
// 获取土地状态, 并判断土地状态
switch (activeGroundProp.Status) {
case GroundProperties.StatusFlags.Empty:
Debug.Log("弹出购买土地");
break;
case GroundProperties.StatusFlags.Payed:
Debug.Log("弹出购买土地");
break;
case GroundProperties.StatusFlags.Build:
Debug.Log("弹出建造土地");
break;
}
}
}