Closed Budy123 closed 1 year ago
InputActionManager
[컴포넌트 이미지]
ToggleActionMap
InputActionMap map
InputActionMap
InputActions
InputActionManager.Instance.InputActions.UIBehaviour
map
DisableActionMap
RegisterCallback
InputAction action
InputActionManager.Instance.InputActions.Player.Move
Action<InputAction.CallbackContext> callback
bool isButton
Value Type
false
Button Type
true
action
callback
RemoveCallback
이외 예시가 필요하면 수정된 코드 확인. 참고로 InputActionMap마다 Callback을 등록하고 삭제할 때 다음 구조를 권장함.
// PlayerInputManager.cs private void OnEnable() { InputActionManager.Instance.RegisterCallback(InputActionManager.Instance.InputActions.Player.Move, OnMove); InputActionManager.Instance.RegisterCallback(InputActionManager.Instance.InputActions.Player.Dash, OnDash); InputActionManager.Instance.RegisterCallback(InputActionManager.Instance.InputActions.Player.BasicAttack, OnNormalAttack); InputActionManager.Instance.RegisterCallback(InputActionManager.Instance.InputActions.Player.SpecialAttack, OnSpecialAttack); InputActionManager.Instance.RegisterCallback(InputActionManager.Instance.InputActions.Player.ActiveSkill, OnSpecialMove); } private void OnDisable() { if(InputActionManager.Instance == null) { return; } InputActionManager.Instance.RemoveCallback(InputActionManager.Instance.InputActions.Player.Move, OnMove); InputActionManager.Instance.RemoveCallback(InputActionManager.Instance.InputActions.Player.Dash, OnDash); InputActionManager.Instance.RemoveCallback(InputActionManager.Instance.InputActions.Player.BasicAttack, OnNormalAttack); InputActionManager.Instance.RemoveCallback(InputActionManager.Instance.InputActions.Player.SpecialAttack, OnSpecialAttack); InputActionManager.Instance.RemoveCallback(InputActionManager.Instance.InputActions.Player.ActiveSkill, OnSpecialMove); }
사용법
InputActionManager
[컴포넌트 이미지]
ToggleActionMap
InputActionMap map
: 키게 될InputActionMap
. 주로InputActionManager
의InputActions
에 접근하여 구해서 넣으면 됨. ex )InputActionManager.Instance.InputActions.UIBehaviour
map
을 제외한InputActionMap
은 끄고map
만을 킴DisableActionMap
InputActionMap
을 끔RegisterCallback
InputAction action
: 실행할 액션.InputActions
을 통해InputActionMap
에서 접근. ex )InputActionManager.Instance.InputActions.Player.Move
Action<InputAction.CallbackContext> callback
: Action이 발생할 때 실행될 Callback 함수.bool isButton
: 해당 InputAction이Value Type
일 경우false
,Button Type
일 경우true
;action
이 동작할 때 실행될callback
을 등록하는 메소드.RemoveCallback
InputAction action
: 실행할 액션.InputActions
을 통해InputActionMap
에서 접근. ex )InputActionManager.Instance.InputActions.Player.Move
Action<InputAction.CallbackContext> callback
: Action이 발생할 때 실행될 Callback 함수.bool isButton
: 해당 InputAction이Value Type
일 경우false
,Button Type
일 경우true
;action
이 동작할 때 실행될callback
을 제거하는 메소드.이외 예시가 필요하면 수정된 코드 확인. 참고로 InputActionMap마다 Callback을 등록하고 삭제할 때 다음 구조를 권장함.