Projext/Assets/02_Scripts/UI/Menu/KeyRebinder.cs
hydrozen e989d20668 카툰 쉐이더 추가 + 중복 스크립트 수정 + 전체 업데이트
- ToonPostProcess.shader: 횃불 고딕 스타일 후처리 쉐이더 (Built-in RP)
- ToonCameraEffect.cs: 카메라 자동 부착 후처리 스크립트
- 중복 UI 스크립트 제거 (MenuIntroController, ToggleCustom)
- 씬, 프리팹, 애니메이션 등 전체 업데이트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 12:31:16 +09:00

117 lines
3.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class KeyRebinder : MonoBehaviour
{
[System.Serializable]
public class KeyBinding
{
public string ;
public KeyCode ;
public KeyCode ;
public Button ;
public TextMeshProUGUI ;
}
public KeyBinding[] ;
[Header("이미지 설정")]
public Sprite ;
public Sprite ;
private KeyBinding = null;
// 알기 쉬운 이름으로 변환
string (KeyCode )
{
switch ()
{
case KeyCode.Mouse0: return "마우스 좌클릭";
case KeyCode.Mouse1: return "마우스 우클릭";
case KeyCode.Mouse2: return "마우스 휠클릭";
case KeyCode.Space: return "스페이스바";
case KeyCode.Return: return "엔터";
case KeyCode.Escape: return "ESC";
case KeyCode.LeftShift: return "좌 Shift";
case KeyCode.RightShift: return "우 Shift";
case KeyCode.LeftControl: return "좌 Ctrl";
case KeyCode.RightControl: return "우 Ctrl";
case KeyCode.LeftAlt: return "좌 Alt";
case KeyCode.RightAlt: return "우 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 "↑";
case KeyCode.DownArrow: return "↓";
case KeyCode.LeftArrow: return "←";
case KeyCode.RightArrow: return "→";
default: return .ToString().ToUpper();
}
}
void Start()
{
foreach (KeyBinding in )
{
string = PlayerPrefs.GetString(., ..ToString());
. = (KeyCode)System.Enum.Parse(typeof(KeyCode), );
();
}
}
public void (int )
{
if ( != null)
..GetComponent<Image>().sprite = ;
= [];
..GetComponent<Image>().sprite = ;
..text = "입력하세요...";
}
void Update()
{
if ( == null) return;
if (Input.GetKeyDown(KeyCode.Escape))
{
..GetComponent<Image>().sprite = ;
();
= null;
return;
}
foreach (KeyCode in System.Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKeyDown())
{
. = ;
PlayerPrefs.SetString(., .ToString());
PlayerPrefs.Save();
..GetComponent<Image>().sprite = ;
();
= null;
return;
}
}
}
void (KeyBinding )
{
..text = (.);
}
public void ()
{
foreach (KeyBinding in )
{
. = .;
PlayerPrefs.SetString(., ..ToString());
();
}
PlayerPrefs.Save();
}
}