【问题标题】:NGUI in Unity what code to a start button to go to the Second sceneUnity中的NGUI什么代码到一个开始按钮去第二个场景
【发布时间】:2014-11-05 23:46:42
【问题描述】:

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

void OnMouseDown    
Application.loadlevel(1);

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

【问题讨论】:

  • 标签 unity 用于 Microsoft Unity。请不要滥用它。

标签: unity3d ngui


【解决方案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。

【讨论】:

    【解决方案2】:

    对于需要对用户输入做出反应的 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,它仍然会被调用。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:
        void OnClick()
        {
            Application.LoadLevel(1);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-07
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多