Nr_Narumium【Unity】UNETを使った通信のテストTweetUNETの使い方に苦戦中。サーバー↔クライアントとホスト↔プレイヤーが同じスクリプトで動くというのがいまいち理解しづらい。解説もいくらか見つけたけど、同じようなFPSの作り方ばかりだったので基本的に公式マニュアルを参考にした。マニュアルは、Unityの使い方を学ぶ手助けとなります。ゲームを作成したり、ゲーム以外のアプリを作成したりして多くの経験を積みまし...とりあえず分かったことのメモ。EmptyでGameObjectを2つ作る。追加したマネージャーオブジェクト。とテスト用スクリプトを追加したコントローラオブジェクト。あと通信の確認用にInputFieldとボタンを配置した。//SyncVarで同期するパラメータを設定。hookで変更時のメソッド指定。//サーバーの値が変更されるとクライアントに配信。//クライアント側で変更すると同じ値にならない。//メソッド名にCmdプレフィックスが必要。//サーバーに対してなんらかのリクエストを行う。//プレイヤーオブジェクトからでないと実行できない。//オブジェクトに対するLocalClientAuthorityがないと実行されない。//メソッド名にRpcプレフィックスが必要。//サーバーから呼び出すとクライアントで実行する。ホスト(サーバー)はクライアントでもあるため全員が使える。呼び出してもホスト以外は実行しない。:"+hasAuthority);//IdentifyのAuthority相当}}//SyncVarで同期するパラメータを設定。hookで変更時のメソッド指定。//サーバーの値が変更されるとクライアントに配信。//クライアント側で変更すると同じ値にならない。//動作確認用}//メソッド名にCmdプレフィックスが必要。//サーバーに対してなんらかのリクエストを行う。//プレイヤーオブジェクトからでないと実行できない。//オブジェクトに対するLocalClientAuthorityがないと実行されない。Method");syncStr="syncedCmd";}//メソッド名にRpcプレフィックスが必要。//サーバーから呼び出すとクライアントで実行する。ホスト(サーバー)はクライアントでもあるため全員が使える。呼び出してもホスト以外は実行しない。Method");syncStr="syncedServer";}}あとはビルドしたものUnityの実行画面で動作確認する。確認したことサーバー→クライアントはSyncVarで共有できる。ClientRpcでもクライアントのメソッド呼び出しができた。サーバーがうまくいってない。この辺の関係はたぶんこんな感じだと理解してるけど自信はない。コマンドを使えばクライアントからサーバーへリクエストを送ってサーバー上で実行するはずだけど、なぜかホストでないと実行されない。コントローラオブジェクトをプレハブ化してシーンから削除。オンにするとローカルプレイヤーとして認識されコマンドが使えるようになった。クライアントからサーバーではなく、ローカルプレイヤーからサーバーの流れになるみたいです。所感プレイヤーの概念がよくわからず苦労した。プレイヤーが通信の核だったので、その部分をきちんと理解できないと辛い。Messagesでも通信可能みたいだけど殊更情報が少なくてよくわからない。第一歩を踏み出せました。コメントをキャンセルメールアドレスが公開されることはありません。