private void UpdateMovementState(CharacterData.MovementStats.MovementState movementState) { characterData._currentMovementState = movementState; switch (CurrentMovementState) { case CharacterData.MovementStats.MovementState.STANDING: canRun = false; characterData.speed = 0.0f; characterData.outOfBreath = false; break; case CharacterData.MovementStats.MovementState.WALKING: characterData.speed = 2.0f; characterData.outOfBreath = false; break; case CharacterData.MovementStats.MovementState.TROTTING: characterData.speed = 3.0f; characterData.outOfBreath = false; break; case CharacterData.MovementStats.MovementState.RUNNING: characterData.speed = 4.0f; characterData.outOfBreath = false; break; case CharacterData.MovementStats.MovementState.SCARED_RUNNING: characterData.speed = 5.0f; characterData.outOfBreath = true; break; case CharacterData.MovementStats.MovementState.FLOATING: //WHAT HAPPENS WHEN THE CHATACTER IS FLOATING characterData.forwardForce = 1.0f; canRun = false; break; case CharacterData.MovementStats.MovementState.CRAWLING: characterData.speed = 1.0f; characterData.outOfBreath = true; canRun = false; break; default: break; } }
public void MoveState(CharacterData.MovementStats.MovementState movementState) { if (movementState == CharacterData.MovementStats.MovementState.CRAWLING) { crawling = true; } else if (movementState == CharacterData.MovementStats.MovementState.RUNNING) { canRun = true; } else { UpdateMovementState(movementState); //crawling = false; //canRun = false; Debug.Log(movementState); } }
public void ChangeBehaviourMoveState(CharacterData.MovementStats.MovementState state) { characterBehaviour.SendMessage("MoveState", state); }
//FOR ACTIONS THAT AFFECT MOVEMENT STATE public void PlayFeedbackChangeState(string feedback, CharacterData.MovementStats.MovementState state) { AkCallbackManager.EventCallback changeMovementStateCallback = new AkCallbackManager.EventCallback(new System.Action <object, AkCallbackType, object>((o1, o2, o3) => ChangeBehaviourMoveState(state))); AkSoundEngine.PostEvent(feedback, gameObject, (uint)AkCallbackType.AK_EndOfEvent, changeMovementStateCallback, null); }