我正在为我的项目使用 NGUI,但我不知道如何编写从 NGUI 按钮创建的按钮。我知道的唯一代码是:
void OnMouseDown
Application.loadlevel(1);
但它在 NGUI 按钮中不起作用,我想在单击“开始”按钮时转到下一个场景。有人可以帮我解决这些简单的问题吗?不好意思问了我这个小问题,我只是一个学生和初学者,希望你能理解!先感谢您。
尝试这样的事情:(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。
void OnClick()
{
Application.LoadLevel(1);
}
只需使用 void OnClick(){ } 而不是 OnMouseDown。它会起作用。
对于 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 ,它仍然会被调用。
希望这可以帮助。