Unity 10

Rotation 파고들기

로테이션이란?오브젝트가 3D공간 안에서 어떤 방향을 바라보고 있는지를 의미합니다.로테이션은 내부적으로 쿼터니언으로 저장되며 클라이언트가 다룰땐 보통 오일러 각도를 다루게 됩니다. 쿼터니언은 뭔가요?로테이션 처럼 3D 공간에서 회전을 표현하는 방법중 하나이며 XYZW 로 구성되어 있습니다. 왜 쿼터니언 개념이 필요한가요?유니티는 오일러 각 만 사용할 경우 다음과 같은 문제가 발생될 수 있습니다.첫째로 짐벌락, 두번째 부드러운 회전, 세번째 회전합성의 문제점이 있습니다.이러한 문제를 쿼터니언을 활용해 회전을 매끄럽고 안전하게 사용할 수 있습니다. 오일러를 활용한 회전시 짐벌락 현상이 왜 발생되나요?오일러 회전의 경우 X > Y > Z 순으로 하나씩 차례대로 회전시키는 방식입니다.이러한 과정은 각 회전이 ..

Unity 2025.04.19

RectTransform 파고들기

RT 란 뭔가요?UI 요소 전용의 트랜스폼 컴포넌트 입니다.일반적으로 게임오브젝트의 위치, 회전, 크기를 제어할때 Transform 컴포넌트를 활용합니다.하지만 UI요소는 Transform만으로는 부족하며단순한 위치 뿐만 아니라 부모 대비 상대적위치, 크기, 앵커와 피벗 기반 정렬을 추가적으로 다루기 위해 RT가 필요합니다.RT는 기본적으로 Transform의 기능을 그대로 가지고 있으며 추가적으로 사각형 형태의 영역정보를 관리합니다. RT 왜 필요한가요?UI요소는 해상도가 달라지거나, 비율이 달라진다면 자동으로 반영되어야 합니다.Transform 만으로는 이를 대응하기 쉽지 않으며 상대적 위치를 활용해 이에 대비할 수 있습니다. AnchoredPosition이란 무엇인가요?부모 기준으로 가지는 상대..

Unity 2025.04.19

유니티 라이프사이클

유니티에서 MonoBehaviour 로 상속받은 스크립트는 특정한 흐름에 따라 호출되는 생명주기를 갖는다.이 흐름을 이해하면 코드의 실행시점을 제어 할 수 있고, 이는 최적화 또는 디버깅에 큰 도움이 된다. 대표적인 유니티 라이프사이클은초기화 단계의 Awake, OnEnable, Start 게임 루트 실행단계로 Update, LateUpdate, Fixed Update 가 있다. Awake스크립트의 인스턴스가 생성되자마자 호출되며 이는 하이어라키 내에 비활성화된 오브젝트여도 호출된다.주로 다른 오브젝트 참조를 가져오거나, 싱글톤의 초기화 같은 작업에 사용된다. OnEnable오브젝트가 활성화 될때마다 호출되는 특징이 있으며오브젝트 풀로부터 활성, 비활성화가 빈번하게 일어나는 객체의 변수 초기화 작업에 유..

Unity 2025.04.15

Unity Job System

Job System 은 멀티 스레딩을 쉽게 활용할 수 있게 도와주는 유니티의 기능기존의 C# Thread 나 Task 를 직접 사용하지 않고도 성능을 최적화 하며 멀티코어 CPU를 효과적으로 활용할 수 있다. 기존 C# 멀티 스레딩의 문제점1. Thread, Task를 직접 사용하면 RaceCondition, Deadlock 등의 문제가 발생될 수 있음2. 유니티는 기본적으로 싱글 스레드에서 동작하기에, 직접 멀티 스레딩을 활용할 경우 충돌 발생 가능성이 있음 잡 시스템의 장점 - 멀티코어 CPU를 자동으로 활용 - 데이터 중심 처리방식 - 자동 스레드 관리 - 안전한 동기화

Unity 2025.02.10

FixedUpdate , Update , LateUpdate

