게임 클라이언트 개발/Unity
-
Animation Missing! 해결법게임 클라이언트 개발/Unity 2024. 4. 12. 20:04
유니티로 개발을 하면 Hierarchy 구조에 대해 많이 익숙할 것이다. 그리고 애니메이션을 제작할 때도 해당 Hierarchy 구조를 이용하여 각 오브젝트의 여러 Property를 설정하여 애니메이션 클립을 생성한다. MakeDNF 프로젝트에서도 2.5D를 위한 DNFTransform 컴포넌트를 구현하기 위해 Hierarchy 구조를 사용했었다. 하지만 DNFTransform 컴포넌트 최적화 과정에서 Hierarchy 구조를 수정하게 되었다. 구조를 수정한 이후, 애니메이션에 Missing!이란 문구와 함께 애니메이션 클립이 정상적으로 작동하지 않는 문제가 발생했다. 해당 문구는 오브젝트의 Hierarchy 구조에서 각 컴포넌트를 찾지 못했기 때문에 발생하는 문제로, 이전에는 문제가 있는 Propert..
-
플레이어 시야 FOV 구현게임 클라이언트 개발/Unity 2023. 12. 13. 20:27
Unity로 탑 뷰 형식의 게임을 제작할 때 플레이어의 시야를 제한하여 게임의 긴장도를 줄 수 있다. 어몽어스와 같은 마피아 게임 장르인 Interactopia 프로젝트를 진행할 때, 플레이어의 시야를 제한하기 위해 FOV를 구현했던 과정을 작성하고자 한다. https://github.com/woghrk12/FOV2D.git GitHub - woghrk12/FOV2D Contribute to woghrk12/FOV2D development by creating an account on GitHub. github.com Light 2D 가장 빠르게 시야를 구현할 수 있는 방법으론 Light 2D Component를 활용하는 것이다. Point Light를 캐릭터의 위치로 고정하고 벽에 Shadow Cast..
-
길찾기 알고리즘과 최적화게임 클라이언트 개발/Unity 2023. 11. 27. 22:33
Unity를 활용하여 AI나 자동으로 길을 찾는 기능을 구현할 경우, 3D는 Nav Mesh Component를 활용하면 된다. 직접 구현하는 것보단 해당 Component를 쓰는 것이 웬만해선 훨씬 빠르고 최적화가 잘 되어있다. 다만 2D를 개발하는 경우 해당 Component를 사용할 수 없어 길 찾기 알고리즘을 직접 개발해야 한다. 이에 길 찾기 알고리즘에 대해 알아보고 최적화하는 과정을 작성하고자 한다. 구현한 알고리즘의 코드는 깃허브에서 확인할 수 있다. https://github.com/woghrk12/AStarAlgorithm.git GitHub - woghrk12/AStarAlgorithm Contribute to woghrk12/AStarAlgorithm development by cre..
-
UGUI의 성능 최적화게임 클라이언트 개발/Unity 2023. 11. 8. 00:38
여러 장르의 게임이 존재하지만, 공통적으로 제일 중요한 부분은 사용자 인터페이스를 맡고 있는 UI일 것이다. UI는 사용자와 어떻게 상호작용을 할 것인지도 중요하지만 Unity Profiler에선 UI만 따로 볼 수 있을 정도로 UI의 성능 또한 매우 중요하다. Unity의 UI를 담당하는 Component 중 가장 기본적인 Component는 Canvas일 것이다. Canvas의 Render Mode는 Screen Space - Overlay, Screen Space - Camera, World Space 총 세 가지가 존재하며 이번 UGUI의 성능 최적화는 Screen Space - Overlay 최적화를 목표로 한다. 출처 : Unity Korea 공식 유튜브 https://www.youtube.c..
-
Unity 스크립트 최적화게임 클라이언트 개발/Unity 2023. 11. 7. 01:07
유니티에서 사용하는 C#은 프로그래머가 직접 메모리를 해제하는 C++과 달리 메모리 해제를 Garbage Collector(통칭 GC)에 의해 수행된다. GC의 메모리 해제 로직(Mark and Sweep)은 프로파일러를 확인해보면 일정 주기마다 이루어지는데 이때 해제해야 하는 메모리가 많다면 성능에 영향을 주는데 이를 Spark 현상이라고 한다. 이런 스파크 현상이 많다면 게임이 뚝뚝 끊기는 현상이 발생하여 게임 플레이에 지장을 준다. 이번 스크립트 최적화에선 GC 최적화를 주로 목표로 하며 이외의 최적화 방법도 소개한다. GetComponent, Find 사용 줄이기 GetComponent, Find, FindObjectOfType 등의 함수는 Hierarchy 내에 오브젝트를 탐색하기에 비용이 비싸..