共计 2405 个字符,预计需要花费 7 分钟才能阅读完成。
Unity 游戏光明之光笔记
第六章 状态零碎的实现
1.UI 设计
2. 管制显示
挂载 Status 脚本
public static Status _instance;
private TweenPosition tween;
private bool isShow = false;
private void Awake()
{
_instance = this;
tween = this.GetComponent<TweenPosition>();}
public void TransformState()
{if(isShow==false)
{tween.PlayForward();
isShow = true;
}
else
{tween.PlayReverse();
isShow = false;
}
}
3. 管制属性的变动
增加脚本管制
public static Status _instance;
private TweenPosition tween;
private bool isShow = false;
private UILabel attackLabel;
private UILabel defLabel;
private UILabel speedLabel;
private UILabel pointRemainLabel;
private UILabel summaryLabel;
private GameObject attackButtonGo;
private GameObject defButtonGo;
private GameObject speedButtonGo;
private PlayerStatus ps;
void Awake()
{
_instance = this;
tween = this.GetComponent<TweenPosition>();
attackLabel = transform.Find("attack").GetComponent<UILabel>();
defLabel = transform.Find("def").GetComponent<UILabel>();
speedLabel = transform.Find("speed").GetComponent<UILabel>();
pointRemainLabel = transform.Find("point_remain").GetComponent<UILabel>();
summaryLabel = transform.Find("summary").GetComponent<UILabel>();
attackButtonGo = transform.Find("attack_plusbutton").gameObject;
defButtonGo = transform.Find("def_plusbutton").gameObject;
speedButtonGo = transform.Find("speed_plusbutton").gameObject;
ps = GameObject.FindGameObjectWithTag(Tags.player).GetComponent<PlayerStatus>();}
public void TransformState()
{if (isShow == false)
{UpdateShow();
tween.gameObject.SetActive(true);
tween.PlayForward();
isShow = true;
}
else
{tween.PlayReverse();
isShow = false;
}
}
void UpdateShow()
{// 更新显示 依据 ps playerstatus 的属性值,去更新显示
attackLabel.text = ps.attack + "+" + ps.attack_plus;
defLabel.text = ps.def + "+" + ps.def_plus;
speedLabel.text = ps.speed + "+" + ps.speed_plus;
pointRemainLabel.text = ps.point_remain.ToString();
summaryLabel.text = "挫伤:" + (ps.attack + ps.attack_plus)
+ "" +" 进攻:" + (ps.def + ps.def_plus)
+ "" +" 速度:" + (ps.speed + ps.speed_plus);
if (ps.point_remain > 0)
{attackButtonGo.SetActive(true);
defButtonGo.SetActive(true);
speedButtonGo.SetActive(true);
}
else
{attackButtonGo.SetActive(false);
defButtonGo.SetActive(false);
speedButtonGo.SetActive(false);
}
在 transformStatus 办法中留神加上 tween.gameObject.SetActive(true); 才会使得动画正确播放
增加点数减少的管制办法
public void OnAttackPlusClick()
{bool success = ps.GetPoint();
if (success)
{
ps.attack_plus++;
UpdateShow();}
}
public void OnDefPlusClick()
{bool success = ps.GetPoint();
if (success)
{
ps.def_plus++;
UpdateShow();}
}
public void OnSpeedPlusClick()
{bool success = ps.GetPoint();
if (success)
{
ps.speed_plus++;
UpdateShow();}
}
网络游戏光明之光的开发笔记写到这里也第六章了,一个游戏也快完结了
正文完