Relayで対戦するゲームを作っているのですが
結論は … ですが
NetworkManager.Singleton.SceneManager.LoadScene
でシーンを移動したときに同じ gameobject が2つ生成されてはいないのですが
MonoBehaviour の script が 2回呼ばれて…困っていました…
まずデータがおかしいことに気づいたのですが…
よく見ると AwakeやStartも2回呼ばれていて…
しかしそのscriptを付けているgameobjectが2つあるわけではなく…
…まったく気づかなかったのですが
結論としては
NetworkManager.Singleton.SceneManager.LoadScene(“next scene name”)
が2回呼ばれていました…
ステータスが変わったら呼ばれるようにしていただけですが、そこが2回呼ばれていて
Relayを使わない Local対戦では速度的に問題なかった(ごまかされていた)ようですが
Relayを使うと同期に時間がかかるというか微妙にズレを待つ時間があるので。
2回呼ばれる時間があったようです。
しかし、他の粗も修正できたので良しとしましょう///
- playerの準備 1
- stage準備 1
- player 準備 2 準備OK
- stage準備 2 準備OK
- ゲーム開始
となっていて、この 1, 2, 3, 4, の間で UniTaskで待ちを入れて 2つの端末で同期を取っているのですが
やっているうちによく分からなくなります^^;
コメント