如何在 Unity 中更改场景

Jes*_*ott 3 unity-game-engine unityscript unity5

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

我想用一些将播放器发送到主菜单(场景 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
            }
        }
    }    
Run Code Online (Sandbox Code Playgroud)

I.B*_*I.B 6

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

if(Vector3.Distance(transform.position,Player.position) <= MaxDist)
{
    SceneManager.LoadScene(0);
}
Run Code Online (Sandbox Code Playgroud)

或者

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

您只需要确保在Build Settings 中添加所有场景。

不要忘记导入SceneManagement才能使用它。

using UnityEngine.SceneManagement;
Run Code Online (Sandbox Code Playgroud)