前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【UE4】 C++ FunctionLibrary调用蓝图以及常见问题

【UE4】 C++ FunctionLibrary调用蓝图以及常见问题

作者头像
Ning@
发布2021-11-10 14:53:25
8310
发布2021-11-10 14:53:25
举报
文章被收录于专栏:烤包子

BP_Actor.h

代码语言:javascript
复制
#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

代码语言:javascript
复制
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函数"));
  }
}

自定义节点传参时注意要用常量,否则蓝图中无法调用节点

代码语言:javascript
复制
UFUNCTION(BluePrintImplementableEvent)
	void POIRunEvent(const TArray &POIDataOut);

通过GetAllActorClass获取实例时UE4自身BUG会误报红,在FunctionLibrary中的GetWrold需要替换GetGameInstance()

代码语言:javascript
复制
void UMultiThreadFunctionLibrary::SearchPOIActor()
{
	//通过 UGameplayStatics::GetAllActorsOfClass 查找
		/*
		*获取类 AActor::GetClass() 换成获取静态类 AActor::StaticClass()
		*GetAllActorsOfClass会爆红是UE4 BUG 可以忽略
		*在FunctionLibrary中使用GetWorld()换成GWorld->GetGameInstance()
		*/
	UGameplayStatics::GetAllActorsOfClass(GWorld->GetGameInstance(), APOIExecActor::StaticClass(), _TempArryActors);
}

获取实例中的函数时用Cast转换类型即可

代码语言:javascript
复制
//转换APOIExecActor类型后执行其中的POIRunEvent事件
	Cast(_TempArryActors[0])->POIRunEvent(POIDataOut);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档