Unreal 基础
UPROPERTY()
和UFUNCTION()
UPROPERTY()
BlueprintCallable
:可以在蓝图中被调用BlueprintReadOnly
:可以被蓝图读取,但是不可被修改BlueprintReadWrite
:可以被蓝图读取和修改Category
:为属性添加分类标签EditAnywhere
:该属性可以在属性窗口中修改EditDefaultOnly
:可以在属性窗口中修改,但是只能在基类的属性窗口修改VisibleAnywhere
:可以在属性窗口看见,但是不可修改VisibleDefaultsOnly
:该属性只可在基类的属性窗口中看见而且不可修改Meta
:可以用来设置一些元数据,如文档、关键字等,meta=(AllowPrivateAccess="true")
允许私有属性在编辑器中进行编辑Transient
:该属性不会被序列化保存,通常用于临时数据或不希望被保存的数据Replicated
:属性在网络中进行复制
UFUNCTION
UFUNCTION
是 Unreal Engine 中神功函数的宏,它用于标记某个函数是一个 Unreal Engine 托管的函数,并且可以在编辑器中惊醒访问和操作
UFUNCTION
宏提供了一系列参数,用于定义函数的属性和行为,例如是否是阑入可调用的,是否可在网络中复制等
BlueprintCallable
:可以在蓝图或者关卡蓝图中调用BlueprintPure
:生命该函数为纯函数,即不会修改对象的状态BlueprintImplementableEvent
:这个函数在头文件声明但是应该在类蓝图或关卡蓝图中重写,应该和BlueprintCallable
一起使用,这样蓝图就可以调用它。Category
:指定在编辑器中现实的该函数所属的分类Meta
:可以用来设置一些元数据,如文档、关键字等Server**
、Client
、Reliable
:用于网络功能,指定该函数在服务端、客户端执行,以及指定该函数是否可靠传输BlueprintNativeEvent
:这个函数可以在蓝图类中重写,同时拥有 C++ 实现,函数名为FuncName_Implementtation
#include
引入头文件与不完全声明
建议在源文件中引入其他头文件,而不是在头文件中引入其他头文件
- 减少编译时间
- 比秒循环依赖
- 增强可维护性
打印 LOG
UE_LOG
UE_Log
宏是 Unreal Engine 重用日志记录的标准方式。它可以输出日志信息到控制台和日志文件,支持多种日志级别(如Log
,Warning
,Error
)UE_LOG(LogCategory, LogVerbosity, Format, ...)
GEngine->AddOnScreenDebugMessage
GEngine->AddOnScreenDebugMessage
可以在游戏屏幕上现实调试信息,通常用于快速查看和调试GEngine->AddOnScreenDebugMessage(Key TimeToDisplay, Color, Message)
控制输入
- Input Mapping Context
- 定义了那些输入键触发那些输入动作的规则集合
- Input Action
- 代表了玩家可以执行的某种动作
EnhancedInputComponent
- 更灵活
- 输入绑定优化
- 输入处理流程的改进
Anim Instnce 与动画
AActor
、APawn
和ACharactor
UObject
:基础类UObject
是所有非 Actor 类的基类,几乎所有的 Unreal Engine 对象都继承自UObject
AActor
:继承自UObject
,并且是所有场景中对象(角色、道具、灯光等)的基类APawn
:可以被玩家或 AI 控制的对象,丹斯不需要复杂的运动和动画系统- 可控制性
- 控制器:
APawn
通常与AController
或APlayerController
关联,以实现移动和交互 - 不包含骨骼网格和动画
ACharacter
是一种特殊类型的APawn
,它包含用于行走、跳跃、游泳等运动功能。它是带有骨骼动画和动画系统的高级角色类- 骨骼网格和动画:
ACharacter
包含 ``USkeletallMeshComponent 和动画蓝图,用于角色的外观和动画 - 角色运动:包含
UCharacterMovementComponent
,支持复杂的角色运动 - 碰撞和胶囊体:默认包含一个胶囊碰撞体,用于角色的碰撞检测
- 骨骼网格和动画:
游戏是怎样运行的
AGameModeBase
- 这是游戏模式的基类,它定义了游戏的规则、逻辑和行为
- 可以通过创建自定义的游戏模式类来扩展它,并重写其中的方法来实现特定的游戏的逻辑
AGameMode
AGameMode
类是AGameModeBase
的一个子类,它提供了更多的功能和控制权,例如玩家控制、团队管理、积分系统等- 可以使用
AGameMode
类来实现更复杂的游戏逻辑和规则
- Game Session
- Game State
- Player State
- Default Pawn Class
- APlayerController
- AHUD
Unreal 基础
https://silhouettesforyou.github.io/2024/06/10/f3b491abe2f8/