//tips
//微調整
非同期読み込みを使用するとシーンの重複読み込みが発生することがわかった。
そもそも遷移にそこまで時間が取られないので非同期ではない形で遷移させてみると
SceneMoveスクリプトを一部変更。
public override void OnJoinedRoom()
{
Debug.Log("OnJoinedRoom");
if (PhotonNetwork.CurrentRoom.PlayerCount == 4)
{
Debug.Log("OnJoinedRoomCurrentRoom.PlayerCount");
//SceneManager.LoadSceneAsync("Env2", LoadSceneMode.Single);
//SceneManager.LoadSceneAsync(PhotonNetwork.CurrentRoom.Name, LoadSceneMode.Single);//重複対応
SceneManager.LoadScene(PhotonNetwork.CurrentRoom.Name, LoadSceneMode.Single);
PhotonNetwork.IsMessageQueueRunning = true;
}
}
また、ボタンごとにアタッチしているNetworkManagerBの下記も修正。
// 他のプレイヤーが入室してきた時
public override void OnPlayerEnteredRoom(Player newPlayer)
{
Debug.Log("OnPlayerEnteredRoom");
if (PhotonNetwork.CurrentRoom.PlayerCount == 4)
{
//SceneManager.LoadSceneAsync("Env2", LoadSceneMode.Single);
//SceneManager.LoadSceneAsync(PhotonNetwork.CurrentRoom.Name, LoadSceneMode.Single);//重複対応
SceneManager.LoadScene(PhotonNetwork.CurrentRoom.Name, LoadSceneMode.Single);
PhotonNetwork.IsMessageQueueRunning = true;
}
}
そもそもボタンごとにNetworkManagerBをアタッチしていることが問題の可能性もあるように思えたので一旦一番上のボタン以外はNetworkManagerBスクリプトのアタッチを外した。
これによりシーンの16回読み込み問題は解決した。
ただ、一番上のボタンのみを利用するために他のNetworkManagerBスクリプトを外しているために全部のボタンから参照できるような形にNetworkManagerBスクリプトの運用を変更していく必要がある。