前期工程搭建了背包的基本功能,现在开始创建角色的状态界面。
功能需求:
①当用户点击状态按钮时,在界面显示角色状态栏;
②状态栏中包含信息有角色的属性(伤害、防御、速度),剩余点数及状态总结;
③当角色存在剩余点数时,在属性面板处显示加点按钮;
④再次点击状态按钮,角色界面隐藏掉。
思路:
综上,我们需要建立5个UILabel来显示角色状态数值,且需要将角色状态脚本中的变量值赋值给Label中的text组件,实现信息的显示。
脚本如下:
Class PlayerStatus
{
public int attack = 20;
public int attack_plus = 0;
public int def = 20;
public int def_plus = 0;
public int speed = 20;
public int speed_plus = 0;
}
Class Status
{
public static Status _instance;
private PlayerStatus palyerstatus;
private TweenPosition tween;
prviate bool isShow = false;
public UILabel attackLabel;
public UILabel defLabel;
public UILabel speedLabel;
public UILabel point_Remain;
public UILabel sum;
public GameObject a_plus;
public GameObject d_plus;
public GameObject s_plus;
void Start( )
{
_instance = this;
tween = GetCompnent<TweenPosition>( );
playerstatus = gameObject.FindGameObjectWithTag(Tag.player).GetCompnent<PlayerStatus>( );
}
public void TranslateState( )
{
if(isShow == false)
{
ShowDetails( );
tween.PlayForward( );
isShow = true;
}
else
{
tween.PlayReserved( );
isShow = false;
}
}
void ShowDetails( )
{
attackLabel.text = "伤害:" + playerstatus.attack + "+" + playerstatus.attack_plus;
defLabel.text = "防御:" + playerstatus.def + "+" + playerstatus.def_plus;
speedLabel.text = "速度:" + playerstatus.speed + "+" + playerstatus.speed_plus;
point_Remain.text = playerstatus.pont_Remain.ToString( );
if(playerstatus.point_Remain > 0)
{
a_plus.SetActive(true);
d_plus.SetActive(true);
s_plus.SetActive(true);
}
else
{
a_plus.SetActive(false);
d_plus.SetActive(false);
s_plus.SetActive(false);
}
}
}