ue4小结和文档同步篇

文章详细阐述了UE5引擎中蓝图系统的使用,包括碰撞盒触发事件、开启键盘输入、流程控制、时间轴数据处理以及组件交互。重点讨论了Actor之间的通信,如类型转换、变量修改以影响逻辑流程,同时介绍了蓝图类的继承和子类化。此外,还提到了地图模式的设置和物理碰撞的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

视图:碰撞盒子 触发> (判断) 执行> 事件/动作 译:当什么时候做什么事
当什么时候并且怎样的话做什么事

一下是蓝图定义内容,蓝图类命名不能是中文里面的变量跨类会检索不到。

碰撞盒子需要指定K:类型转换为 设置成小白人防止其他act碰撞触发。

在这里插入图片描述

开启键盘输入 需要添加 K:启用输入 并赋值v =K:获取玩家控制器才能有效。ue5中似乎不需要获取输入了。

在这里插入图片描述

K:流程 可以 获得开关门 切换开关 分支(if) 等流程

在这里插入图片描述

K:时间轴 可以获取线性数据输出 可以输出0到1配合k:插值 映射真实的数据区间变化
在这里插入图片描述

获取某个组件(蓝图内的act称呼为组件)相对旋转值(或者缩放,位置)使用k:类:场景组件:获取 。 能拿到取值器,需要绑定要取值的《组件变量》。

注释:场景是指本蓝图文件,你蓝图的根组件就叫默认场景跟组件,所以场景组件就是指本蓝图内的组件。

需要注意的是蓝图根组件决定了本ACT的调性,例如默认场景组件是没有物理属性的,那么子组件就算是设置了物理,整个ACT都是无效的,也就无法响应功能组件功能。功能组件一般是针对根元素起作用,例如发射物移动组件。

在这里插入图片描述

k:获取类的所有actor 可以跨场景跟组件查找整个项目中的actor v:依据类命名

在这里插入图片描述

K:get (复制) 获取数组中的序列索引值。
在这里插入图片描述

设置变量 k:设置+(自己定义的变量名字)

在这里插入图片描述

销毁ACTOR使ACT注销掉实现隐藏 K:销毁Actor

在这里插入图片描述

注意:获取类的所有actor中选中了ACT的class后面SET才能定位设置XXXX变量,它取值前面搜索到的ACT类里面的变量。并且也会影响到GET出来的值,点击编译的时候GET就会存取了,存错了需要删了重新添加GET更新存取的值,否则后面绑定目标值类型不对。
在这里插入图片描述

图表 可以自己新建图表单独写自己的代码不和原有代码写在一起,相当于下一页。

在这里插入图片描述

在蓝图中自定义事件相当于添加了一个函数调用作为方法
在这里插入图片描述

想要调用组件中的属性进行设置修改可以拖出来并且加入set K:设置 角色移动
在这里插入图片描述

如果设置的参数不想固定而是函数带入的,可以把参数绿点直接连到定义的事件上
在这里插入图片描述

固定参数
在这里插入图片描述

连接参数
在这里插入图片描述

连接后直接调用事件出现参数值槽口

新版ue5对中文的支持更加广泛了,下面是一个中文定义的例子,在主控人上定义了一个自定义事件
在这里插入图片描述

在这里插入图片描述
用另一个触发框类调用主控人的自定义方法
在这里插入图片描述
控制圆柱放大 K:获取场景缩放,K:设置Actor相对3D缩放
在这里插入图片描述
上图上涨变量值打开了小眼睛,意味着可以外部属性窗口直接设置。
以上是自类调用外类中自定义方法并且传参影响属性值的方法。
下面是直接改变外类变量值方法:
door类中有一个布尔变量初始值是假,限制了按键的有效反应。
在这里插入图片描述
在另一个钥匙类中遍历了所有的door类并且取出第一个0下标也是地图中唯一一个door,设置里面的变量为真。
在这里插入图片描述
这样实例door门能打开了。

文件想要挪动文件夹位置,直接拖动就行,会自动配置关系。但是往别的项目拷贝需要右键迁移便于打包关系。

1,关于地图模式操作绑定的初步理解

