Newer
Older
HardPoint-Project-Abertay-University-Unity3D / Assets / Scenes / Developers / Nuno / NunoToys / KeyBindingsManager.cs
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using TMPro;
  4. using Unity.VisualScripting;
  5. using UnityEditor;
  6. using UnityEngine;
  7. using UnityEngine.SceneManagement;
  8. using UnityEngine.UI;
  9. public class KeyBindingsManager : MonoBehaviour
  10. {
  11. public static KeyBindingsManager Instance { get; private set; }
  12. public Dictionary<string, KeyCode> keyBindings = new Dictionary<string, KeyCode>();
  13. public List<TMP_InputField> inputFields;
  14. KeyBindDictionary keyBindingsDictionary;
  15. private void Awake()
  16. {
  17. if (Instance == null)
  18. {
  19. Instance = this;
  20. DontDestroyOnLoad(gameObject);
  21. }
  22. else
  23. {
  24. Destroy(gameObject);
  25. }
  26. }
  27. private void Start()
  28. {
  29. keyBindings.Add("Jump", KeyCode.Space);
  30. keyBindings.Add("Forward", KeyCode.D);
  31. keyBindings.Add("Backward", KeyCode.A);
  32. foreach (TMP_InputField inputField in inputFields)
  33. {
  34. inputField.text = keyBindings[inputField.name].ToString();
  35. inputField.onValueChanged.AddListener(delegate { OnKeyBindingChanged(inputField); });
  36. }
  37. //keyBindingsDictionary = GameObject.FindObjectOfType<KeyBindDictionary>();
  38. }
  39. private void OnKeyBindingChanged(TMP_InputField inputField)
  40. {
  41. if (inputField.text != string.Empty)
  42. {
  43. KeyCode keyCode = (KeyCode)System.Enum.Parse(typeof(KeyCode), inputField.text);
  44. keyBindings[inputField.name] = keyCode;
  45. }
  46. else
  47. {
  48. inputField.text = keyBindings[inputField.name].ToString();
  49. }
  50. }
  51. public void OnSelect(TMP_InputField inputField)
  52. {
  53. inputField.text = "Insert New Key";
  54. }
  55. private void Update()
  56. {
  57. foreach (KeyCode key in keyBindings.Values)
  58. {
  59. Debug.Log("Key: " + key);
  60. }
  61. }
  62. public void ChangeScene()
  63. {
  64. SceneManager.LoadScene("RandomCharacter");
  65. }
  66. }