カスタムイベントを作りたいと思う。
カスタムイベントとはいってもこういうのではない。
こういう感じの自作BeginPlayというべきか
オリジナルイベントを作りたい。
1.自作LevelScriptActor.hを作成する
LevelScriptActorを継承して以下のようなヘッダーファイルを作成し実行する
(ここでは自作 MyBeginPlay を作成しています)
X00LevelScriptActor.h
#pragma once
#include "CoreMinimal.h"
#include "Engine/LevelScriptActor.h"#include "X00LevelScriptActor.generated.h"
UCLASS(config=Game)
class AX00LevelScriptActor : public ALevelScriptActor
{
GENERATED_BODY()public:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, meta=(DisplayName = "MyBeginPlay"))
void MyBeginPlay();
};
2.レベルブループリントのクラス設定を自作LevelScriptActorに変更する
3.これで自作のBeginPlayノードを作成することができた。
4.呼び出し方法は GetAllActorsOfClassで検索してきて呼び出すのが妥当。
5.無事呼び出された。
入力パラメータの追加削除が容易なのと
なによりカスタムイベントよりなんかカッコイイ感じがするのがメリット。
2の手順は毎回いるのかというと
プロジェクト設定>基本設定>LevelScriptActorClassで
デフォルトを変更すれば次回以降手順をスキップできる。
(1回エディタを再起動してか有効)