【UnrealEngine】アクタがプレイヤーを参照して関数を実行する
今回はゲーム内に配置したアクタが、ゲーム実行時にプレイヤーキャラクターを参照して、プレイヤーキャラクターが持つ関数を実行する処理をC++で書いていきたいと思います。
まずはアクタを作成し(名称:NotificationActor)、プレイヤーキャラクターと一緒にコードをかけるように開きましょう。

プレイヤーキャラクターのヘッダーファイルに関数を作成している場所があるので今回はそこに新しく関数を1つ作成します。
◆コード
UFUNCTION(BlueprintCallable)
void ReceiveMassage();
アクタから関数を読み取ることはできるReceiveMassageという関数を定義してます。

ソースファイルに移動して一番したに関数を読まれたときの処理を書いていきます。
このコードを記述してます!
C++ Example
void AStudyProjectCharacter::ReceiveMessage()
{
GEngine->AddOnScreenDebugMessage(
-1,
5.f,
FColor::Red,
TEXT("HelloWarld")
);
}

これでプレイヤーキャラクター側でのコード記述はおしまいです。あとはアクタがキャラクターを参照して関数を呼び出すだけ。
アクタ側のコードを開くことができたらまずヘッダーファイルにincludeを追加していきましょう。最後に書くとエラーになるので上から2番目から書き始めます。
#include “Kismet/GameplayStatics.h
#include “StudyProjectCharacter.h

そして再度にソースファイルのBiginPlayの中に関数を呼び出すコードを書いて終わになります。
このコードを記述してます!
C++ Example
AStudyProjectCharacter* Player =
Cast<AStudyProjectCharacter>(
UGameplayStatics::GetPlyaerCharacter(this, 0)
);
if(Player)
{
Player->ReceiveMessage();
}

コンパイルしてアクタをワールドにドラッグ&ドロップで配置した後にゲームをプレイしてみると、左上に無事「HelloWord」が表示されました。これでアクタがプレイヤーの関数を呼び出す処理を書くことができましたね。


それではまたどこかでお会いしましょう
◆YouTubeチャンネルもやってます
