C++ UFUNCTION()
时间: 2023-10-21 20:05:31 浏览: 22
UFUNCTION()是在Unreal Engine中使用的宏,用于声明一个可在蓝图中调用的函数。它是用来扩展C++类的功能,使其可以与蓝图系统进行交互。通过在函数声明前添加UFUNCTION()宏,可以指定函数的属性和行为,例如指定函数的可见性、调用方式等。在编译时,UFUNCTION()会生成相应的蓝图节点,以便在蓝图图表中使用该函数。
相关问题
ue5 蓝图调用c++
在UE5中,可以通过蓝图调用C++代码。有两种常见的方法可以实现这一功能:
方法一:使用BlueprintNativeEvent
在C++代码中,使用BlueprintNativeEvent宏定义一个事件或方法。然后,在蓝图中实现该事件或方法。如果在蓝图中实现了该事件或方法,那么蓝图中的逻辑将覆盖C++中的逻辑。
方法二:创建C++类并在蓝图中调用
首先,创建一个C++类,例如MyTest。然后,在蓝图中创建一个继承自MyTest的蓝图类。在其他类中,可以通过MyTest类的实例来调用蓝图中对应的方法。
以下是两种方法的示例代码:
方法一:
```cpp
UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintNativeEvent, Category = "MyEvent")
void MyEvent();
};
void AMyActor::MyEvent_Implementation()
{
// 在蓝图中实现的逻辑
}
```
方法二:
```cpp
UCLASS()
class MYPROJECT_API UMyTest : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = "MyFunction")
void MyFunction();
};
```
在蓝图中,创建一个继承自MyTest的蓝图类,并实现MyFunction方法。然后,在其他类中,可以通过MyTest类的实例来调用蓝图中的MyFunction方法。
UE4 C++虚函数
在UE4中,可以使用BlueprintNativeEvent来实现C++类之间、C++和蓝图之间的虚函数。具体实现方式如下:
1.在C++类中声明虚函数,并使用BlueprintNativeEvent关键字标记:
```cpp
UFUNCTION(BlueprintNativeEvent)
void MyVirtualFunction();
virtual void MyVirtualFunction_Implementation();
```
2.在C++类中实现虚函数:
```cpp
void MyClass::MyVirtualFunction_Implementation()
{
// 实现代码
}
```
3.在C++子类中重写虚函数:
```cpp
void MySubClass::MyVirtualFunction_Implementation()
{
// 重写实现代码
}
```
4.在蓝图中重写虚函数:
在蓝图中,可以直接使用虚函数,并在Override选项中选择要重写的虚函数。