结构体
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事件