示例#1
0
    protected override void FixedAction(InputSource input)
    {
        base.Action(input);
        BaseAbility.AbilityParameters param = new BaseAbility.AbilityParameters()
        {
            origin = transform
        };
        foreach (AbilityContainer container in availableAbilities)
        {
            if (container.fixedUpdate && !CheckMuted(container.controlName))
            {
                switch (container.controlType)
                {
                case AbilityContainer.Type.Axis:
                    param.heldDirection = input.GetAxis(container.controlName);
                    container.ability.Execute(param);
                    break;

                case AbilityContainer.Type.Button:
                    param.heldDirection = input.GetAxis(directionInput);
                    param.heldButton    = input.GetButton(container.controlName);
                    container.ability.Execute(param);
                    break;
                }
            }
        }
    }
示例#2
0
    protected override void Action(InputSource input)
    {
        Vector3 axisInput = input.GetAxis(moveBinding);

        if (!trackX)
        {
            axisInput.x = 0;
        }
        if (!trackY)
        {
            axisInput.y = 0;
        }

        if (axisInput == Vector3.zero)
        {
            if (currentSpeed > 0)
            {
                currentSpeed -= moveAccel;
                currentSpeed  = Mathf.Clamp(currentSpeed, 0, Mathf.Infinity);
            }
        }
        else
        {
            currentSpeed   += moveAccel;
            currentSpeed    = Mathf.Clamp(currentSpeed, 0, maxSpeed);
            lastDirection   = axisInput;
            transform.right = axisInput;
        }
        Vector3 movement = transform.right * currentSpeed;

        rigid.MovePosition(transform.position + movement * Time.deltaTime);
    }