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; } } } }
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); }