본문 바로가기

Unity Engine

(18)
유니티 Terrain Sample Asset Pack 셰이더 오류 해결 에셋 스토어에서 유니티 공식으로 제공하는 지형 에셋인 Terrain Sample Asset Pack이 있다. 다양한 브러시나 각종 머티리얼을 제공하여 지형을 더 멋지게 만들 수 있도록 해준다. 하지만... 식물 프리팹을 쓰려고 하면 이렇게 충격적인 분홍색이 우리를 반겨준다. 이 문제를 해결해보도록 하자. 직접 수정하기 분홍색이 나오는 이유는 유니티에서 셰이더에 오류가 있을 때 나오는 기본 색이다. 오류가 나오는 이유 중 하나는 에셋이 URP나 HDRP를 쓰고 있는데 우리 프로젝트는 그렇지 않고 기본 렌더링 파이프를 쓸 때 호환이 맞지 않아서다. 따라서 우리는 프로젝트를 HDRP로 올려주거나 에셋의 렌더링 파이프를 빌트인 수준으로 내리는 작업을 해야 한다. 여기서는 재작업을 통해 에셋을 살려보겠다. 머티리..
유니티 Raycast로 3D 오브젝트 클릭과 드래그 https://github.com/nicotina04/UnityDrag3DObject GitHub - nicotina04/UnityDrag3DObject: An implementation of dragging object and it's example An implementation of dragging object and it's example - GitHub - nicotina04/UnityDrag3DObject: An implementation of dragging object and it's example github.com 이번 포스팅에서는 씬에 존재하는 3D 오브젝트를 마우스로 클릭, 그리고 드래그하는 방법을 알아본다. 그전에 어떻게 마우스의 입력이 게임 내의 오브젝트와 상호작용할 수 있는지 ..
유니티 Procedural Cave Gerneration 랜덤 동굴 생성 1 유니티 버전 2021.3.9f1 들어가기 전 참고 이 포스트는 아래의 동영상의 내용을 한국어로 재구성한 자료이다. 어느 정도 영어 청취가 가능하다면 동영상을 봐도 좋다. https://youtu.be/v7yyZZjF1z4 이 포스트는 유니티 엔진에서 셀룰러 오토마타 기반으로 동굴 지형을 생성하는 cave generation을 다룰 것이다. 에피소드 1에서는 직접 동굴을 만들기 전 기즈모를 이용해 대략적인 모습을 보여주는 것을 목표로 한다. 필요 변수 세팅 필요한 변수는 다음과 같다. int width, height: 맵의 너비와 높이다. bool useRandomSeed: 랜덤에 시드를 직접 부여할지 안 할지 고르는 변수다. int randomFillPercent: 초기에 맵을 위와 같은 흑색을 어느 정..
Memory Management in Unity 유니티 메모리 관리 번역 이 포스트는 유니티 튜토리얼을 번역한 것이다. 매끄럽지 않은 번역이나 오역이 있을 수 있음에 유의하고 충분한 영어 독해가 가능하면 원본을 보면 좋다. 여담이지만 원문에도 어색한 맥락이 있는데 이 포스트에도 그런 느낌이 있다면 그것은 그 맥락을 그대로 옮겨서 그런 것이니 이를 참고하면 좋겠다. 만약 오류가 명백히 보인다면 제보해주면 감사하게 반영하겠다. 참고: 2019년 3월 6일 자 버전을 번역했다. 요약 유니티 엔진에서 적절한 메모리 관리는 도전적인 일이 될 수 있다. 이 가이드에서는 공개적으로 사용 가능한 플랫폼(publicly available platform)에서 메모리 사용을 프로파일, 최적화하는 필수 지식을 습득하는 것을 목표로 한다. 1. A guide to optimizing Memory ..
유니티 Fog of War 전장의 안개 구현하기 이 포스트에서는 아래의 저장소 소스코드를 토대로 통해 전장의 안개를 구현하는 한 가지 방법을 제시한다. https://github.com/LeLocTai/Fog-of-war GitHub - LeLocTai/Fog-of-war Contribute to LeLocTai/Fog-of-war development by creating an account on GitHub. github.com 필요 지식 이 포스트를 읽기 전에 Field Of View를 구현하는 방법을 알고 있어야 한다. 위의 저장소가 Field Of View 구현을 기반으로 안개를 구현하고 있기 때문이다. 아래 시리즈를 보지 않았으면 먼저 공부하도록 한다. https://nicotina04.tistory.com/197 https://nicoti..