유니티 버전 - 6000.0.40f1
목차
- IUISettingChanger
- 변경된 Rebind 저장
IUISettingChanger
키세팅뿐만 아니라 다른 세팅들의 변경사항을 제어하기위한 인터페이스입니다, 각 메서드는 저장/되돌리기/초기화의 역할을 담당하고, 하위의 개별 세팅에서 변경사항이 있을때 IsChanged를 이용하여, 설정 팝업을 끄거나 탭을 넘어갈때 미변경 사항을 체크하고 플레이어에게 되묻는 역할을 합니다
public interface IUISettingChanger
{
public void ImplementSetting();
public void RevertSetting();
public void ResetSetting(SystemData systemData);
public bool IsChanged { get; }
}
변경된 Rebind 저장
public class ControlKeyInputSetting : MonoBehaviour, IUISettingChanger
{
[SerializeField] private InputActionAsset inputActions;
private string _baseBindingJson;
public bool IsChanged => inputActions.SaveBindingOverridesAsJson() != _baseBindingJson;
private void Awake()
{
_baseBindingJson = inputActions.SaveBindingOverridesAsJson();
}
public void ImplementSetting()
{
string currentBindings = inputActions.SaveBindingOverridesAsJson();
// 실제 파일로 저장 로직
_baseBindingJson = currentBindings;
}
public void RevertSetting()
{
inputActions.LoadBindingOverridesFromJson(_baseBindingJson);
}
public void ResetSetting(SystemData systemData)
{
inputActions.RemoveAllBindingOverrides();
_baseBindingJson = inputActions.SaveBindingOverridesAsJson();
}
}
여기서 _baseBindingJson 변수의 역할은 개별 UIRebindAction에서 (아래 참고) InputAction을 수정하면 SaveBindingOverridesAsJson()의 값도 달라질 것이기에 변경사항을 추적하는 역할을 합니다
'코드 및 공부 > 입력 관리' 카테고리의 다른 글
input system에서 리바인딩한 키세팅을 저장, 로드, 삭제하기 (0) | 2025.02.28 |
---|---|
커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system) (0) | 2025.02.25 |
화면 해상도 및 전체화면 여부 조절하기, Screen.SetResolution() (0) | 2025.02.04 |
방향키로 버튼간 이동(탐색) 하기, UI Navigation (0) | 2025.02.03 |
유니티 유용한 단축키 3가지 (0) | 2025.01.14 |