【UE 4】C++FunctionLibrary呼び出し青写真およびよくある質問
BP_Actor.h
Othre.cpp
ノードのパラメータをカスタマイズするときは定数を使用することに注意してください.そうしないと、青写真ではノードを呼び出すことができません.
GetAllActorClassでインスタンスを取得すると、UE 4自身のBUGが誤って赤になります.FunctionLibraryのGetWroldでGetGameInstance()を置き換える必要があります.
インスタンスの関数を取得するにはCast変換タイプを使用します.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyMccActor.generated.h"
UCLASS()
class MYCPPPROJECT_API AMyMccActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AMyMccActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UFUNCTION(BlueprintImplementableEvent, Category = "SplineMesh")
void PrintMessage(const FString &Message);
};
Othre.cpp
void XXX::BeginPlay()
{
TArray _TempArryActors;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), AActor::GetClass(), _TempArryActors);
for (int32 i = 0; i < _TempArryActors.Num(); i++)
{
if (_TempArryActors[i]->GetName() == FString("AMyMccActor"))
{
Cast(_TempArryActors[i])->PrintMessage(TEXT(" Actor& PringMessage "));
}
}
ノードのパラメータをカスタマイズするときは定数を使用することに注意してください.そうしないと、青写真ではノードを呼び出すことができません.
UFUNCTION(BluePrintImplementableEvent)
void POIRunEvent(const TArray &POIDataOut);
GetAllActorClassでインスタンスを取得すると、UE 4自身のBUGが誤って赤になります.FunctionLibraryのGetWroldでGetGameInstance()を置き換える必要があります.
void UMultiThreadFunctionLibrary::SearchPOIActor()
{
// UGameplayStatics::GetAllActorsOfClass
/*
* AActor::GetClass() AActor::StaticClass()
*GetAllActorsOfClass UE4 BUG
* FunctionLibrary GetWorld() GWorld->GetGameInstance()
*/
UGameplayStatics::GetAllActorsOfClass(GWorld->GetGameInstance(), APOIExecActor::StaticClass(), _TempArryActors);
}
インスタンスの関数を取得するにはCast変換タイプを使用します.
// APOIExecActor POIRunEvent
Cast(_TempArryActors[0])->POIRunEvent(POIDataOut);