KoreanFoodie's Study

모바일 빌드시, Input.GetTouch(0) 사용법 : argumentexception: index out of bounds 해결법 본문

Game Dev/Unity : Study

모바일 빌드시, Input.GetTouch(0) 사용법 : argumentexception: index out of bounds 해결법

GoldGiver 2022. 7. 8. 11:55

유니티 공부 노트

Touch Input 이용시 에러?

분명히 에디터에서는 마우스 클릭 입력으로 잘 동작했는데, 모바일로 빌드하니 제대로 작동을 하지 않아 원인을 파악하던 중, Input 관련에 문제가 있다는 것을 알게 되었다.

index out of bounds 에러가 왜 뜨지?

기존에는 터치 입력을 다음과 같이 구현했었는데... (후략)

if (Input.GetTouch(0).phase == TouchPhase.Began)
{
    JumpButtonPressed();
}

근데 이 경우, argumentexception: index out of bounds 에러가 발생했었다. 이는 터치 자체가 없는데, Input 에서 Touch 의 첫번째 인덱스를 가져오려 해서 생긴 문제였다.

 

따라서 다음과 같이 간단히, Touch 배열이 비어있지 않은지 체크해주기만 하면 된다!

if (Input.touchCount > 0)
{
    if (Input.GetTouch(0).phase == TouchPhase.Began)
    {
        JumpButtonPressed();
    }
}

 

이 간단한 에러로 몇시간을 날렸는지... 모바일 터치 인풋 문제인지 모르고 물리 쪽 코드만 엄청 수정했는데, 이래서 경험이 참 중요한 것 같다. 기록도.

Comments