UE4知识点记录 |
您所在的位置:网站首页 › ue4知识点 › 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 自定义事件
ACTOR自带的事件 OnComponent Hit OnComponent begin Overlap OnComponent End Overlap OnComponent Wake OnComponent Sleep OnBegin Cursor Over OnEnd Cursor Over On Clicked On Released On Input Touch Begin On Input Touch End On Input Touch Enter On Input Touch Leave Physics Volume Changed On Component Activated On Component Deactivated
材质操作 GetMaterial 获取材质 SetMaterial 设置材质 GetScalarParameterValue 获取材质的值 SetScalarParameterValue 设置材质的值 GetVectorParameterValue 获取材质的值 SetVectorParameterValue 设置材质的值
其中蓝图里面的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隐藏显示 ,一般用这个 GetOwningPawn 直接获取控制的pawn DrawText 在hud里面直接绘制文字
其中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 等待延迟执行 MapRangeClamped 数值映射 MapRangeUnClamped 数值映射
其他操作 Get Actor of Class 获取场景里面的这个类型的Actor,第一个actor Get All Actors of Class 获取场景里面所有的Actors,所有的这种类型的 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 SetInputUIOnly 设置输入方式只有UI SetInputModeGameOnly 设置输入方式只有游戏 SetGamePause 暂停游戏 QuitGame 退出游戏 SetTimerByFunctionName 设置定时器 ClearTimerByFunctionName 清除定时器 Actor Has Tag 检查Actor是否有tag标签 IsKeyDown 检查某个键是否按下 Set View Target With Blend 平滑切换两个Actor相机 Possess 切换两个pawn 的控制权
打断点调试 F9 或右键 Add BreakPoint 变量上右键Watch this Value 查看调试的运行值 注释是 右键 选择 Node Comment 填写注释内容, 或者按键C add math Expression 添加数学小函数 如:a+b+c*d
时间轴的函数 Get GameTimeInSeconds 获取游戏时间 Get World Delta Seconds 获取游戏delta时间 Ease 缓动函数 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
Event Tick的 Delta Seconds 和Get World Delta Seconds 值一样 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |