0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[UE4] ログイン時に値を渡す

Last updated at Posted at 2019-08-31

2019-08-31_083141.jpg

UE4は同じプレイヤーを人数分出すだけならとても簡単なのですが、ログイン時に値を渡してプレイヤーの衣装を替えたりといった場合は結構面倒な手順が必要です。
UE公式サンプルやよく見かける記事では
GameMode-OnPostLogin
を起点として
GameModeとPlayerController
で処理していますが,この記事では
Character-BeginPlayからほぼCharacter内で処理を行っています。
PlayerControllerでもなくCharacter、てのはちょっと気持ち悪いのですが、
一か所にまとめて記述でき、CharacterをRespawnさせる必要がないのでこうしています。

今回はログイン時にテキストボックスに入れた文字を各プレイヤーの頭上に表示してみます

流れとしては

*ログイン前
 テキストボックスにいれた名前をGameInstanceに名前を入れる
2019-08-31_083240.jpg

*ログイン後
 テキストボックスにいれた名前が各自の頭上に表示される
2019-08-31_083141.jpg

となります。

[手順]
サードパーソンの新規プロジェクトを用意する
2019-08-31_084536.jpg

ThirdPersonCharacterにTextRenderを追加しておく(ここに値を表示します)
2019-08-31_084731.jpg

文字列を保存する変数を追加したGameInstanceを用意する
テキストボックスに入れた文字をログイン後に引き継ぐための変数です
2019-08-31_085556.jpg

構造体を用意する
プレイヤー名と受け渡すデータを配列に入れるために構造体を用意します。
GameModeにこの構造体の配列を用意し、プレイヤーが追加されるたびに
構造体も追加します
2019-08-31_085032.jpg

ThirdPersonGameMode に、
プレイヤー名と受け渡すデータを追加する関数
および自分の情報(頭上に表示する名前)を取得する関数を追加
2019-08-31_090606.jpg
2019-08-31_091016.jpg

ThirdPersonCharacter に、
受け渡された値を頭上に反映する一連の流れを追加します。
2019-08-31_092049.jpg

最後にプロジェクト設定で使用するブループリントを定義します(自分は良く忘れます)。
2019-08-31_094242.jpg
2019-08-31_094304.jpg

以上です。

ブループリントはコピペができないので大変ですね。レッツ写経!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?