1

NetworkManager.ServerChangeScene()ステージ 1 からステージ 2 への切り替えに使用すると、プレーヤーは破壊され、ステージ 2 のロード時に存在しません。エラーはなく、シーンは正常に変更されます。

何が原因でしょうか?

シーンを変更するコードは次のとおりです。

[ServerCallback]
public void LoadOnline (string sceneName) {

    NetworkManager.singleton.ServerChangeScene (sceneName);
}
4

1 に答える 1

1

永続的なゲーム オブジェクト (またはプレイヤー) をステージ 1 からステージ 2 まで維持するには、オブジェクトの Awake メソッドまたは Start メソッドに DontDestroyOnLoad への呼び出しを追加する必要があります。https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.htmlを参照してください。

これは、以前にシーン ファイルでプレーヤーの位置を設定した方法にも問題をもたらします。私が使用してきたアプローチの 1 つは、シーンが変更された後にプレーヤーの位置を設定するために使用されるタグ (RespawnPoint など) を使用して、各ステージに空のゲーム オブジェクトを作成することです (これは、ServerChangeScene への呼び出し後にどこかで処理できます)。 )。

于 2017-02-15T16:40:42.997 に答える