UE4知识点记录

UE4 GamePlay架构   建议看这里,这里比较详细   https://zhuanlan.zhihu.com/p/22833151

UPROPERTY参数

EditAnywhere    表示该属性可从编辑器内的属性窗口编辑。

Category    定义属性的分类。使用方法: Category=CategoryName. (分类=分类名称)

Const       编辑器中不能修改该值

BlueprintReadOnly     在蓝图中只读,不可修该。

BlueprintReadWrite     在蓝图中可读写。

BlueprintCallable           仅能用于Multicast代理。该代理可被蓝图调用。

UPROPERTY对应的还有一个用于修饰函数的宏UFUNCTION,该宏常用于描述如何从蓝图中访问C++的函数。

UFUNCTION参数 

BlueprintCallable     这种类型的函数,只能在C++中实现和重写。可以理解为蓝图“只读”函数。

BlueprintImplementableEvent     只能在蓝图中实现的函数。类似于C++的纯虚函数

BuleprintNativeEvent                  C++可以提供默认实现,蓝图可以重写。

编码规范

类名前缀

UE4的类名必须遵从命名规范,需要在类名前面加上正确的前缀,与之对应的C++文件名则不加前缀。否则会编译报错。

  • 派生自 Actor 的类前缀为 A,如 AController。
  • 派生自 UObject 的类前缀为 U,如 UComponent。
  • 枚举 的前缀为 E,如 EFortificationType。
  • 接口 类的前缀通常为 I,如 IAbilitySystemInterface。
  • 模板 类的前缀为 T,如 TArray。
  • 派生自 SWidget(Slate UI)的类前缀为 S,如 SButton。
  • 其余类的前缀均为 字母 F ,如 FVector。

其他类型命名

bool类型变量需要加上b前缀,如 bCallable。

相关函数简介

事件:

Event Level Reset 关卡重启

Event Actor Begin OverLap   两个Acotor开始碰撞

Event Actor End  OverLap  两个Actor停止碰撞

Event Hit   两个Actor碰撞

Event Any Damage    Actor收到伤害

Event Point Damage   点伤害

Event  Radial Damage  放射伤害

Event Actor Begin Cursor Over  鼠标光标在Actor上悬停

Event Actor End  Cursor Over  鼠标光标在Actor上移开

Event BeginPlay  游戏开始将触发的事件

Event EndPlay    Actor不存在世界场景里面执行此事件

Event Destroyed    Actor被销毁执行此事件

Event Tick    游戏进入每一帧调用此事件

Event  Receive Draw HUD    蓝图绘制到UI

CustomEvent  自定义事件

其中蓝图里面的Array就是c++ 里面的TArray,相当于std::vector,可变长度数组,

那么具有的方法也大致类同

SetArrayElem 设置数组里面对应下标的值

Get   获取数据的对应下标的 值,或者引用

Add  添加一个数据到数组的最后面

Add Unique 添加一个唯一的值,如果数组里面有,就不会添加

Remove Index  根据下标删除数组元素

Remove  (reference) 删除数组对应的元素

MakeArray 创建一个数组

Clear 清除数组所有的元素

对Actor的操作函数

GetActorLocation   返回Actor位置

GetActorTransform  获取Actor Transform信息

SetVisibility 设置可见性

SetLightColor  设置灯的颜色

Add Actor Local Offset  给Actor设置一个偏移

Activate  启用动画

Set World Scale 3D  设置缩放大小

Get World Scale 3D  得到Actor的缩放

 Get ActorRotation  获得Actor的旋转

 AddActorLocalOffset 给Actor添加一个局部位置偏移

AddActorLocalRotation  给Actor添加一个局部旋转

AddActorLocaltransform  给Actor添加一个Transform偏移

AddActorWorldOffset  给Actor添加一个世界坐标偏移

AddActorWorldRotation 给Actor添加一个世界坐标下的旋转

AddActorWorldTransform  给Actor添加一个世界坐标下的Transoform

SetActorHiddenInGame   设置Actor隐藏

SetVisibility    设置Actor隐藏显示  ,一般用这个

其中PlayerControler的方法有,(通过GetPlayerControler获取)

Add Yaw Input 

Add Pitch Input

Add Roll Input

整个游戏的函数

Get GameTime Sine Creation  获取Actor的运行的时间

Get GameTime in Seconds   游戏的时间

Get WorldDelta Seconds   获取游戏帧差时间

 流程控制

Branch  就是if   else

DoN   前面的N次通过,后面不通过 

DoOnce  只通过一次

FlipFlop   第一次通过A,第二次通过B,第三次又是A   这样来回切换

ForLoop   就是for循环

ForLoopWithBreak   就是for循环 带break

Gate  可以设置通过和不通过,和if差不多

MultiGate  可以通过多个

Sequence  顺序执行N个

WhileLoop  就是while循环

 select  从多个里面选一个

Delay   等待延迟执行

其他操作

SetMembers In Struct 节点修改可用成员

PrintString 打印消息

MakeTransform  可以合成位置,旋转

Add Reroute Node  增加一个控制点,改变线路

GetPlayerControler   获得控制者

GetPlayerPawn   获得pawn

Enable Input   使得Actor获得输入的能力

MakeArray  组成数组

Random Integer In Range  随机一个整形值

SpawnActor  创建一个Actor

Create Widget 创建一个HUD 节点

Add to Viewport  将HUD添加到视口

 PlaySound At Location  播放声音

GetAllActorofClass  获得场景里面所有的是这个class的Actor

GetAllActorofClass WithTag  获得场景里面所有的有tag 的class Actor

 Cast To  转换成那个Class  相当于c++ 的static_cast

 ShowMouseCursor   显示鼠标

Is Input Key Down  按键是否按下 状态查询

GetMousePosition On ViewPort  获取屏幕空间鼠标位置

Left Mouse Down  鼠标左键按下

Get DisplayName  获取Actor的名字字符串

Get ViewPort Scale  获取ViewPort缩放

SetMaterial   设置材质

Get All ActorWith Tag  获取所有的带有tag的Actors

打断点调试  F9   或右键  Add BreakPoint

变量上右键Watch this Value 查看调试的运行值

注释是 右键 选择  Node Comment 填写注释内容,  或者按键C

 add math Expression  添加数学小函数  如:a+b+c*d

时间轴的函数

GetPlayRate  获得播放速率

Get Playback Position 获取播放位置

Get TimeLine Length 获取时间轴长度

Is Looping 是否循环

Is Playing  是否在播放

is Reversing 是否在反向播放

Play  播放

Play from Start  从开始处播放

Reverse  反向播放

Reverse from End 从结尾处开始反向播放

Set Looping 设置循环

Set New Time 设置新时间

Set PlayRate 设置播放速率

Set Playback Position  设置播放位置

Set TimeLine Length 设置时间轴长度

Set TimeLine Length Mode 设置时间轴长度模式

Stop 停止

其中的蓝图里面的Event 就是c++的类函数

Event Dispatcher就是c++ 的回调函数数组,这样就可以bind  unbind,call,clear,相当于QT的Slot

原文地址:https://www.cnblogs.com/dragon2012/p/14434438.html