InputSystem
이번 팀 프로젝트는 미니게임천국을 바탕으로 만든 게임이어서 각 Scnene마다 Player의 필요한 입력 처리가 제각각이다
예를들면 어느 미니게임에서는 공격이 필요하지만 다른 미니게임에서는 공격할 필요가 없는 게임들이 있다
하지만 Player의 입력 처리는 공유되므로 공격이 필요없는 미니게임에서 공격 버튼을 누르면 공격을 하는 애니메이션이 저장된다
이를 막기 위해 Player의 InputSystem -> ActionMaps -> Actions 값을 활성화 혹은 비활성화를 따로 진행하여 각 게임마다 입력값을 분리시켰다
public void EnableActions(params InputActions[] actionNames)
{
Input.OnDisable();
foreach (InputActions actionName in actionNames)
{
InputAction action = Input.InputActions.FindAction(actionName.ToString());
if (action != null)
action.Enable();
else
Debug.LogError($"{action} 는 존재하지 않습니다.");
}
}
params
: 가변 길이의 매개변수 배열을 받을 수 있게 해준다 즉, 메서드를 호출할 때 배열을 만들지 않고 여러 값을 전달할 수 있도록 해준다 (단, 1차원 배열만 사용할 수 있다)
장점은 코드의 가독성을 향상시키고 메서드 호출을 더 간편하게 만들어준다
단점은 배열이 내부적으로 생성되므로 메모리 할당이 발생하여 이를 반복 호출하는 상황에서는 성능에 영향을 줄 수 있다
위에서 각 게임마다 필요한 입력의 개수가 전부 달라서 어떻게 매개변수로 넣어주면 좋을까 생각하다가 찾아낸 키워드이다
하지만 자주 사용하지는 않을 것 같다..아무래도 메모리와 성능이 중요한 게임에서는 적합하지 않은 것 같다
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 _ Unity 저작권 (0) | 2023.10.20 |
---|---|
[TIL] 내일배움캠프_Unity 디버깅 (0) | 2023.10.20 |
[TIL] 내일배움캠프_Unity Preab Variants, GameObject Pivot 변경 (0) | 2023.10.17 |
[TIL] 내일배움캠프_Unity 빌더패턴 (0) | 2023.10.16 |
[TIL] 내일배움캠프_Unity 피보나치 수열 (0) | 2023.10.14 |