private void moveSubscription(MoveInputData i) { var wasGrounded = _characterController.isGrounded; // Vertical movement: var verticalVelocity = 0f; // The character is ... if (i.Jump && wasGrounded) { // ... grounded and wants to jump. verticalVelocity = jumpForceMagnitude; _jumped.OnNext(Unit.Default); } else if (!wasGrounded) { // ... in the air. verticalVelocity = _characterController.velocity.y + Physics.gravity.y * Time.deltaTime * 3.0f; } else { // ... otherwise grounded. verticalVelocity = -Mathf.Abs(stickToGroundForceMagnitude); } // Horizontal movement: var currentSpeed = firstPersonControllerInput.Run.Value ? runSpeed : walkSpeed; var horizontalVelocity = i.Move * currentSpeed; //Calculate velocity (direction * speed). // Combine horizontal and vertical movement. var characterVelocity = transform.TransformVector(new Vector3( horizontalVelocity.x, verticalVelocity, horizontalVelocity.y)); // Apply movement. var distance = characterVelocity * Time.deltaTime; _characterController.Move(distance); // Set ICharacterSignals output signals related to the movement. HandleLocomotionCharacterSignalsIteration(wasGrounded, _characterController.isGrounded); }
public bool Validate(MoveInputData data) { return(ValidateEntityTwoHanded(data.SlotTo, data.EntitySource) && ValidateEntityOneHanded(data.SlotTo, data.EntitySource)); }
public bool Validate(MoveInputData data) => ValidateStatsRequired(data.ToInventory, data.EntitySource);
public bool Validate(MoveInputData data) { return(OnlyForIsHotBarItem(data.ToInventory, data.EntitySource) && NoMoveFromInventory(data.FromInventory, data.ToInventory) && NoMoveInHotBarIfHaveSameId(data.FromInventory, data.ToInventory, data.EntitySource)); }
public bool Validate(MoveInputData data) { return(MoveOnlyIntoGroup(data)); }
public bool Validate(MoveInputData data) => ValidateDamned(data);
public bool Validate(MoveInputData data) => !(data.ToInventory == _dummy.DataInventory && data.AmountWantPut > 1);
public bool Validate(MoveInputData data) => ValidateBodyPart(data.ToInventory, data.EntitySource, data.SlotTo);