改变场景后改变玩家位置

Changing player position after changing scenes

我正在尝试制作一个类似于恶魔城之类的过渡系统,其中的场景有多个出口和入口,尽管我无法根据玩家使用的入口来改变他们的位置。我还试图通过一个脚本使它在运行中保持可变。

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;
        }
    }


}

您需要将新位置保存在场景更改之间未被销毁的对象中,或保存在静态变量中。然后当你在新场景中时,将新位置应用到播放器。

静态变量方法:

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

切换场景前:

MyClass.playernewpos = newPos.position;

切换场景后:

playerChar.position = MyClass.playernewpos;