Rebind한 키세팅 저장/초기화/되돌리기

2025. 3. 18. 21:51·코드 및 공부/입력 관리

유니티 버전 - 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()의 값도 달라질 것이기에 변경사항을 추적하는 역할을 합니다

더보기

2025.02.25 - [코드 및 공부/입력 관리] - 커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system)

 

커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system)

유니티 버전 - 6000.0.37f1     목차들어가며Rebinding system     들어가며키를 리바인딩할 수 있다면, 다음과 같이 사용자가 직접 원하는 키세팅을 이용하여 동작을 수행하도록 하고, 사용자의

ekrxjvpvj0110.tistory.com

 

'코드 및 공부 > 입력 관리' 카테고리의 다른 글

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
'코드 및 공부/입력 관리' 카테고리의 다른 글
  • input system에서 리바인딩한 키세팅을 저장, 로드, 삭제하기
  • 커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system)
  • 화면 해상도 및 전체화면 여부 조절하기, Screen.SetResolution()
  • 방향키로 버튼간 이동(탐색) 하기, UI Navigation
ekrxjvpvj0110
ekrxjvpvj0110
유니티 개발 관련 자료
  • ekrxjvpvj0110
    ekrxjvpvj0110의 유니티 개발
    ekrxjvpvj0110
    • 전체 글 (75) N
      • 안드로이드 (1) N
        • 에셋 관리 (1) N
      • 코드 및 공부 (73)
        • 이론 (4)
        • 데이터 관리 (11)
        • 입력 관리 (9)
        • 최적화 (10)
        • UI (3)
        • 통신 (0)
        • 카메라 (3)
        • 오디오 (3)
        • 물리 (3)
        • 씬 (6)
        • 기타 (21)
        • 분류없음 (0)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
ekrxjvpvj0110
Rebind한 키세팅 저장/초기화/되돌리기
상단으로

티스토리툴바