유니티 Unity 6

[유니티(Unity)] MissingReferenceException: the object of type 'GameObject' has been destroyed but you are still trying to access it. your script should either check if it is null or you should not destroy the object 에러 해결 방법

현재 접근하려는 오브젝트가 파괴되었는데 접근하려고 해서 참조할 수 없다는 에러 메시지다. 내 경우 문제가 발생한 배경은 다음과 같다. Awake에서 Destroy와 DontDestroyOnLoad를 활용해 데이터 저장 프리펩 오브젝트를 씬에 하나만 남겼고, 데이터 저장 시 애니메이션을 출력하기 위해 자식 오브젝트로 UI 오브젝트를 두었다. 데이터 저장 시 자식 오브젝트를 활성화하여 애니메이션을 출력하고, 애니메이션이 끝나면 자식 오브젝트를 비활성화한다. 데이터를 저장할 때마다 위 과정을 반복한다. 이를 위해 자식 오브젝트를 처음에는 public 오브젝트로 두고 인스펙터 창에서 연결해두었는데, 씬 전환 후 데이터를 저장하려고 하자 위 오류가 떴다. 파괴된 오브젝트의 참조를 갖고 있어서 문제가 생긴 것 같아..

유니티 Unity 2023.07.07

[유니티(Unity)] 유니티 허브(Unity Hub)에 유니티 버전 추가 설치/버전 변경

프로젝트를 진행할 때마다 팀원들과 유니티 버전을 통일한다. 따라서 매번 사용하는 유니티 버전이 달라지기 때문에 그때 그때 필요한 버전을 추가해서 사용한다. 예전에 버전을 하나 추가해뒀는데 이번에 다시 추가할 일이 생겨서 기록 겸 방법을 남겨둔다. 우선 유니티 다운로드 아카이브 사이트(https://unity3d.com/kr/get-unity/download/archive) 에 들어가서 추가로 설치할 버전 파일을 찾는다. 이번에 나는 2019.4.19f1을 설치해야 했기 때문에 해당 버전을 찾았고, 윈도우를 쓰기 때문에 다운로드(win)-Unity 에디터(64비트)를 선택해 유니티 셋업을 다운받았다. 참고로 내가 다운받은 버전의 유니티 셋업 용량은 1.63GB, 설치한 유니티 에디터 용량은 3.85GB 였..

유니티 Unity 2021.12.25

[유니티(Unity)] 하나의 프로젝트 파일에서 다른 프로젝트 파일로 씬(Scene)을 이동하고 싶은 경우

유니티에서 작업하다보면 A 프로젝트에 있는 씬을 B 프로젝트로 옮기고 싶은 상황이 발생한다. 같은 프로젝트 안에서는 씬, 오브젝트 등의 copy&paste가 가능하지만 서로 다른 프로젝트 간에는 복사 붙여넣기가 불가능하다. 이 경우 씬을 옮길 수 있는 방법은 옮기려는 씬을 패키지로 묶어 export한 후 다른 프로젝트에서 import하는 것이다. 우선 옮기려는 씬을 우클릭한 후 Export Package.... 를 선택한다. 그러면 오른쪽과 같은 창이 뜨는데, 이 씬에서 사용된 모든 에셋과 스크립트 등이 표시된다. 여기서 옮기고 싶은 요소들만 체크한 후 export를 누르면 패키지 저장 경로와 패키지 이름을 설정하는 창이 뜬다. 원하는 경로와 이름을 지정하고 패키지를 저장하면 된다. 이후 씬을 가져올 프..

유니티 Unity 2021.09.01

[유니티(Unity)] Couldn't create a Convex Mesh from source mesh "----" within the maximum polygons limit (256) 에러 해결법

유니티로 3D 게임을 만드는 경우 유니티 내의 에셋뿐만 아니라 외부의 3D 모델링도 가져와 사용하게 되는데, 이 모델링을 사용한 오브젝트에 mesh collider 컴포넌트를 추가해 사용하는 경우 종종 다음과 같은 에러가 발생한다. Couldn't create a Convex Mesh from source mesh "모델링 이름" within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) 이는 유니티의 maximum polygons limit을 넘은 복잡한 모델링의 mesh를 사용하..

유니티 Unity 2021.09.01

[유니티(Unity)] 프로젝트 기본 세팅 - (2) 사운드 (AudioSource, AudioListener), 음악 파일 기본 세팅(배경음악, 효과음)

1. 음악 재생을 위한 AudioSource와 AudioListener 게임에 삽입하는 음악은 크게 배경음악과 효과음으로 나눌 수 있다. 음악을 재생하기 위해서는 AudioSource 컴포넌트가 필요한데, 나는 주로 SoundManager라는 Empty object를 만들어놓고 하위 자식으로 각각 BGM/Effect이라는 오브젝트를 만들어 AudioSource 컴포넌트를 추가해두었다. AudioSource 하나로 관리해도 되지만 배경음악과 효과음이 동시에 재생될 일이 많고 볼륨 조절도 따로 하는 경우가 많기 때문에 둘은 분리하는 것이 낫다고 판단했다. 참고로 컴포넌트 추가는 오브젝트 선택 후 add component를 눌러 추가할 컴포넌트를 검색하면 된다. AudioSource는 CD 플레이어, Audi..

유니티 Unity 2021.09.01

[유니티(Unity)] 프로젝트 기본 세팅 - (1) sprite 이미지 기본 세팅, UI 기본 세팅, 폴더별 분류

방학마다 프로젝트를 하니까 그 사이에 너무 많은걸 까먹어서 그냥 블로그에 차근차근 기록하기로 했다. 하루에 하나씩 간단한 글을 올려도 좋을 거 같고 ... 천천히 수정하며 내용을 추가해도 좋을 것 같다. 프로젝트 기본 세팅 1. sprite 이미지 기본 세팅 투명도가 필요한 이미지나 (배경 투명화가 된 이미지) 픽셀아트의 경우 스프라이트 세팅을 해줘야 깨지지 않는다. 2. UI 기본 세팅 UI 오브젝트를 만들면 자동으로 Canvas가 생성된다. 웬만한 UI는 다 Canvas의 하위 오브젝트로 만들어 관리하는 것이 좋다. Font Size와 Rect Transform의 크기를 조정하지 않은 채로 Scale만 변경하면 글씨가 흐리게 깨져 보일 수 있으므로 주의하자. 3. 폴더별 분류 Assets 폴더 아래에..

유니티 Unity 2021.08.12