Projext/Assets/02_Scripts/UI/Menu/KeyRebinder.cs

117 lines
3.4 KiB
C#
Raw Normal View History

using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class KeyRebinder : MonoBehaviour
{
[System.Serializable]
public class KeyBinding
{
public string <EFBFBD>׼<EFBFBD><EFBFBD≯<EFBFBD>;
public KeyCode <EFBFBD>Ű;
public KeyCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű;
public Button <EFBFBD><EFBFBD>ư;
public TextMeshProUGUI <EFBFBD><EFBFBD>ư<EFBFBD>ؽ<EFBFBD>Ʈ;
}
public KeyBinding[] Ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
[Header("<22>̹<EFBFBD><CCB9><EFBFBD> <20><><EFBFBD><EFBFBD>")]
public Sprite <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD>;
public Sprite <EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD>;
private KeyBinding <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = null;
// <20>˱<EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ
string Ű<EFBFBD≯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(KeyCode Ű)
{
switch (Ű)
{
case KeyCode.Mouse0: return "<22><><EFBFBD><20><>Ŭ<EFBFBD><C5AC>";
case KeyCode.Mouse1: return "<22><><EFBFBD><20><>Ŭ<EFBFBD><C5AC>";
case KeyCode.Mouse2: return "<22><><EFBFBD><20><>Ŭ<EFBFBD><C5AC>";
case KeyCode.Space: return "<22><><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD>";
case KeyCode.Return: return "<22><><EFBFBD><EFBFBD>";
case KeyCode.Escape: return "ESC";
case KeyCode.LeftShift: return "<22><> Shift";
case KeyCode.RightShift: return "<22><> Shift";
case KeyCode.LeftControl: return "<22><> Ctrl";
case KeyCode.RightControl: return "<22><> Ctrl";
case KeyCode.LeftAlt: return "<22><> Alt";
case KeyCode.RightAlt: return "<22><> Alt";
case KeyCode.Tab: return "Tab";
case KeyCode.CapsLock: return "CapsLock";
case KeyCode.Backspace: return "Backspace";
case KeyCode.Delete: return "Delete";
case KeyCode.UpArrow: return "<22><>";
case KeyCode.DownArrow: return "<22><>";
case KeyCode.LeftArrow: return "<22><>";
case KeyCode.RightArrow: return "<22><>";
default: return Ű.ToString().ToUpper();
}
}
void Start()
{
foreach (KeyBinding Ű in Ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
{
string <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű = PlayerPrefs.GetString(Ű.<EFBFBD>׼<EFBFBD><EFBFBD≯<EFBFBD>, Ű.<EFBFBD>Ű.ToString());
Ű.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű = (KeyCode)System.Enum.Parse(typeof(KeyCode), <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű);
Ű<EFBFBD>ؽ<EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ(Ű);
}
}
public void Ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(int <EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>)
{
if (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> != null)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD>ư.GetComponent<Image>().sprite = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = Ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>];
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD>ư.GetComponent<Image>().sprite = <EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD>ư<EFBFBD>ؽ<EFBFBD>Ʈ.text = "<22>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>...";
}
void Update()
{
if (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> == null) return;
if (Input.GetKeyDown(KeyCode.Escape))
{
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD>ư.GetComponent<Image>().sprite = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD>;
Ű<EFBFBD>ؽ<EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = null;
return;
}
foreach (KeyCode Ű<EFBFBD>ڵ<EFBFBD> in System.Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKeyDown(Ű<EFBFBD>ڵ<EFBFBD>))
{
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű = Ű<EFBFBD>ڵ<EFBFBD>;
PlayerPrefs.SetString(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD>׼<EFBFBD><EFBFBD≯<EFBFBD>, Ű<EFBFBD>ڵ<EFBFBD>.ToString());
PlayerPrefs.Save();
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD>ư.GetComponent<Image>().sprite = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD>;
Ű<EFBFBD>ؽ<EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = null;
return;
}
}
}
void Ű<EFBFBD>ؽ<EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ(KeyBinding Ű)
{
Ű.<EFBFBD><EFBFBD>ư<EFBFBD>ؽ<EFBFBD>Ʈ.text = Ű<EFBFBD≯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Ű.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű);
}
public void <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>()
{
foreach (KeyBinding Ű in Ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
{
Ű.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű = Ű.<EFBFBD>Ű;
PlayerPrefs.SetString(Ű.<EFBFBD>׼<EFBFBD><EFBFBD≯<EFBFBD>, Ű.<EFBFBD>Ű.ToString());
Ű<EFBFBD>ؽ<EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ(Ű);
}
PlayerPrefs.Save();
}
}