虚幻引擎 Enable Input / Disable Input 节点

Enable Input 和 Disable Input 节点在虚幻引擎5中用于控制一个Actor(如角色、门、开关等)是否能接收并响应玩家的输入

这两个节点通常成对使用,用来实现“只有玩家靠近时才能开门”、“与NPC对话期间禁用角色移动”等常见的游戏逻辑

🛠️ 基础设置:让Actor响应输入

这是最基础的用法,让一个Actor在游戏开始时就能响应输入。

  1. 打开你的Actor蓝图(例如,一个你想让玩家按E键互动的门或开关)。

  2. 事件图表(Event Graph) 中,右键单击空白处,搜索并添加 Event Begin Play 节点

  3. 再次右键,搜索并添加 Get Player Controller 节点

  4. 第三次右键,搜索并添加 Enable Input 节点

  5. 按以下方式连接节点

    • Event Begin Play 的输出引脚 → Enable Input 的执行输入引脚。

    • Get Player Controller 的返回值 → Enable Input 的 Player Controller 引脚。

    • Enable Input 节点的 Target 引脚默认是 Self,即这个Actor本身

这样,游戏一开始,这个Actor就被“激活”了输入功能。之后你可以在图表中添加任何 Input Action 或 Key Event 节点(如 E Key),当玩家按下按键时,该Actor就会执行对应的逻辑

🎯 进阶案例:基于距离的交互控制

通过“触发器(Trigger)”实现玩家必须靠近才能互动,是更符合直觉的设计

  1. 添加触发器:在Actor的组件(Components)面板中,添加一个 Sphere Collision(球体碰撞体)组件,并将其命名为 Trigger

  2. 调整触发器大小:在细节(Details)面板中,调整球体的缩放(Scale)和位置(Location),让它正好包裹住Actor的交互范围

  3. 创建重叠事件:在事件图表中,为 Trigger 组件添加 OnComponentBeginOverlap(开始重叠)和 OnComponentEndOverlap(结束重叠)事件

  4. 判断玩家:从 Begin Overlap 节点的 Other Actor 引脚拖出,添加 Cast To [你的角色类] 节点,确保进入触发器的是玩家角色

  5. 连接节点

    • 将 Cast To [你的角色类] 的 As [角色类] 引脚连接到 Enable Input 节点的 Target 引脚。

    • 同样,在 End Overlap 事件后,将 Cast To [你的角色类] 的 As [角色类] 引脚连接到 Disable Input 节点的 Target 引脚

    • 确保两个节点的 Player Controller 引脚都正确连接了 Get Player Controller 节点。

完成上述设置后,当玩家进入触发器范围,Actor的输入被启用;离开范围,输入被禁用,从而实现“靠近可交互,远离不可交互”的效果

⚠️ 进阶技巧与常见问题

  • 客户端 vs. 服务器:在联网游戏中,EnableInput / DisableInput 必须在客户端执行,而非服务器

  • 区分“禁用输入”与“禁用移动”Disable Input 会禁用所有输入事件。如果只想禁止角色移动,可以调用角色的 StopMovement() 函数或禁用其 MovementComponent

  • UI模式的特殊情况:打开菜单时,通常使用 Set Input Mode UI Only 节点,这会完全禁用游戏输入,让所有输入都由UI界面处理

  • 节点未生效?:请检查 Enable Input 节点是否真的被执行了(可以在节点上打断点调试),并确认 Target 和 Player Controller 引脚都已正确连接

💎 总结

Enable Input 和 Disable Input 是控制游戏交互节奏的核心工具。其核心步骤就是:获取玩家控制器 -> 调用启用/禁用节点 -> 指定目标Actor。你可以根据游戏逻辑的需要,在任意时刻(如游戏开始、进入触发区域、对话开始/结束时)调用它们。

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容