0

我正在为我的项目使用 NGUI,但我不知道如何编写从 NGUI 按钮创建的按钮。我知道的唯一代码是:

void OnMouseDown    
Application.loadlevel(1);

但它在 NGUI 按钮中不起作用,我想在单击“开始”按钮时转到下一个场景。有人可以帮我解决这些简单的问题吗?不好意思问了我这个小问题,我只是一个学生和初学者,希望你能理解!先感谢您。

4

4 回答 4

1

尝试这样的事情:(C# 脚本)

using UnityEngine;
using System.Collections;

public class SceneButton: MonoBehaviour {
    public string targetScene; //Scene name

    void Start(){
        UIEventListener.Get(gameObject).onClick += OnButtonClick;
    }

    void OnButtonClick(GameObject g){
        Application.LoadLevel(targetScene);
    }
}

请记住,附加的元素必须在 NGUI Root 中......并且需要一个 Collider。

于 2014-01-09T12:54:24.637 回答
0
void OnClick()
{
    Application.LoadLevel(1);
}
于 2014-11-05T15:46:42.643 回答
0

只需使用 void OnClick(){ } 而不是 OnMouseDown。它会起作用。

于 2014-05-18T05:59:07.340 回答
0

对于 NGUI 中需要对用户输入做出反应的任何 UI 元素,请将 NGUIButtonMessage 脚本附加到对象。该对象必须有一个对撞机才能使该脚本工作。在该脚本中,您可以告诉它何时触发它。一些示例是当您单击对象时,或者当您只是按下或释放它时。然后脚本的下一个属性是方法或函数名称。这是您要在脚本中调用的方法的名称。脚本中的方法名称必须与 NGUIButton 消息的方法/函数名称字段上的内容相匹配。最后一个属性是触发器对象。这是脚本所在的对象。例如,如果您要处理点击的方法名称为 OnSubmitBttnClicked,并且目标是附加了按钮消息的同一个游戏对象,该游戏对象中应该至少有一个脚本包含具有该名称的方法。请记住,如果同一个对象中存在多个具有相同名称的方法,则所有方法都将被调用。下面是 OnSubmitBttnClicked 示例的方法签名示例:

private void OnSubmitBttnClicked()
{
}

你也可以使用

//The parameter clickedBttn is the object that contains the button message component
private void OnSubmitBttnClicked(GameObject clickedBttn)
{
}

保护级别无关紧要。您可以使用 private public 或 protected ,它仍然会被调用。

希望这可以帮助。

于 2014-01-02T19:15:14.990 回答