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

结构体


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事件

 


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值