【问题标题】:Unity New Input System .started doesn't work but .performed works twiceUnity 新输入系统 .started 不起作用,但 .performed 工作两次
【发布时间】:2021-10-20 12:41:34
【问题描述】:

我正在使用新的输入系统创建一个射击愤怒的小鸟风格的游戏。

我想在鼠标点击和释放时将鼠标位置保存到一个变量中。

订阅.started 事件不起作用。使用.performed,1次点击2次,开始一次,发布后一次。

当我尝试.canceled 时,它也不起作用。

    private void OnEnable()
    {
            controls.Gameplay.Shoot.started += _ => PlayerAimingStart();
            controls.Gameplay.Shoot.performed += _ => PlayerAimingPerformed();
    }
        private void PlayerAimingStart()
        {
            shootingPositionStart = controls.Gameplay.MousePosition.ReadValue<Vector2>(); shootingPositionStart.z = 0f;
        }
    
        private void PlayerAimingPerformed()
        {
            shootingPositionEnd = controls.Gameplay.MousePosition.ReadValue<Vector2>(); shootingPositionEnd.z = 0f;
            Vector3 force = shootingPositionStart - shootingPositionEnd;
            Vector3 clampedForce = Vector3.ClampMagnitude(force, maxDrag) * power;
            bulletGO.GetComponent<Rigidbody2D>().AddForce(clampedForce, ForceMode2D.Impulse);
        }

【问题讨论】:

    标签: c# unity3d input


    【解决方案1】:

    在输入动作资源中,在我的游戏动作图和动作下,Gameplay &gt; Actions: Shoot/Left Button

    我必须在右侧添加新闻交互 Interactions &gt; Press

    并将触发行为设置为Press And Release

    【讨论】:

    • 这解决了我面临的同样问题。感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2022-10-07
    • 2020-09-29
    • 1970-01-01
    • 2018-10-13
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    相关资源
    最近更新 更多