我正在尝试制作类似于《恶魔城》之类的过渡系统,场景中有多个出口和入口,尽管我无法根据他们使用的入口来改变玩家的位置。我还试图通过一个脚本即时更改所有内容。
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;
}
}
}
答案 0 :(得分:1)
您需要将新位置保存在场景更改之间不会破坏的对象中,或保存在静态变量中。然后,在新场景中时,将新位置应用于播放器。
静态变量方法:
static Vector3 playernewpos; //In some class, for example MyClass
切换场景之前:
MyClass.playernewpos = newPos.position;
切换场景后:
playerChar.position = MyClass.playernewpos;