You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity VR中使用事件系统实现控制器按键触发的暂停菜单

Unity VR 控制器按键触发暂停菜单实现方案

一、事件系统配置修正

你提到的事件模块配置错误通常是以下几个常见问题:

  • 若使用XR Interaction Toolkit开发,需要移除默认的Standalone Input Module,仅保留XR UI Input Module,两个输入模块共存会导致VR输入无法正确触发UI事件
  • 检查Event System组件参数,无特殊需求不需要修改默认配置,First Selected字段仅用于菜单弹出后默认选中指定按钮,不影响菜单显隐逻辑
  • 确认暂停菜单所在的Canvas渲染模式设置为World Space,且Canvas上挂载了Graphic Raycaster组件

二、按键触发显隐逻辑实现

以下是基于XR Interaction Toolkit + 新输入系统的实现方案:

  1. 配置输入动作
    打开项目中的Input Action Asset文件,新增一个动作类型为Button的Pause动作,绑定你想要触发暂停菜单的控制器按键(如Oculus控制器菜单键、HTC Vive菜单键等)
  2. 编写控制脚本
    新建PauseMenuManager.cs脚本,挂载在场景中持久存在的对象上,代码示例:
using UnityEngine;
using UnityEngine.InputSystem;

public class PauseMenuManager : MonoBehaviour
{
    //  inspector面板拖入暂停菜单Canvas对象
    public GameObject pauseMenu;
    //  inspector面板拖入之前配置好的Pause输入动作
    public InputAction pauseTriggerAction;

    private bool _menuIsActive = false;

    private void OnEnable()
    {
        pauseTriggerAction.Enable();
        pauseTriggerAction.performed += TogglePauseMenu;
    }

    private void OnDisable()
    {
        pauseTriggerAction.performed -= TogglePauseMenu;
        pauseTriggerAction.Disable();
    }

    private void TogglePauseMenu(InputAction.CallbackContext ctx)
    {
        _menuIsActive = !_menuIsActive;
        pauseMenu.SetActive(_menuIsActive);
        
        //  需要暂停游戏逻辑可开启下行代码
        // Time.timeScale = _menuIsActive ? 0f : 1f;
    }
}
  1. 参数配置
  • 初始状态下将暂停菜单Canvas的active属性设为false
  • 把暂停菜单Canvas和配置好的Pause输入动作分别拖入脚本对应字段即可

三、常见问题排查

  • 按键无响应:打开输入系统调试窗口,按下对应按键确认Pause动作能正常触发,排查输入绑定是否正确
  • 菜单弹出后无法点击:确认事件系统仅保留XR UI Input Module,Canvas上已挂载Graphic Raycaster组件
  • 菜单位置偏移:可以在弹出菜单时让其自动对准视角,在TogglePauseMenu的激活分支添加如下代码:
Transform mainCam = Camera.main.transform;
pauseMenu.transform.SetPositionAndRotation(
    mainCam.position + mainCam.forward * 1.5f,
    Quaternion.LookRotation(mainCam.forward)
);

内容的提问来源于stack exchange,提问作者Imbackgaming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:06:03