protected override Vector3 DetermineMovement() { var movement = new Vector3(); if (!IsDead && InputHelpers.IsAnyKey("w", "s", "a", "d")) { ShouldMove = true; GunObject.enabled = false; var headDirection = PlayerHeadController.HeadDirection.Down; if (Input.GetKey("w")) { movement += new Vector3(0, 1, 0); headDirection = PlayerHeadController.HeadDirection.Up; } else if (Input.GetKey("s")) { movement += new Vector3(0, -1, 0); GunObject.enabled = true; headDirection = PlayerHeadController.HeadDirection.Down; } if (Input.GetKey("a")) { movement += new Vector3(-1, 0, 0); headDirection = PlayerHeadController.HeadDirection.Left; } else if (Input.GetKey("d")) { movement += new Vector3(1, 0, 0); headDirection = PlayerHeadController.HeadDirection.Right; } movement.Normalize(); if (!_shootController.IsShooting) { _headObject.SetHeadDirection(headDirection); } } else if (!IsDead) { ShouldMove = false; } return(movement); }