using System.Collections;
using System.Collections.Generic;
using TMPro;
using Unity.VisualScripting;
using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class KeyBindingsManager : MonoBehaviour
{
public static KeyBindingsManager Instance { get; private set; }
public Dictionary<string, KeyCode> keyBindings = new Dictionary<string, KeyCode>();
public List<TMP_InputField> inputFields;
KeyBindDictionary keyBindingsDictionary;
private void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
keyBindings.Add("Jump", KeyCode.Space);
keyBindings.Add("Forward", KeyCode.D);
keyBindings.Add("Backward", KeyCode.A);
foreach (TMP_InputField inputField in inputFields)
{
inputField.text = keyBindings[inputField.name].ToString();
inputField.onValueChanged.AddListener(delegate { OnKeyBindingChanged(inputField); });
}
//keyBindingsDictionary = GameObject.FindObjectOfType<KeyBindDictionary>();
}
private void OnKeyBindingChanged(TMP_InputField inputField)
{
if (inputField.text != string.Empty)
{
KeyCode keyCode = (KeyCode)System.Enum.Parse(typeof(KeyCode), inputField.text);
keyBindings[inputField.name] = keyCode;
}
else
{
inputField.text = keyBindings[inputField.name].ToString();
}
}
public void OnSelect(TMP_InputField inputField)
{
inputField.text = "Insert New Key";
}
private void Update()
{
foreach (KeyCode key in keyBindings.Values)
{
Debug.Log("Key: " + key);
}
}
public void ChangeScene()
{
SceneManager.LoadScene("RandomCharacter");
}
}