21xrx.com
2024-11-25 05:13:18 Monday
登录
文章检索 我的文章 写文章
如何在C++中调用蓝图?
2023-06-22 19:39:23 深夜i     --     --
C++ 蓝图 调用

蓝图是UE4引擎中的可视化脚本系统,可帮助开发人员快速创建复杂的游戏逻辑和交互元素。虽然C++是一种常用的编程语言,但蓝图是UE4游戏制作过程中的重要工具之一。在这篇文章中,我们将探讨如何在C++中调用蓝图。

使用蓝图时,我们可以将其视为一个C++函数库,公司使用向前声明来添加蓝图以及UMG中创建的部件声明作为成员变量。这样,我们便可以在C++中直接调用蓝图。下面是一个简单的例子:


UCLASS()

class MYPROJECT_API AMyActor : public AActor

{

  GENERATED_BODY()

public:

  // Declare a UPROPERTY to hold the blueprint reference

  UPROPERTY(BlueprintReadWrite, Category = "Combat")

  class UMyBlueprint* BlueprintRef;

  // Declare a UFUNCTION to call the blueprint function

  UFUNCTION(BlueprintCallable, Category = "Combat")

  void StartCombat();

};

在这个例子中,我们声明了一个名为“BlueprintRef”的UMG部件,它是一个可读/可写的蓝图引用。我们还声明了一个名为“StartCombat”的C++函数,它用于调用蓝图中的函数。我们可以像调用任何C++函数一样在代码中调用它。


void AMyActor::BeginPlay()

{

  Super::BeginPlay();

  // Call the blueprint function

  BlueprintRef->MyBlueprintFunction();

}

在这个例子中,我们在BeginPlay函数中调用了蓝图函数“MyBlueprintFunction”。

另一种方法是使用C++蓝图封装程序(BPC)。BPC允许我们创建蓝图,但它们是由C++代码驱动的。这样,我们可以使用C++代码创建自定义行为,同时仍然可以在蓝图中使用可视化编辑器。例如:


UCLASS()

class MYPROJECT_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary

{

  GENERATED_BODY()

public:

  // Declare a UFUNCTION to implement a custom behavior

  UFUNCTION(BlueprintCallable, Category = "MyBlueprintFunctionLibrary")

  static void CustomBehavior();

};

在这个例子中,我们声明了一个名为“CustomBehavior”的C++函数,并将它打上了蓝图可调用的标签。然后,我们可以在蓝图中以可视化方式实现此行为,而无需任何额外的C++代码。这可以通过在蓝图编辑器中创建一个新的BPC来完成。

这些方法只是C++调用蓝图的几种方法。UE4有多种方式可以在C++中使用蓝图的功能。这些选项包括通过UMG部件调用蓝图,使用C++蓝图封装程序创建自定义行为,或者在C++中通过UGameplayStatics调用蓝图函数。选择哪种方法最好,取决于您的项目需要和开发团队的具体情况。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复