【3Dゲームエンジン】Unity質問スレッド5at GAMEDEV【3Dゲームエンジン】Unity質問スレッド5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト91:88-89 13/07/08 20:27:37.65 h9ZVXHtq >>90 それで合ってます。勿体ぶったような書き方になってしまってスマソ // 以下チラ裏 ホストとSceneを同期する場合は、こんな感じで書けばおk C#だとyield使いにくいから、こちらの方が良いかも void OnServerInitialized() { networkView.RPC("RpcChangeScene", RPCMode.AllBuffered, GameRule.sceneId); //GameRuleクラスは自作 } [RPC] void RpcChangeScene(int sceneId) { if (Application.loadedLevel == sceneId) { return; } Network.SetLevelPrefix(sceneId); Network.isMessageQueueRunning = false; Application.LoadLevel(sceneId); } void OnLevelWasLoaded() { Network.isMessageQueueRunning = true; } 92:名前は開発中のものです。 13/07/08 21:16:06.32 Q2gIaxei >>91 82です。 先ほど私が書き込んだ方法で問題のほうは解決しました。 ありがとうございます。これで肝心のゲーム内容に移れそうです。 >>void OnServerInitialized() { 以下 RPCを用いてサーバー側がScene変更を制御する形なのですね。 そちらのほうが集中管理できそうなのでそちらも試してみます。 自分の場合、以下のような形で実現していました。 public void OnConnectedToServer() { Network.isMessageQueueRunning=false; LoadNextStage(); } private void LoadNextStage() { Application.LoadLevel("WaitNextStage"); } 最初、Network.Connect()直後にQueueを停止したのですが接続が完了しなかったため 上記のようなOnConnectedToServerで停止するアプローチに変更しました。 RPC周り、LevelPrefix等まだまだ見るところがたくさんありそうですね・・。 度々本当にありがとうございました。非常に参考になります。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch