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