내가 일하며 알게 된 프로그래밍
article thumbnail
함수 생명 주기(Life Cycle)와 FixedUpdate
프로그래밍/Unity3D 2024. 1. 9. 22:19

유니티에서는 특정한 순서대로 실행되는 함수들이 있다. 이러한 함수를 통해서 게임 오브젝트의 초기화, 업데이트, 렌더링 등의 작업이 이루어지는데 이를 통틀어 함수 생명 주기 라고 한다 이벤트 함수의 실행 순서 - Unity 매뉴얼 Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다. docs.unity3d.com 유니티 엔진의 기초적인 부분이지만 그 중 Update, FixedUpdate, LateUpdate에 대해 설명을 해보려고 한다. 그림상으로 보았을 때 FixedUpdate -> Update -> LateUpdate 순으로 동작하는 것 같지만 Physics 부분에서 가장 ..

article thumbnail
Unity - 터널링 현상 (Tunnelling)
프로그래밍/Unity3D 2023. 12. 22. 18:34

유니티 터널링 (Tunnelling) 현상이란 충돌 처리가 필요한 게임 오브젝트가 다른 충돌체를 뚫고 지나가는 현상을 말한다. 터널링이 발생하는 이유는 프레임 드랍 현상이나 물체가 너무 빨리 움직이는 이유 등으로 충돌 처리가 제대로 이루어지지 않으면 발생할 수 있다 프레임 드랍과 이벤트 함수 호출 주기 유니티의 Update의 호출 간격은 일정하지 않기때문에 void Update() { transform.position += (Direction) * moveSpeed * Time.deltaTime; } 위처럼 Update 함수에서 물체를 움직이게 되면 Time.deltaTime의 시간이 프레임에 따라 변동됨으로 의도한 일정한 moveSpeed 만큼의 이동이 이루어지지 않을 수 있다. 따라서 일정한 비율만큼..

article thumbnail
Unity - 가비지 컬렉터 (Garbage Collector)
프로그래밍/Unity3D 2023. 10. 24. 21:25

가비지 컬렉터란? 메모리 관리 기법 중의 하나로, 동적으로 할당한 메모리 영역 중 더 이상 쓰이지 않는 영역을 찾아내어 해제하는 기능. (이하 GC) C 혹은 C++ 에서 할당과 해제를 직접하는 언어들도 있지만 항상 사람은 실수를 하기 마련이기에, 해제를 하지않거나 혹은 해제된 메모리를 사용하면서 문제가 발생하기에 프로그래밍 언어가 직접 메모리 해제를 관리하는 기능이다. 유니티는 C#의 GC와 기본적으로 비슷하지만 몇가지 차이가 있다. 유니티 GC Doc 가비지 컬렉터 개요 - Unity 매뉴얼 Unity에서는 가비지 컬렉터를 사용하여 애플리케이션과 Unity에서 더 이상 사용하지 않는 오브젝트로부터 메모리를 회수합니다. 스크립트가 관리되는 힙에 할당하려고 하지만 할당을 수용할 수 docs.unity3d..

article thumbnail
도트를 더욱 이쁘게? XBR Shader 소개합니다
프로그래밍/ETC 2023. 9. 18. 22:43

XBR는 텍스처 스케일링 및 업샘플링 기술에 대한 쉐이더지만 주로 픽셀아트형 게임의 그래픽을 개선하는데 주로 사용된다. XBR 쉐이더의 기본 이해는 각 픽셀의 주변 픽셀 값을 분석하여 보간을 하는 작업이 이루어지는 쉐이더입니다. 던파모바일에서 보여주듯 주변 픽셀의 계산을 얼마나 할지에 대한 차이에따라 선명도차이가 극명하게 나타난다 https://docs.libretro.com/shader/xbr/ xbr - Libretro Docs xbr Background Preview Image External Links Last update: 2023-09-03 docs.libretro.com Libretro 라는 개발자가 설명하는 XBR 쉐이더의 적용법에 따르면 같은 이미지지만 다른 느낌으로 표현할 수 있는 모습..

article thumbnail
유니티 콘솔 로그를 이쁘게 만들자
프로그래밍/Unity3D 2020. 6. 2. 23:53

모든 개발자는 Log 없이 개발을 할 수 없다. (할 수 있는 천재가 있을 수도... 하지만 난 아니다) printf(), Console.WriteLine(), Logger.debug() 등 언어에 따른 로그를 찍는 방법이 많이 있고, 유니티에도 Debug.Log() 를 통해 로그를 찍어볼 수 있다. 많은 개발자가 알고 있다. 하지만 대부분 일반적으로 로그를 그냥 평범한 텍스트형태로 출력할 것이다. 이번에 사용해 볼 디버그 로그 사용 방법은 UGUI에서 사용하는 RichText 사용법과 동일하다. 위 Text에 사용된 문자열들 처럼 이번 로그는 볼드다 이번 로그는 이탤릭다 이번 로그는 사이즈다 이번 로그는 컬러다 위 텍스트들을 그대로 Debug.Log(string value)로 넣어보자. void Sta..

article thumbnail
Unity3D 개발을 시작 할 때
프로그래밍/Unity3D 2020. 5. 21. 00:42

Unity3D는 Windows, Mac, 모바일, Web 등 여러 종류의 플랫폼을 지원하는 게임엔진이다. 하지만 기술이 발전함에 따라 유니티도 발전했다. 오늘날에 유니티는 VR, AR, 건축 시각화, 실시간 3D 애니메이션, 비쥬얼 미디어효과 등 기타 인터렉티브 컨텐츠를 제작하기 위한 통합도구로 발전했다. 프로그래밍에 통달하지 않아도 간단한 프로그램을 만들어 낼 수 있을 만큼 초보난이도 부터 프로그래밍을 할 줄 안다면 더욱 더 완성도 있는 컨텐츠를 제작할 수 있는 고급난이도까지 준비되어있다. 유니티의 기본 프로그래밍언어는 C#, JS(자바스크립트), Boo 코드로 작성할 수 있으며, 엔진의 런타임부분은 C++과 .NET Framework 로 개발되었다. 우리나라에서 유니티 엔진을 사용하는 게임회사들이 많..