//코드 일부를 가져왔습니다.
private InputActionAsset inputActions;
inputActions = GetComponent<InputActionAsset>();
해당 코드는 InputSystem 패키지를 이용하기 위해 스크립트 에서 InputActionAsset을 호출하는 코드이지만
계속 Null이 들어와 코드가 동작하지 않았다.
그래서 구글링 해보고 찾았는데 원인을 찾았다.
원인은 InputActionAsset이 컴포넌트가 아닌 ScriptableObject로 관리되기 때문이다.
ScriptableObject는 게임오브젝트에 컴포넌트로 추가될수 없다는 특성을 가지고있다.
그러기 때문에 PlayerInput 컴포넌트에 등록되있는 InputActionAsset을 호출해서 쓸 수 없던것이다.
그럼 어떡해 호출해야되는것인가?
1. Inspector에서 직접 등록해서 쓰는 방법
2. InputActionAsset 이 아닌 PlayerInput 컴포넌트를 호출하는 방법
private PlayerInput playerInput;
private InputActionAsset inputActions;
void Awake()
{
playerInput = GetComponent<PlayerInput>();
inputActions = playerInput.actions;
}
이렇게 playerInput을 컴포넌트로 호출해서 사용하면된다.
'Unity' 카테고리의 다른 글
Unity :: 비트연산자와 레이어마스크 (0) | 2024.10.14 |
---|---|
Unity :: StringToHash 메서드 사용하기(애니메이터 컨트롤러) (0) | 2024.10.14 |
Unity :: ScriptableObject(스크립타블오브젝트) (0) | 2024.10.09 |
Unity :: 오일러각 vs 쿼터니언 , 쿼터니언과 벡터 곱셈 (0) | 2024.10.08 |
Unity :: Unity 입력처리, InputManager vs InputSystem (0) | 2024.10.07 |