上期工程完成了基本任务UI界面的搭建、选择和取消功能。现在开始对接受任务UI变化进行处理。
思路:
①当玩家按下Cancel按键时,界面消失。
②当玩家按下Accept按键时,界面进行任务进度界面,出现OK按键。
③当玩家完成任务目标是,按OK按键领取奖励。
很直接的思路,在长者NPC脚本中加入方法如下:
public bool isTasking = false;
public void OnAcceptButton( )
{
isTasking = true;
ShowTaskProgress();
}
public void OnOkButton( )
{
}
public void OnCancelButton( )
{
HideQuest();
}
public UILabel taskLabel;
public int killCount = 0;
public GameObject AcceptButton;
public GameObject CancelButton;
public GameObject OkButton;
void ShowTaskProgress( )
{
taskLabel.text = "任务: 您已杀死" + killCount+"\10只小野狼。 奖励: 1000金币。";
AcceptButton.SetActive(false);
CancelButton.SetActive(false);
OkButton.SetActive(true);
}
void ShowTaskDescription( )
{
taskLabel.text = "任务:杀死10只小野狼。 奖励: 1000金币。";
AcceptButton.SetActive(true);
CancelButton.SetActive(true);
OkButton.SetActive(false);
}
然后对点击长者的脚本进行更新如下:
void OnMouseOver( )
{
if(Input.GetMouseDown(0))
{
if(isTasking == true)
{
ShowTaskProgress( );
}
else
{
ShowTaskDescription();
}
}
}
之后将方法注册到按键上即可实现本次的功能。
最后进行OK按钮的设计,脚本如下:
Class PlayerStatus
public void Getcoin(int count)
{
coin += count;
}
Class Npc
private PlayerStatus status;
void Start()
{
status = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerStatus>();
}
public void OnOkButton( )
{
if(killCount >= 10)
{
status.Getcoin(1000);
killCount = 0;
ShowTaskDescripition();
}
}
这样就实现了任务奖励的发放。