コード例 #1
0
    public void OnFire(InputAction.CallbackContext context)
    {
        switch (context.phase)
        {
        case InputActionPhase.Performed:
        {
            weaponScript.Fire();
        }
        break;

        case InputActionPhase.Started:
        {
            if (context.interaction is HoldInteraction)
            {
                weaponScript.StartCoroutine(weaponScript.AutoFire());
            }
        }
        break;

        case InputActionPhase.Canceled:
        {
            weaponScript.StopCoroutine(weaponScript.AutoFire());
        }
        break;
        }
    }
コード例 #2
0
    //Thanks to the new Input System
    public void OnFire(InputAction.CallbackContext context)
    {
        switch (context.phase)
        {
        case InputActionPhase.Performed:
            weaponScript.Fire();
            break;

        case InputActionPhase.Started:
        {
            {
                if (weaponScript.bIsChargeWeapon)
                {
                    weaponScript.StartCoroutine(weaponScript.ChargeShot());
                }
                if (weaponScript.bIsAutomatic)
                {
                    weaponScript.StartCoroutine(weaponScript.AutoFire());
                }
            }
        }
        break;

        case InputActionPhase.Canceled:
        {
            if (weaponScript.bIsAutomatic)
            {
                weaponScript.StopCoroutine(weaponScript.AutoFire());
            }
            if (weaponScript.bIsChargeWeapon)
            {
                weaponScript.StopCoroutine(weaponScript.ChargeShot());
                if (weaponScript.CurrentChargeTime > 0)
                {
                    weaponScript.FireChargedShot();
                }
            }
        }
        break;
        }
    }