Unity3d

上期工程完成了基本任务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();

    }

}

这样就实现了任务奖励的发放。

原文地址:https://www.cnblogs.com/yanbenxin/p/5803007.html