public void Execute(Player player) { // To Transition out you can raycast - Make the cast distance really small (.55 past center position so .05f from ground if (Physics.Raycast(player.transform.position, Vector3.down, 1f)) { Debug.Log("Hit Ground"); Standing stand = new Standing(); stand.Enter(player); } if (Input.GetKeyDown(KeyCode.S)) { Diving dive = new Diving(); dive.Enter(player); } }