Unity中在第一个场景中单击按钮时加载另一个场景

问题描述:

我已经创建了两个场景,我想要加载场景2的单一场景如果点击场景1上的button1。我一直在谷歌上搜索这个问题,阅读文档的统一,但我只觉得这Unity中在第一个场景中单击按钮时加载另一个场景

​​

我试图用这个,但我的场景两人只是负载没有我点击第一个场景的按钮。 这里是我的代码对于第一个场景,此刻

using UnityEngine; 
    using System.Collections; 

    public class first : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 

      Application.LoadLevel("MiniGame"); 
    } 

    // Update is called once per frame 
    void Update() { 
     Application.LoadLevel("MiniGame"); 
    } 
} 

我挂这个脚本与按钮我的第一个屏幕上,“小游戏”是第二现场。

  1. 创建GUI按钮。
  2. 编写用于级别改变的公共函数脚本。如下例所示。

    using UnityEngine; 
    using System.Collections; 
    
    public class first : MonoBehaviour 
    { 
        public void GoToLevel(string level) 
        { 
         Application.LoadLevel (level); 
        } 
    } 
    
  3. 设置您的GUI按钮的OnClick方法。我在画布中使用了我的脚本,可以在任何对象中使用。你 For Example

还可以观看unity scene selection tutorial

这是完全错误的使用Application.LoadLevel() functionality。但这不是这里唯一的问题。 Start()在Unity中,创建附有此脚本的对象时会调用脚本一次。更新()被称为每一帧,这意味着现在你要求统一加载你的第二个级别数千次,直到它“崩溃”我假设。

为了解决这个功能,你应该通过这个脚本安装到你要点击

using UnityEngine; 
using System.Collections; 

public class first : MonoBehaviour 
{ 

// Use this for initialization 
void Start() 
{ 

} 
void Update() 
{ 

} 

void OnMouseDown() 
{ 
    // this object was clicked - do something 
Application.LoadLevel("MiniGame"); 
} 

当然,你将需要一个对撞机添加到您正在尝试的对象的对象创建一个可点击的对象点击

+0

我试图更新ny脚本,但是当我点击按钮时,什么都没有发生。 –

+0

是否在对象上添加了碰撞器?如果您想要更新您的问题,请详细说明您要实现的目标。 – Billatron

Application.LoadLevel (level);已经过时了。可以使用SceneManager.LoadScene()代替。