以下是一些 Unreal Engine 5(UE5)中 C++ 的基础知识点
一、类和对象
- 定义类:
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
public:
AMyActor();
};
使用UCLASS
宏来标记一个类可以被 Unreal 引擎反射系统识别。
- 创建对象:
AMyActor* MyObject = GetWorld()->SpawnActor<AMyActor>();
二、属性声明
- 声明变量:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyCategory")
int MyInteger;
UPROPERTY
宏用于声明属性,可以设置属性的可见性、在蓝图中的读写权限等。
- 初始化属性:
AMyActor::AMyActor()
{
MyInteger = 10;
}
三、函数定义
- 成员函数:
UFUNCTION()
void MyFunction();
UFUNCTION
宏标记函数可以被引擎反射系统识别。
- 函数实现:
void AMyActor::MyFunction()
{
// 函数体
}
四、构造函数和析构函数
- 构造函数:
AMyActor::AMyActor()
{
// 初始化代码
}
- 析构函数:
AMyActor::~AMyActor()
{
// 清理代码
}
五、访问修饰符
public
:可以在任何地方访问。protected
:可以在类内部和子类中访问。private
:只能在类内部访问。
六、模板类
可以使用模板类来实现通用的功能。例如:
template<typename T>
class MyTemplateClass
{
public:
T MyValue;
};
七、智能指针
UE5 中广泛使用智能指针来管理内存。例如:
TSharedPtr<MyClass> MySmartPointer = MakeShareable(new MyClass());
八、宏和预处理器指令
#define
:定义常量或宏。#include
:包含头文件。#ifdef
、#endif
:条件编译。
九、枚举类型
UENUM()
enum class EMyEnum : uint8
{
Value1 UMETA(DisplayName = "Value 1"),
Value2 UMETA(DisplayName = "Value 2")
};
可以使用枚举类型来定义一组相关的常量值。
十、命名空间
可以使用命名空间来组织代码。例如:
namespace MyNamespace
{
class MyClass
{
public:
//...
};
}
这些是 UE5 C++ 开发的一些基础知识点,随着开发的深入,还会涉及到更多复杂的概念和技术。