状态系统与药品系统是游戏中的扩展部分,每个系统难度都不算大,因此本篇博客将介绍这两个系统的实现。
7.1 状态系统的实现
状态系统的作用是便于玩家查看角色当前的等级和技能点分配。
7.1.1 状态界面的初始化
状态初始化信息存储在角色下的PlayerStatus脚本之中,为这个脚本添加一些基础数据,作为主角的初始属性。如下
using UnityEngine;
using System.Collections;
public class PlayerStatus : MonoBehaviour {
public int hp = 100;
public int mp = 100;
public int coin = 200;
public int grade = 1;
public int attack = 20;
public int attack_plus = 0;
public int defense = 20;
public int defense_plus = 0;
public int speed = 20;
public int speed_plus = 0;
public int point_remain = 0;
public void GetCoin(int coinNumber)
{
coin += coinNumber;
}
}
在UI Root中建立一个Sprite,命名为Status,作为角色的状态界面,其中包括若干个Label,以及3个加技能点的Sprite,这部分的界面设计因人而异,如下图
在点击功能面板的Status后,需要弹出或隐藏状态面板,因此需要考虑UI界面的显示与隐藏效果,设置方法与背包Inventory的显示/隐藏类似,不做赘述,只说明一下具体步骤
- 设置一个TransformState(),并增加一个标志位作为改变显示/隐藏的判断依据
- 在控制功能列表的控制脚本FunctionBar中的控制状态面板点击的函数中调用TransformState()
7.1.2 对状态信息的访问与更改
我们在Status脚本中对上述Label与Sprite进行管理,以便访问和修改状态信息
创建如下