更改场景后更改玩家位置

时间:2019-02-10 04:39:52

标签: c# unity3d 2d

我正在尝试制作类似于《恶魔城》之类的过渡系统,场景中有多个出口和入口,尽管我无法根据他们使用的入口来改变玩家的位置。我还试图通过一个脚本即时更改所有内容。

TL:DR:在过渡时需要帮助更改播放器的位置。

 public class SceneTransition : MonoBehaviour {

    public string sceneTo;
    public Transform newPos;
    public Transform playerChar;

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Player") {

            SceneManager.LoadScene (sceneTo);
            playerChar.position = newPos.position;
        }
    }


}

1 个答案:

答案 0 :(得分:1)

您需要将新位置保存在场景更改之间不会破坏的对象中,或保存在静态变量中。然后,在新场景中时,将新位置应用于播放器。

静态变量方法:

static Vector3 playernewpos; //In some class, for example MyClass

切换场景之前:

MyClass.playernewpos = newPos.position;

切换场景后:

playerChar.position = MyClass.playernewpos;