在这里插入图片描述
按键批量起名打组,这样组名就是事件名,直接调用批量响应,一般针对多输入设备的按键值。
项目里面具体的配置动作是通过GameMode做整体配置。里面具体包含了一个摄像机配置还有主角模型配置,其次会话类,状态类等其他类需要点加号自己新建扩展都是用于完善游戏控制的很多是原始定义的不能改动所以自己新建。
在这里插入图片描述
红线圈出来的是我自己复制新建了两个重要的控制类并且替换原始绑定上。NewPlayerController2是用户控制器里面有控制鼠标显示的属性用于特殊时期控制显示鼠标。
ThirdPersonCharacter是用户角色模型类里面设置了运动的快慢速度跳高等属性。但是他是继承的这些属性本身没有定义。在ThirdPersonCharacter类中继承了一个类在这里插入图片描述
他包含了具体的运动属性定义,此类主要是配置了人物模型。

地图的游戏模式设置在这里插入图片描述
是有优先级的越具体到细节上越优先级高,最开始也是最低的是从项目开始整体设置

在这里插入图片描述
这里主要是设置本项目用哪个游戏模式,里面用哪个主角模型,下面还有初始地图是哪一张(没截取)。
进入关卡地图后还可以再设置一遍此时优先级高于之前的设定
在这里插入图片描述
我这里替换了一个虚幻库中下载的角色,游戏模式用原来的配置了新角色控制没使用自带的游戏模式(其实都一样,你也可以自己建一个游戏模式配置)
在这里插入图片描述
以上运行就可以在地图关卡中调用新的角色并且控制他了。但是你如果选择了直接把角色拖进游戏中并且设置了他为主要控制角色0玩家
在这里插入图片描述
那么他的优先级又高于之前的,这就很具体指定了,他是最先控制的角色,前面设置无效。

ue的碰撞

设置碰撞需要考虑开启物理引擎和模型可移动。开启物理之后碰撞出现真实的抖动。没有开启的是死板的动。(另外模型本身要添加了碰撞网格,不然会穿透,碰撞无效)
想触发撞击事件,需要打开命中属性设置。想触发重叠需要打开重叠模型双方各自的重叠属性(都开)。在这里插入图片描述
另外可以设置自己得类型和对应响应得类型,正反对应关系。
在这里插入图片描述
下面得例子大方块设置了车载类型可以重叠,小方块设置了类型“车载”,所以小方块能融进去
在这里插入图片描述

再次强调想进行重叠事件响应必须双方都打开生成重叠事件得属性,所以两个方块都要点开。

有时候逻辑没问题但是效果出不来,可以尝试关闭重启软件

在类中添加函数方法:
在旋转方块类中添加了一个函数方法【重叠玩家】,此函数的属性中增加了一个参数【开始重叠】是布尔类型的,此内部函数主要用于设置修改属性变量【旋转布尔控制】的布尔值。此函数将在外部以通信的方式调用。
在这里插入图片描述

Actor通信

1,类型转换方式

我们在一个主角模型中添加了碰撞胶囊体,然后设置了重叠事件,通过感应外模型 Other Actor调用类型转换为 方法切换为【旋转方块响应式】类实例然后 调用此实例的内部函数 【重叠玩家】将参数传入为真(自带打勾)通信交互完成。
注意这里是类型转化为类实例
在这里插入图片描述
如果类型转化为类则修改的模板类
在这里插入图片描述

因为是修改的实例所以每个实例都有单独的效果。

此刻【旋转方块响应式】类内部的属性变量值修改引起了流程控制的改变条件变化,最终开始旋转。
在这里插入图片描述
总结:变量就像开关,他的值变化可以影响对应类里的逻辑代码的业务流程。想要外部控制这个开关就要借助内部函数方法定义来修改内部变量值。内部方法可以通过外部的类型转换调用函数方法。

另说,类模板的子类化:类文件可以当作模板直接拖放生成实体。类多样化上可以右键点击第一选项创建子蓝图类,而不是通过复制是通过继承的方式做变化处理,可以修改里面的模型实体。我们点开子蓝图发现没有任何代码,看来代码都依靠在父类中定义了。

2,直接Actor通信

直接通信需要在主操作的蓝图类里定义一个变量设置相应的目标类型(你想通信的对方模型),并且把可编辑实例打开用于外部索引对接,内部将变量类型转化为具体对应模型类中的具体类获取使用就能对接了。(看来总类可以转为内部使用的组件分类)

在这里插入图片描述
外部设置具体的模型类连接上要通信的灯(因为此类型内部不能设置默认值)
在这里插入图片描述

总结:可以直接使用【类型转换为 XXX】来读取另一个类中的变量,或者使用其中的方法函数来操作内部的变量来操控想要的业务。
或者遍历使用[获取类的所有Actor]类指定为XXX来遍历出想要的类再操作里面的变量或者函数方法。或者直接定义一个相关变量外部引入
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值