マルチプレイのメモ
公式のラーニングやりましょう
Blueprint Multiplayer | Unreal Engine
Unreal Engine | マルチプレイヤー シュートアウト
以下箇条
全体編
・クライアント独自の物(所有権が与えられた物)として、PlayerControllerを渡される
・PlayerControllerには自分のPlayerStateの参照が入っている
・パーシスタンとレベルのロード完了、GameModeでクライアントの参加申請(Login)が通ってプレイヤーコントローラーが作成される、ここでPlayerControllerのBeginは走ってしまうけど、このまだログインシークエンスの途中なので、サーバーとやり取りするような処理はちょっとよくない
→代わりにGameModeでOnPostLogin関数をオーバーライドすることで、PlayerControllerが確実に生成されている段階が取れる、ここからPlayerController内のイベントを発火できるので、それをBeginやInit的に使用すると良い
レプリケート編
・文字をレプリケーションするとき、FNameは圧縮されてないので控える
・replicatedUsing=関数名 指定子で、その変数に変数があった際に指定関数をサーバークライアントそれぞれで実行
ReplicatedUsing | Unreal Engine
BPでこれやるときはRepNotifyを指定して、"OnRep_変数名"関数を作る
Unreal Engine | ブループリントのマルチプレイヤー機能
HUDを何処で作成するか
プレイヤーコントローラーがユニークなので、そこで作成すればよさそう
このときリッスンサーバーではプレイヤーコントローラーが複数個あるため、そのままではHUDが多重に描写されてしまう
SwitchHasAuthorityマクロに続いて、IsLocalPlayerControllerのboolを見れば、操作しているPlayerControllerかどうかわかるので、その先で処理を行うようにする