マルチプレイヤー ゲームでオブジェクトのインスタンス化に問題があります。ゲームのレイアウトはシンプルです。プレイヤーはロビーに入り、全員が準備完了をマークすると、カウントダウンとゲーム レベルのロードのLobbyManager
呼び出しが行われます。ServerChangeScene(gameScene)
問題は、多くの負荷で、ネットワーク化されたすべてのオブジェクトがクライアント上でインスタンス化されないことです。client
少しプレイ テストを行った後、これはがサーバーの前にシーンをロードしたときにのみ発生するように見えることに気付きました。server
ロードが最初にすべて正しく表示され、ゲームが正常にプレイされるときです。サーバーが最初に読み込まれるようにする方法はありますか?
参照用のコード:
public override void OnLobbyServerPlayersReady()
{
currentNumberTeam1 = 0;
currentNumberTeam2 = 0;
StartCoroutine(ServerCountdownCoroutine());
}
public IEnumerator ServerCountdownCoroutine()
{
float remainingTime = _matchStartCountdown;
int floorTime = Mathf.FloorToInt(remainingTime);
while (remainingTime > 0)
{
yield return null;
remainingTime -= Time.deltaTime;
int newFloorTime = Mathf.FloorToInt(remainingTime);
if (newFloorTime != floorTime)
{
floorTime = newFloorTime;
for (int i = 0; i < lobbySlots.Length; ++i)
{
if (lobbySlots[i] != null)
{
(lobbySlots[i] as CharacterSelect).RpcUpdateCountdown(floorTime);
}
}
}
}
for (int i = 0; i < lobbySlots.Length; ++i)
{
if (lobbySlots[i] != null)
{
(lobbySlots[i] as CharacterSelect).RpcUpdateCountdown(0);
}
}
ServerChangeScene(playScene);
}