OnValidate 이슈
문제: 게임을 만들고 모바일 빌드를 해보니 스킬 업그레이드 부분만 제대로 작동하지 않는 것을 확인
원인: OnValidate에서 너무 많은 작업을 진행했기 때문에 일어난 문제였다.
설명:
OnValidate는 유니티에서만 실행되는 에디터 함수이고, 나는 지금까지 OnValidate에서 할당해 준 것들은 직접 손으로 끌어서 할당해준 것과 같은 취급을 받는다고 이해하고 있었음.OnValidate에서 GetComponent로 에디터에 있는 게임 오브젝트의 컴포넌트를 찾아오는 것은 문제가 되지 않지만, 플레이를 할 때 세팅되어야 하는 것까지 OnValidate에서 세팅해준다면 문제가 발생할 수 있다는 튜터님의 피드백을 받았다.해결 방법: OnValidate에서 처리해주던 코드 몇가지를 Start로 옮겨주니 빌드 시에도 제대로 작동하는 것을 확인!
수정 전 코드

수정 후 코드


OnValidate가 에디터 함수라는 것은 알았지만 지금까지 그게 어떤 오류를 일으킬 수 있는지에 대해서는 잘 모르고 사용한 것 같다.