【问题标题】:How to change scenes in Unity如何在 Unity 中更改场景
【发布时间】:2017-04-18 19:25:30
【问题描述】:
    if(Vector3.Distance(transform.position,Player.position) <= MaxDist)
    {
        //Call What Happens Here
    }

我想用一些将播放器发送到主菜单(场景 0)的代码替换注释。顺便说一下,这是 JavaScript,我使用的是 Unity 5.6。完整代码如下。

    #pragma strict

    var Player : Transform;
    var MoveSpeed = 4;
    var MinDist = 3;
    var MaxDist = 20;

    function Start()
    {

    }

    function Update ()
    {
        transform.LookAt (Player);
        if(Vector3.Distance(transform.position,Player.position) >= MinDist)
        {
            transform.position += transform.forward * MoveSpeed*Time.deltaTime;

            if(Vector3.Distance(transform.position,Player.position) <= MaxDist)
            {
                //Call What Happens Here
            }
        }
    }    

【问题讨论】:

标签: unity3d unity5 unityscript


【解决方案1】:

您可以使用SceneManager.LoadScene,它可以采用构建索引或场景名称

if(Vector3.Distance(transform.position,Player.position) <= MaxDist)
{
    SceneManager.LoadScene(0);
}

if(Vector3.Distance(transform.position,Player.position) <= MaxDist)
{
    SceneManager.LoadScene("SceneName");
}

您只需确保将所有场景添加到您的构建设置中。

别忘了导入SceneManagement 才能使用它。

using UnityEngine.SceneManagement;

【讨论】:

    【解决方案2】:

    我认为这就是您要寻找的:SceneManager。以下是文档:https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html

    #pragma strict
    function Start() {
    // Only specifying the sceneName or sceneBuildIndex will load the scene with the Single mode
    SceneManager.LoadScene("OtherSceneName");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      相关资源
      最近更新 更多