SceneManager.Unloadを、OnTriggerEnter時に呼ぶと凍る
こんにちは。
昨夜、Unityがフリーズしてしまって、結構大変でした。
Unity 5.3.1です。
次のように実行すると、フリーズしました。
1 2 3 4 5 6 7
| void OnTriggerEnter2D(Collider2D col2d) { if (col2d.tag == "Player") { SceneManager.UnloadScene("MainMenu"); } }
|
なぜか、
SceneManager.LoadScene
ではフリーズせず、
FixedUpdate
、Update
のタイミングでやってもフリーズしない
です。
というわけで、次のようにしたら直りました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| bool isEnter = false; void OnTriggerEnter2D(Collider2D col2d) { if (col2d.tag == "Player") { isEnter = true; } } void OnTriggerExit2D(Collider2D col2d) { if (col2d.tag == "Player") { isEnter = false; } } void Update() { if (isEnter) { SceneManager.UnloadScene("MainMenu"); } }
|