유니티에서 FixedUpdate, Update, LateUpdate 는 각기 다른 실행 주기를 가진 콜백 함수다. FixedUpdate고정된 시간 간격 (기본적으로 0.02초, Time.fixedDeltaTime 값) 에 따라 실행물리 연산에 적합하며, Rigidbody를 이용한 움직임을 처리할 때 활용물리연산이 필요한 경우에만 호출 될 수도 있고, 프레임 딜레이가 길어질 경우 한프레임 내 여러번 호출될 수도 있음 Update매 프레임마다 한번 호출 ( 60FPS => 0.016초 주기로 실행 )프레임 속도, 성능에 따라 실행 간격이 달라질 수 있음유저의 입력처리, 애니메이션 트리거, UI 업데이트 등에 사용프레임 속도에 따라 실행 간격이 달라지므로 Time.deltaTime을 활용해 보완LateUpda..

Unity 2025.02.08

동일한 프로젝트를 두개 열기, 동기화 - ParrelSync

네트워크 관련 작업을 진행할때, 기능이 정상적으로 작동하는지 확인하는 방법은현재까지 작업물을 빌드하고 여러 클라이언트를 동작시키는 방법도 있다. 하지만 개발상황에서 빌드과정을 거치지 않고, 실시간으로 테스트하는 방법이 있다. https://github.com/VeriorPies/ParrelSync/ GitHub - VeriorPies/ParrelSync: (Unity3D) Test multiplayer without building(Unity3D) Test multiplayer without building. Contribute to VeriorPies/ParrelSync development by creating an account on GitHub.github.com해당 레포지토리에서 아무나 사용 가..

Unity 2024.11.08

유니티 UI 최적화 팁

1. 정적UI와 동적UI 요소는 개별적 캔버스로 관리 2. 필요없는 레이캐스터 비활성화 3. 그리드레이아웃 사용자제 4. 가능한 레이아웃 그룹 사용자제 5. 캔버스를 숨겨야할땐 캔버스 컴포넌트 자체를 비활성화한다. 6. 화면전체를 뒤덮는 UI 를 사용할 땐 표시되지 않는 UI는 사용하지 않는다.  https://unity.com/kr/how-to/unity-ui-optimization-tips Unity UI 성능 최적화 팁게임에 최적화된 Unity UI 엘리먼트를 쉽게 제작할 수 있습니다.unity.com

Unity 2024.09.05

UGUI 와 NGUI

UGUI - Unity GUI유니티에서 공식적으로 제공하는 UI 시스템이다.유니티엔진에 완벽하게 통합되었으며 조작이 직관적이며 뛰어난 기능을 제공하여편하게 UI를 제작할 수 있다. UGUI 의 경우 유니티의 기본 렌더링 파이프라인에 통합되어 있어 최적화, 성능 측면에서 뛰어나며에디터상에서 드래그, 드롭으로 UI요소를 조작할 수 있으며, 인스펙터창을 통해 속성이 조정가능하다. 또한 이벤트, 다양한 레이아웃 시스템처럼 다양한 편의성을 제공한다. NGUI - NextGen UI유니티 3.x 4.x 에서 사용된 상용UI 패키지다.유니티의 기본 UI 시스템이 불편했을때 사용하였고, 현재는 별도의 패키지로 판매되며유니티에 기본적으로 내장되어 있지 않다. NGUI는 전용 편집도구가 있어 유연한 편집이 가능하며NGUI..

Unity 2024.09.05

유니티 파이프라인의 종류와 용도 Pipeline

유니티 프로젝트를 시작하다보면 파이프라인을 결정해야 하는 순간이 온다. 파이프라인이란?유니티에서 제공하는 렌더링 파이프라인을 의미하고, 앱의 그래픽 처리과정을 정의하는 시스템이다.유니티는 여러 종류의 파이프라인을 제공하고 프로젝트의 요구에 맞게 그래픽 품질, 성능을 최적화 할수있게 해준다. 파이프라인이라고 하면 이러한 용어를 들어봤을것이다.Built-in, URP, SRP, HDRP각 파이프라인에 대해 설명을 적어보면. 1. Built-in Render Pipeline유니티의 오래된 렌더링 시스템으로 엔진 초기버전부터 사용된 파이프라인이다.기본적으로 제공하는 파이프라인으로써 가장 광범위한 호환성을 갖는다.또한 복잡한 설정없이 쉽게 사용할 수 있다는 점이 있다. 현재는 공식적으로 지원하고 있진 않지만 이전..

Unity 2024.06.21