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**ClientReliable:用于网络功能,指定该函数在服务端、客户端执行,以及指定该函数是否可靠传输
  • BlueprintNativeEvent:这个函数可以在蓝图类中重写,同时拥有 C++ 实现,函数名为FuncName_Implementtation

#include引入头文件与不完全声明

建议在源文件中引入其他头文件,而不是在头文件中引入其他头文件

  • 减少编译时间
  • 比秒循环依赖
  • 增强可维护性

打印 LOG

  • UE_LOG

    • UE_Log宏是 Unreal Engine 重用日志记录的标准方式。它可以输出日志信息到控制台和日志文件,支持多种日志级别(如LogWarningError
    • UE_LOG(LogCategory, LogVerbosity, Format, ...)
  • GEngine->AddOnScreenDebugMessage

    • GEngine->AddOnScreenDebugMessage可以在游戏屏幕上现实调试信息,通常用于快速查看和调试
    • GEngine->AddOnScreenDebugMessage(Key TimeToDisplay, Color, Message)

控制输入

  • Input Mapping Context
    • 定义了那些输入键触发那些输入动作的规则集合
  • Input Action
    • 代表了玩家可以执行的某种动作
  • EnhancedInputComponent
    • 更灵活
    • 输入绑定优化
    • 输入处理流程的改进

Anim Instnce 与动画

AActorAPawnACharactor

  • UObject:基础类 UObject 是所有非 Actor 类的基类,几乎所有的 Unreal Engine 对象都继承自UObject
  • AActor:继承自UObject,并且是所有场景中对象(角色、道具、灯光等)的基类
  • APawn:可以被玩家或 AI 控制的对象,丹斯不需要复杂的运动和动画系统
    • 可控制性
    • 控制器:APawn通常与 AControllerAPlayerController关联,以实现移动和交互
    • 不包含骨骼网格和动画
  • 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/
Author
Xiaoming
Posted on
June 10, 2024
Licensed under