You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.5 KiB

4 years ago
4 years ago
  1. using UnityEngine;
  2. /// <summary>
  3. /// Debug class for controlling a character with keyboard input
  4. /// </summary>
  5. public class KeyboardInput : MonoBehaviour
  6. {
  7. #region Inspector Fields
  8. [SerializeField]
  9. [Tooltip("Character to move")]
  10. private Character character;
  11. public float characterSpeed;
  12. #endregion Unity Functions
  13. #region Unity Functions
  14. void Update()
  15. {
  16. if (character == null)
  17. return;
  18. if (Input.GetKeyDown(KeyCode.LeftArrow))
  19. {
  20. StartCoroutine(character.RotateInDirection(Direction.Left,90, Character.Animation.Jump, characterSpeed));
  21. }
  22. if (Input.GetKeyDown(KeyCode.RightArrow))
  23. {
  24. StartCoroutine(character.RotateInDirection(Direction.Right, 90, Character.Animation.Jump, characterSpeed));
  25. }
  26. if (Input.GetKeyDown(KeyCode.UpArrow))
  27. {
  28. Move move = (Move)ScriptableObject.CreateInstance(typeof(Move));
  29. StartCoroutine(move.Run(character, characterSpeed));
  30. Destroy(move);
  31. }
  32. if (Input.GetKeyDown(KeyCode.Space))
  33. {
  34. Jump jump = (Jump)ScriptableObject.CreateInstance(typeof(Jump));
  35. StartCoroutine(jump.Run(character, characterSpeed));
  36. Destroy(jump);
  37. }
  38. }
  39. //if character is empty check on object for it
  40. private void OnValidate()
  41. {
  42. if (character == null)
  43. character = GetComponent<Character>();
  44. }
  45. #endregion Unity Functions
  46. }