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

Unity中Oculus控制器菜单输入无断点时失效问题求助

问题分析与解决方案

核心问题原因

  1. 手柄输入检测不可靠:直接用KeyCode.JoystickButtonX检测Oculus控制器输入,容易出现输入状态识别不稳定的情况,非调试模式下输入事件可能被Unity输入系统过滤或未及时捕获。
  2. 菜单状态逻辑冲突:Update开头的三个条件判断,会在menu与smenu/imenu/amenu同时激活时强制关闭menu,可能在ToggleMenu执行后立刻修改菜单状态,导致后续输入无法触发预期切换。

修复步骤

1. 改用Oculus官方输入API(OVRInput)

导入Oculus Integration包后,用OVRInput替代原生Input类,确保手柄输入检测的稳定性:

using UnityEngine;
using Oculus.Platform;

public class MenuInputManager : MonoBehaviour
{
    public GameObject menu;
    public GameObject smenu;
    public GameObject amenu;
    public GameObject imenu;

    void Update()
    {
        // 简化菜单互斥逻辑
        if (menu.activeSelf)
        {
            bool hasActiveSubMenu = smenu.activeSelf || amenu.activeSelf || imenu.activeSelf;
            if (hasActiveSubMenu)
            {
                menu.SetActive(false);
                // 仅关闭当前激活的子菜单
                if (smenu.activeSelf) smenu.SetActive(false);
                if (amenu.activeSelf) amenu.SetActive(false);
                if (imenu.activeSelf) imenu.SetActive(false);
            }
        }

        // 键盘输入检测
        if (Input.GetKeyDown(KeyCode.Menu) || Input.GetKeyDown(KeyCode.T))
        {
            ToggleMenu();
            Debug.Log("Pause menu toggled (keyboard)");
        }

        // Oculus控制器输入检测(菜单键+A键示例)
        if (OVRInput.GetDown(OVRInput.Button.Back) || OVRInput.GetDown(OVRInput.Button.One))
        {
            ToggleMenu();
            Debug.Log("Pause menu toggled (controller)");
        }
    }

    void ToggleMenu()
    {
        if (menu != null)
        {
            menu.SetActive(!menu.activeSelf);
            Debug.Log($"Menu state: {menu.activeSelf}");
        }
    }
}

2. 优化菜单状态逻辑

合并重复的条件判断,减少冗余代码,同时仅关闭当前激活的子菜单,避免不必要的状态修改。

3. 验证输入映射

无需手动配置输入轴,直接使用OVRInput预定义按钮:OVRInput.Button.Back对应Oculus菜单键,OVRInput.Button.One对应控制器A键,确保输入映射准确。

额外排查点

  • 确认脚本挂载对象未被禁用,menu、smenu等引用已正确赋值。
  • 检查是否有其他脚本在修改menu激活状态,导致ToggleMenu的效果被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:42:46