PUN Basic Tutorial を終えたので PUN2 完全に理解した
以前UdemyでPUNを用いたゲーム作成の学習を行っていました. ただせっかく日本語のチュートリアルが公式にあるので, まずそれを一旦一通りトレースして学ぶことにしました.
基本的にトレースしただけです.
ロビー
Callbackインタフェース
- IConnectionCallbacks: 接続関連のコールバック
- IInRoomCallbacks: ルーム内で発生するコールバック
- ILobbyCallbacks: ロビー関連のコールバック
- IMatchmakingCallbacks: マッチメイキング関連のコールバック
- IOnEventCallback: 受信する全てのイベント用の単一コールバック
- IWebRpcCallback: 受信中のWebRPCの操作応答に対する単一コールバック
- IPunInstantiateMagicCallback: インスタンス化されたPUNプレハブの単一コールバック
- IPunObservable: PhotonViewシリアライゼーションのコールバック
- IPunOwnershipCallbacks: PUN所有権移行のコールバック
なるほどね.←わかってない
ロビーUI
Connect()メソッドにcontrolPanel.SetActive(false);
はおかしくない?いらないと思います.
ゲームシーン
Room for 1で作成した環境をEnvironmentとしてオブジェクトをまとめて, 2,3,4ではEnvironmentのScaleを1.5倍,2倍,2.5倍にすればいいかなと思います.
ゲームマネージャーとレベル
特になし
プレイヤーの構築
プレハブがネットワーク上でインスタンス化されるためには、[Resource]フォルダの中になければいけない. PhotonViewコンポーネントが大事だと思った.
プレイヤーのカメラワーク
線形代数と微積分の成績A,A++, 力学Iの期末試験で満点取ったことあるのにスクリプトの内容なんもわからん. こういうスクリプトを見るたびに学生の頃, こういうの意識した上で勉強したらモチベが違ったろうなあと後悔する.
Player Networking
同期系について書いてある.大事な章.後で再度読み返す.
プレイヤーのインスタンス化
プレハブがネットワーク上でインスタンス化されるためには、[Resource]フォルダの中になければいけない. 大事なことなので2回書いた
プレイヤーUIプレハブ
スクリプトミスがある.
誤
CharacterController _characterController = _target.GetComponent<CharacterController> (); // Get data from the Player that won't change during the lifetime of this Component if (characterController != null) { characterControllerHeight = characterController.height; }
正 変数にアンダーバー付け忘れあるある.
CharacterController _characterController = _target.GetComponent<CharacterController> (); // Get data from the Player that won't change during the lifetime of this Component if (_characterController != null) { characterControllerHeight = _characterController.height; }