zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    三十二、恢复单库单表
    三十一、XBK备份
    三十、分库分表备份脚本
    二十九、mysqldump恢复案例
    二十八、mysqldump备份
    二十七、备份介绍
    二十六:慢日志分析
    二十五、二进制日志之GTID模式
    Trie树
    AC自动机
  • 原文地址:https://www.cnblogs.com/dragon2012/p/14434438.html
Copyright © 2011-2022 走看看