Blueprint —— 蓝图的使用(二)

目录

一,注释

二,组件窗口

Component Events and Functions

三,事件分发器

绑定和解绑定

四,事件

五,函数 

Specifiers

Pure

六,宏

七,数学表达式节点

可用的蓝图函数

基本结构体类型

操作符

八,随机流

随机流变量

随机流函数

Initial Seed

九,Timelines

时间轴节点

UTimelineComponent 

十,蓝图类型

十一,结构体变量

访问结构体信息

自定义结构体


一,注释

        注释 可直接添加到单个 蓝图 节点上, 也可注释框的形式添加到组相关节点上;

  • 节点注释,右击节点,选择 Node Comment 

  • 注释框,右击节点,选择 Create Comment from Selection

    • 快捷键C;

二,组件窗口

        组件是一个可以添加到Actor的功能,Actor可以使用组件提供的功能;组件必须附加到Actor上,不能单独存在;创建蓝图类实例时,Construction Script 在组件列表之后运行;

        Blueprint Editor 中的 Components 窗口允许将组件添加到蓝图;提供了以下方法:

  • 通过CapsuleComponent、BoxComponent或SphereComponent添加碰撞几何体;
  • 以StaticMeshComponent或SkeletalMeshComponent形式添加渲染几何体;
  • 使用MovementComponent控制移动;
  • 还可将组件指定给实例变量,以便在此蓝图或其他蓝图的图表中访问它们;

注,可将内容浏览器中的资产直接拖动到组件窗口;

Component Events and Functions

        可通过不同的方法将基于组件的事件和功能快速添加到蓝图的 事件图表 中;

 

三,事件分发器

        通过将一个或多个事件绑定到 Event Dispatcher,可在调用事件分发器时触发这些事件;这些事件可以绑定到蓝图类中,但事件分发器也允许在关卡蓝图中触发事件;

        向事件分发器添加输入,允许向绑定到事件分发器的每个事件发送变量;

绑定和解绑定

        使用 Bind Event 节点添加事件,使用 Unbind Event 节点移除事件(Unbind All Events节点解除当前所有事件);Bind Event 节点可以执行多次,但每个事件只能绑定一次;

  • 在蓝图类中执行 Unbind All Events 节点,将针对此类的所有实例来解除蓝图类和关卡蓝图中的事件绑定;
  • 在关卡蓝图中执行 Unbind All Events 节点,只会针对 Target 提供内容来解除蓝图类和关卡蓝图中的事件绑定;

四,事件

        事件(Events) 是从游戏代码中调用的节点, 在 事件图表(EventGraph)中开始执行单独的网络; 它们使蓝图执行一系列操作,对游戏中发生的特定事件(如游戏开始、关卡重置、受到伤害等)进行回应;

        这些事件可在蓝图中访问,以便实现新功能,或覆盖/扩充默认功能;任意数量的 Events 均可在单独 EventGraph 中使用,但每种类型只能使用一个;

        一个事件只能执行一个目标;如果想要从一个事件触发多个操作,需要将它们线性串联起来;

 

Blueprint —— Events_event anydamage没有了-优快云博客

五,函数 

        Functions 是属于特定 Blueprint 的节点图表,可以从蓝图中的另一个图表执行

<think>嗯,用户这次明确询问UE5蓝图接口的使用方法,而且提供了三篇站内引用资料。从内容看,引用[1]解释了蓝图接口的定义和作用,引用[2]详细描述了具体操作步骤,引用[3]则强调了设计优势。用户应该是个UE5初学者,可能正在尝试实现蓝图间的通信功能。 注意到用户上次提问被系统示例带偏到了快速排序(笑),这次总算回归正轨。ta的需求很聚焦——要具体的操作指南。引用[2]的操作流程已经很完整,但需要更结构化:应该拆解为创建接口、实现接口、调用接口三个阶段,每个阶段补充引擎界面操作的细节。比如"添加函数"这一步需要说明参数设置,"实现事件"要强调右键菜单的位置。 特别要注意引用[3]提到的设计哲学。用户在学会基础操作后,很可能会遇到模块解耦的实际问题,所以最后需要点出"降低耦合度"这个核心价值。操作步骤里第4步遍历查找接口的写法容易出错,得提醒Cast to转换的注意事项。 相关问题的设计要覆盖用户可能的后续需求:事件调度器是接口的替代方案,多人游戏场景则是常见应用痛点。第三个问题特意提到变量同步,因为这是新手使用接口时容易忽略的同步问题。 </think>以下是UE5蓝图接口的完整使用教程,结合引用资料逐步解析: ### 一、创建蓝图接口 1. **创建资产** - 内容浏览器右键 → `蓝图类` → 选择`Blueprint Interface`并命名(如`BPI_Interaction`) 2. **添加函数** - 双击打开接口 → 点击`+函数`按钮 → 命名函数(如`Interact`) - 设置输入/输出参数(非必需)[^1][^2] ```mermaid graph TD A[创建蓝图接口] --> B[添加函数签名] B --> C[定义输入/输出参数] ``` ### 、在蓝图中实现接口 1. **绑定接口到类** - 打开需要实现接口的蓝图(如角色蓝图) - 点击`类设置` → `细节`面板 → `已实现的接口` → 添加创建的接口[^2] 2. **实现接口函数** - 在`我的蓝图`面板 → 右键接口函数 → `实现事件` - 编写具体逻辑(如显示交互提示)[^2] ### 三、跨蓝图调用接口 1. **获取接口对象** ```python # 示例步骤: 1. 在调用方蓝图(如UI) 2. 事件图表添加:Get All Actors with Interface 3. 选择目标接口(如BPI_Interaction) ```[^2] 2. **执行接口函数** - 连接`For Each Loop` → `Cast to 接口` → 调用目标函数 - 注意:需先做接口类型转换(Cast)确保安全性[^2] ### 四、核心优势(设计层面) | **特性** | **直接通信** | **蓝图接口** | |----------------|-------------------|----------------------| | 耦合度 | 高(直接引用) | 低(通过契约) | | 可维护性 | 修改影响扩散 | 局部修改无影响[^3] | | 扩展性 | 需修改调用方 | 新类实现接口即可 | | 模块化程度 | 功能交叉 | 边界清晰[^3] | > **关键提示**:接口函数在实现类中会显示为绿色节点,未实现的调用会触发警告[^1] --- ### 常见问题解决 1. **接口未生效** - 检查所有Actor是否正确添加接口实现 - 确认Cast转换成功后再调用函数 2. **参数传递错误** - 确保调用方和被调用方参数类型完全匹配 - 使用`Make Literal`显式设置参数类型
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值