当前位置:   article > 正文

UE(虚幻)4 蓝图可视化编程 04 结构体_ue setmembersin

ue setmembersin

结构体


Structure 新建, 打开 Content Browser  新建一个文件夹 有点单机或者Add New ,Blueprints ----> Structure, 重命名 点击修改 添加数据  最低一条数据。
保存后点击打开蓝图, 新建Variables , 找到新建的variables 找到Details窗口  修改 VariableType  找到structure  找到你新建Structure 重命名的 structure, 找到后可以修改名字  get到 Event Graph  。


打印结构体中的数据; get到你的数据 然后 画蓝图 到Break MyStruct  打印数据;

修改结构体中的数据  get到数据 然后画蓝图 选择,Utilities --->Struct SetmembersinMyStruct  找到 Details面板 让 Pin Options ,Default Category 全部点对勾,点对勾的就可以在 EcentGraph里显示, 可以修改改结构体

同样的也可以 通过 Set  修改数据   把创建的结构体 set到EventGraph 里  点击PownInfo 左边开始画蓝图 ,选择Make....(你创建的结构体 名字)  也同样可以修改数据



结构体数组

新建结构体数组: 找到上面的结构体  找到Details窗口  修改 VariableType 后面的条状物 直接修改成九宫格   可以修改Structure 保存,修改完要编辑 才会在蓝图中显示正常
访问机构提数组中的元素,get到结构体   画蓝图到Utilities  ---->array  ------>get  就是get 下标为几的元素。 然后再break ... 跟上一步一样。。。
结构体数组的遍历; get到结构体   画蓝图到Utilities  ---->array  ------>FoorLoop  选择 ArrayElement ---->break  打印要打印的内容  如果俺2键 遍历 的话 就是如下图



添加结构体数组:get到结构体   画蓝图到Utilities  ---->array  ------>Add   选择左下角的new item  添加一条结构体  然后再执行上面的操作发现 多了一个你添加的结构体
添加2 get到结构体   画蓝图到Utilities  ---->array  ------>Add Unique  如果添加的相同则添加失败 
替换结构体 get到结构体   画蓝图到Utilities  ---->array  ------>Set Array Elem   新建一条结构体 但不是结构体数组    连接item  连接成功选择 要替换的下标索引
Append Array 组合结构体数组  新建两个结构体数组


物体的空间变换

打印模型在世界坐标中的位置: 先获取物体的引用 (选择物体模型) 然后打开蓝图 在空白处点右键 ----> creat a Reference to.. 画蓝图到Utilities  ---->Tranform--> GetActorLocation  或者GetActorRotation(旋转) 或者 Get AcoorScale3D  (在OrienTation 中能找到) 
改变模型世界坐标中的位置: SetActorLocation   修改  sweep (扫描)  扫描能不能移动   Sweep Hit Result  画蓝图到 BreakHitResult 来拆开结构体 ,BlockingHit : 是否被阻挡了 ,  Time 是float变量 从0到1 ,返回值为1 就说明成功移动目标点,如果被 阻挡 就范围阻挡位置的 百分比,   可以通过ReturnValue 来输出返回结果

空间物体的变换2
 SetActorRelateTranform 和SetActorTranform 位置在中心的话 设置出的内容是一模一样的

AddActorLocalOffset 和AddActorWorldOffset 区别, 绘制静态物体 Utilities--》tranformation--》add.. 和add..    Locad 是本地 World是世界。位置的设置
AddActorLocalRotation 和AddActorWorldRotation 区别,  跟上面一样
add...Tranform也是一样。

碰撞事件

打开工程 找到Modes窗口 ---Basic 下的 BoxTrigger。 拖在场景中 ,选中 Box Trigger, 打开关卡蓝图 右键单击 Add Event  for    Trigger   box -----Collision ----Add On Actor Begin Overlap  。 然后 Other Actor  是指谁和他发生碰撞  Bengin是指 刚开始 进入碰撞体触发该事件,如果是EndOverlap 是指 退出的一瞬间触发该事件,,,, Event Tick  时钟事件,每一帧都会触发。 Delta Seconds使用的时候 * 一个向量  每帧都会执行。
Timeline 和   Lerp
鼠标点击右键 最下面有Add Timeline .连接Play 是播放   ,PlayfromStart 不管播放到哪再次播放重头开始播放,Stop 暂停,Reverse 进行反向播放,Reverse from end 反向播放从末尾开始 ,Set new Time 正播放是时候可以设置重新播放的位置,输出的话 就是 Update始终驱动事件,Finished 播放完成之后会执行,Direction     连接右键单击 Utilities--Enum--Equal(Enum) 是一个==于操作。 一个是正向的一个是反向的       重新命名后双击 打开一个新的窗口开始对动画进行编辑  F 是浮点类型的轨道,每一个点的值都是浮点型  V 向量轨道  ! 是事件 在中间执行  C 是Color  。。Length 是时间线的长度 ,会不会自动播放,会不会循环播放。。 Lerp 是差值的方法, 差值就是实现从A到B的一个过渡。
EventOnActorHit   要先把BoxTrigger Collision 中的   Simulattion Generates Hit Event 设置为 True 和 collisionPresets 改为BlickAll
  其中 Generate Overlap Event选项默认为True 是设置是否打开 Overlap事件

 


本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/260969
推荐阅读
相关标签
  

闽ICP备14008679号