Engine/Unity 78

[Unity] GameObject.FindGameObjectWithTag() 빠르지만 안 쓰는 이유

Unity 버전 : 2021.3.8f1 LTS Tag 는 매우 유용한 식별자이긴 하다. tag가 빠른 이유는 내부적으로 문자열을 숫자 형태로 변환해 태그 비교 속도를 향상시키기 때문이다. - 책 [유니티 C# 스크립팅 마스터하기] 중 그러나 Tag를 잘 쓰지 않는 이유는 분명하다. 아래와 같이 모니터 화면 안에 다 보이면 좋지만, 게임을 개발하다 보면 자꾸 tag 추가해야 해서 리스트를 스크롤 해야 되는 상황이 생긴다. 따라서 tag는 꼭 필요한 곳에서만 쓰는 것이 좋다. 아래 OnTriggerEnter()와 같이 특정 유니티 이벤트 함수에서 특정 물체와 충돌했는지 판단할 때 tag가 쓰일 수 있다. private void OnTriggerEnter2D(Collider2D collision) { if (..

Engine/Unity 2022.09.15

[Unity] private 변수를 에디터 인스펙터 상에서 보려면 (디버깅 용)

Unity version : 2021.3.8f1 LTS private 으로 설정된 변수를 유니티 인스펙터 상에서 볼 수 있는 방법이 있다. 간단히 인스펙터 상에서 메뉴를 선택하면 된다. 오른쪽 상단의 버튼을 클릭하면 메뉴가 열린다. Normal로 체크 되어 있는 것을 Debug로 변경한다. 그러면 아래와 같이 private을 포함한 모든 변수들이 인스펙터 상에 표시된다.

Engine/Unity 2022.09.15

[Unity] SendMessage(), BroadcastMessage() 안 쓰는 이유

유니티 공식 스크립팅 API에 따르면, 아래와 같은 코드로 SendMessage()를 활용하고 있다. 무척 유용해 보이지만 성능 상의 이유로 잘 쓰지 않는다. using UnityEngine; public class Example : MonoBehaviour { void Start() { // Calls the function ApplyDamage with a value of 5 // Every script attached to the game object // that has an ApplyDamage function will be called. gameObject.SendMessage("ApplyDamage", 5.0); } } public class Example2 : MonoBehaviour { ..

Engine/Unity 2022.09.15

Unity & C# 코딩 컨벤션이 고민 된다면

프로젝트 마다, 팀 마다, 회사 마다, 개인 마다 코딩 컨벤션이 다 다르다. 코딩 컨벤션은 취향 차이라기 보다 통일된 혹은 일관된 코딩 스타일 가이드라고 보는 것이 좋겠다. 참고할 만한 유니티와 C# 코딩 컨벤션이 있었다. https://avangarde-software.com/unity-coding-guidelines-basic-best-practices/ [Unity] Coding guidelines & Basic Best Practices - Avangarde-Software Have you ever wondered how a company organizes its code? Look no further, because here lie all your answers. This is a basic s..

Engine/Unity 2022.07.13

[Unity 2021.3.2f1 LTS] 못 보던 프로젝트 템플릿이 생기다!

유니티 비교적 최신 버전 중 LTS로 프로젝트 새로 생성하려고 하니까 이런 여러 템플릿들이 존재한다. 원하는 템플릿을 선택해서 다운로드 받을 수 있는 형식이다. 점점 언리얼 엔진을 닮아가는 유니티. 참고로 이 Third Person 템플릿은 에셋스토어에서도 다운로드 받을 수 있다. https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526 Starter Assets - Third Person Character Controller | Unity 필수에셋 | Unity Asset Store Get the Starter Assets - Third Person Character Con..

Engine/Unity 2022.07.13

요즘 유니티 엔진 에셋스토어 수준

나는 또 이렇게 장바구니에 하나씩 담게 되고, 내 통장은 텅텅 비게 되고. 정말 오랜만에 에셋스토어를 둘러보니까 실사 그래픽 에셋들의 양이 굉장히 많아졌고 퀄리티도 많이 올라갔더라. HDRP를 사용해 보진 않았는데 이번 기회에 에셋 구매해서 뜯어봐야 할듯 하다. https://youtu.be/mb4gEURu7aQ https://assetstore.unity.com/packages/3d/environments/urban/hdrp-abandoned-factory-buildings-day-night-scene-164492 [HDRP] Abandoned Factory Buildings - Day/Night Scene | 3D 도시 | Unity Asset Store Elevate your workflow wit..

Engine/Unity 2022.07.11

Unity AR Template 내용 상세

유니티 버전이 올라가면서 이제는 새로운 프로젝트 생성할 때 템플릿이라는 개념이 새로 생겼다. 아마도 템플릿은 생긴지는 꽤 오래된거 같은데 점점 언리얼 엔진을 닮아간다. AR 템플릿을 선택하면 다른 템플릿과 다른 점은 기본적으로 포함되는 패키지들이다. 그리고 프로젝트 생성 완료되면 Hierarchy에 자동으로 필요한 게임오브젝트들이 붙어있다. Unity AR Foundation 샘플 프로젝트는 아래 링크에서 확인할 수 있다. https://github.com/Unity-Technologies/arfoundation-samples GitHub - Unity-Technologies/arfoundation-samples: Example content for Unity projects based on AR Fou..

Engine/Unity 2022.06.26

[Unity 2021.3.3f1 LTS] A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.

유니티 2021로 업그레이드 하면 메모리 릭이 발생한다고 에러 메시지가 표시된다. 메모리 릭은 잡는 것이 맞겠지만, 이를 콘솔 창에 표시하지 않도록 하고 싶다면 아래와 같이 설정한다. "A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details." Package Manager => + 버튼 클릭 => add package by name => "com.unity.jobs" 입력 => add 버튼 클릭해서 설치 설치가 완료되면 유니티 에디터 상단 메뉴에 Jobs 라는 메뉴가 새롭게 생성된다. Jobs => Leak Detection => Off 로 설정하면 더 이..

Engine/Unity 2022.05.21

[Unity 2021.3.3f1 LTS] Play 버튼을 클릭하면 reload 없이 바로 재생되도록 하는 옵션

유니티 2021 버전부터 게임 재생 버튼을 클릭하면 바로 재생되지 않고 "reload script assembly" 와 같은 로딩 창이 뜨고 나서 한참 뒤에 게임이 재생되도록 디폴트로 설정이 되어 있는데요. 이전 버전과 같이 바로 재생되도록 하기 위해서 아래와 같은 설정이 필요합니다. Project Settings => Editor => Enter Play Mode Options 체크 (활성화) Reload Domain 체크 해제 (비활성화) 유니티 공식 문서에는 Domain Reload에 대해 다음과 같이 명시되어 있습니다. Domain Reloading resets your scripting state, and is enabled by default. It provides you with a comp..

Engine/Unity 2022.05.21