스파르타 메타버스 만들기 트러블 슈팅
스파르타 메타버스 만들기 프로젝트를 진행하며 있었던 문제점과 어떤 시도를 하였고, 어떻게 해결하였는 가?
유니티 개발환경과 프로젝트들을 외장SSD에 저장해놓았는데, 외장SSD의 문제가 생겼다.
개발을 하면서 가장 오래 시간을 사용했다. 외장SSD에 저장된 파일들이 많아서 용량이 매우 크기도 했고, 구글링이나 챗gpt를 통해서도 방법을 찾을 수 없었기 때문이다.
가장 먼저 이 문제의 원인은 외장SSD를 사용하고나서, 컴퓨터로부터 제거할 때 이를 안전하게 제거하지 않았기 때문에 발생한다. 
윈도우10을 기준으로, 외장SSD의 사용을 끝낸 후 위 아이콘을 작업표시줄의 도구모음에서 찾은 뒤 이를 안전하게 제거해야 한다.
외장SSD를 쓰다가 함부로 이를 컴퓨터에서 제거하면, 문제가 잘 생기지는 않지만 문제가 생기면 상당히 골치아파진다.
처음에 이 문제는 유니티 허브는 열 수 있었으나, 문제가 되는 해당 SSD에 프로젝트를 생성하거나 프로젝트를 여는데 문제가 있었다. 해당 문제를 가진 SSD에 프로젝트를 생성하거나 수정하려하면 "Project folder is read only - Please move project somewhere readable and writable." 라는 에러가 발생하며 프로젝트를 열거나 수정하는 것이 불가능하다.
유니티 허브 관리자 권한으로 실행
이 경우 당장의 문제는 해결할 수 있었으나, 유니티를 열때마다 경고 팝업이 생성된다.

해당 에러는 일부 게시글에서 윈도우 옵션 중 하나인 '사용자 계정 컨트롤 설정' 을 변경하면 문제가 발생하지 않는다고 하였으나 내 경우에는 문제가 해결되지 않았다. 따라서 이는 완전한 문제해결이라고 보기 어려웠다.
폴더들의 읽기권한 해제 후 접근권한 부여
윈도우 10에는 폴더를 우클릭 후 속성을 열어보면 해당 폴더들에 읽기전용이라는 옵션이 있는 것을 확인할 수 있다. 현재 나의 문제가 폴더들에 읽기권한만 있고, 쓰기 권한이 없기 때문에 생기는 문제라는 생각이 들어 이를 수정하여 보았다.

옵션변경에 해당하는 폴더들은 유니티 에디터를 저장해놓은 폴더들과 프로젝트를 저장해놓은 폴더들이다.
결과적으로는 실패했다. 사유는, 해당 폴더들의 읽기전용 옵션을 시간을 들여 해제하는 것을 시도해도 옵션이 변경되지 않았다. 해당 문제로 나는 결국 SSD안의 내용물을 백업한 뒤 포맷시킬 수 밖에 없었다. 또한, 개발환경을 외장SSD와 같이 불안전한 공간에 두지않고 개발환경은 로컬환경에두고 프로젝트 폴더만 외장SSD에 옮겨담는 형식으로 작업하게 되었다.
NPC와 접촉 중에 E키를 눌러 미니게임에 진입하는 로직을 쓸 때, OnTriggerStay2D를 사용하였는데 플레이어가 완전히 정지하고 E를 누르면, 그 다음 플레이어가 움직여야 게임에 진입함.
이 문제의 원인은 생각보다 간단했다. 유니티의 최적화 문제로, RigidBody는 항상 활성화 되어있는 상태가 아니다. RigidBody의 transform이 변하지 않을 때 SleepingMode의 값에 따라 비활성화되는데 이 문제로 인하여 Player가 정지상태일때 OnTriggerStay에 지속적인 충돌을 탐지하지 못한다.

Player의 Rigidbody의 SleepingMode를 Never Sleep으로 변경한다.
유니티에서 SleepingMode를 만들정도로 Rigidbody에 상당한 리소스가 필요하다면, 위와같은 해결방법은 항상 좋은 방법은 아닐 것이다.
만약, 리소스가 중요한 상황이라면 이를 코루틴을 통해 해결할 수 있을 것이다. 충돌이 감지된 순간부터, 코루틴함수를 호출하여 반복시키고 TriggerExit가 되면 코루틴함수를 종료시키는 것이다.