0

我对 C# 比较陌生,我想知道是否有什么方法可以让我的键码(空格键,它激活我拥有的光剑)等于握把触发器(Axis1D.PrimaryIndexTrigger)。我想做的是拥有它,所以如果我按下空格键,光剑就会打开,如果我再次按下相同的按钮,它就会关闭。基本上我不想根据 OVRInput 重写,因为它已经设置好了,但我不知道该怎么做。提前致谢!:)

另外:这不是我的所有代码,以防不明显......只包括重要的东西

/// <summary>
    /// The key for toggling the weapon's active state
    /// </summary>
    private KeyCode TOGGLE_KEY_CODE = KeyCode.Space;
        
        // key pressed
        if (Input.GetKeyDown(TOGGLE_KEY_CODE))
        {

            ToggleWeaponOnOff();

        }

编辑:这是我尝试过的,但没有用

/// <summary>
    /// The key for toggling the weapon's active state
    /// </summary>
    private KeyCode OVRInput.Get(OVRInput.Button.One);
        
        // key pressed
        if (OVRInput.GetDown(OVRInput.Button.One))
        {

            ToggleWeaponOnOff();

        }
4

1 回答 1

0

您的选择应该在于 Unity 的新输入系统,它比旧输入系统要好得多、健壮和灵活。解决方案背后的一般概念如下:

  • 您以可编写脚本的对象的形式创建输入操作映射,

  • 每个动作可以包含多个输入源,例如空格键和索引触发器一起,

  • 新的输入系统根据活动映射收集所有输入,然后在满足阈值时调用操作(如死区或修改键),

  • 因此,您只需要以更好的方式处理 InnputAction 或 InputActionReference 对象:要么以旧式使用它:

    if (ActionFire.isTriggered) { //Do stuff } ...或通过订阅 Action 的事件,但在这种情况下,您应该使用 UserInputManager 对象(或编写您自己的对象),它可以有效地完成您之前所做的所有事情在更新()中。

于 2021-08-21T18:02:33.610 回答