[Unity] 쿼터니언(Quaternion) 정리

유니티에서 회전을 표현하는 방식에는 오일러 각(Euler Angles) 과 쿼터니언(Quaternion) 두 가지가 존재한다. 오일러 각은 사람이 이해하기 쉬운 x, y, z 축 기준의 회전값(도 단위) 을 제공하지만, 연산 과정에서 짐벌락(Gimbal Lock) 문제

2025년 8월 13일
·
0개의 댓글
·

[Unity] 월드 스페이스 (World Space) 와 로컬 스페이스 (Local Space)

게임 오브젝트를 배치하거나 이동, 회전 스케일링하는 과정에서 좌표계의 개념은 매우 중요한 역할을 한다. Unity에서는 대표적으로 World Space와 Local Space라는 두 가지 좌표계 사용된다. 이 두 좌표계의 개념과 차이를 명확히 이해하면, 오브젝트의 트랜

2025년 8월 12일
·
0개의 댓글
·

[Unity] 벡터의 내적과 외적

게임 개발에서 벡터 연산은 물리 계산, 방향 판정, 카메라 제어 등 다양한 영역에서 활용된다. 그중에서도 내적(Dot Product)과 외적(Cross Product)은 방향과 각도, 평면상의 수직 벡터 계산 등에 필수적인 연산이다. Unity는 Vector3.Dot과

2025년 8월 11일
·
0개의 댓글
·

[Unity] 타일맵 빌드시 주의사항

Unity 2D 프로젝트에서 Tilemap과 Tilemap Collider 2D를 이용해 맵 충돌 영역을 구성하는 경우,에디터에서는 충돌이 정상적으로 동작하지만,빌드 후 실행 파일에서 플레이해 보면 일부 타일의 충돌이 사라지는 현상이 발생할 수 있다.에디터 모드에서는

2025년 8월 8일
·
0개의 댓글
·

[Unity] 유니티 버츄얼 카메라 Follow 강제 이동

버츄얼 카메라는 이전에 흔히 써오던 Lerp 를 통한 이동이라던지, 여러 복잡한 코드없이 훌륭한 연출을 도와주는 유니티의 기능이다.기본적으로 우선순위를 이용해 보여지는 카메라를 지정하는데 이런 전환 과정이 자동적으로 부드럽게 보간 할 수 있는 특징이 있다.문제는 강제로

2025년 8월 7일
·
0개의 댓글
·

[알고리즘] A* 알고리즘

게임 개발에서 경로 탐색(Pathfinding)은 AI 캐릭터나 오브젝트가 특정 목적지까지 장애물을 피해 최적의 경로를 찾는 데 필수적인 기능이다. 특히 Grid 기반 맵을 사용하는 2D 혹은 3D 게임에서는 대표적인 휴리스틱 기반 탐색 알고리즘인 A\* 알고리즘이 자

2025년 8월 6일
·
0개의 댓글
·

[알고리즘] 행동트리(Behaviour Tree) 정리

행동 트리(Behavior Tree)는 계층적 구조를 갖는 트리 형태의 자료구조이다. 이 자료구조는 주로 게임 내 인공지능 캐릭터의 의사결정을 정의하기 위해 사용된다. 행동 트리는 상태 기계(Finite State Machine, FSM)에 비해 모듈화와 확장성이 우수

2025년 8월 5일
·
0개의 댓글
·

[알고리즘] DFS 와 BFS 정리

그래프(Graph)는 노드(Node)와 간선(Edge)으로 이루어진 자료구조로, 다양한 형태의 데이터 간 관계를 표현할 수 있다. 게임에서는 맵의 연결 구조, 캐릭터의 상태 전이(State Machine), 퀘스트 의존성 등에서 그래프 형태의 데이터를 자주 다룬다. 이

2025년 8월 4일
·
0개의 댓글
·

[자료구조] 큐(Queue) 와 스택(Stack) 정리

스택(Stack)과 큐(Queue)는 선형 자료구조(Linear Data Structure)의 대표적인 형태로, 알고리즘 문제 해결, 시스템 아키텍처 설계, 소프트웨어 개발 등 다양한 영역에서 활용된다.스택은 후입선출(Last-In, First-Out, LIFO)의 특

2025년 8월 1일
·
0개의 댓글
·

[Unity] 멀티 쓰레딩 정리

Unity는 기본적으로 싱글 스레드 기반의 게임 엔진이다. 대부분의 Unity API는 메인 스레드에서만 호출이 가능하며, 렌더링, 물리 처리, UI 갱신 등 핵심적인 작업 역시 메인 스레드에서 수행된다. 그러나 게임의 복잡성이 증가함에 따라, 병렬 처리를 통해 성능을

2025년 7월 31일
·
0개의 댓글
·

[자료구조] 연결리스트(LinkedList) 정리

연결 리스트는 데이터를 노드(Node)라는 단위 객체에 저장하고, 각 노드가 다음 노드를 가리키는 참조(Reference)를 통해 선형적인 순서를 구성하는 자료구조다.배열(Array)이 메모리상에 연속된 공간에 데이터를 저장하는 밀집 리스트(Dense List)인 것과

2025년 7월 30일
·
0개의 댓글
·

[C#] 리플렉션(Reflection) 정리

리플렉션이란 프로그램 실행 중에 코드의 구조(클래스, 메서드, 프로퍼티 등)에 접근하고, 조작할 수 있게 해주는 .NET의 강력한 기능이다. 즉, 컴파일된 코드(어셈블리)를 런타임에 분석할 수 있다.이를 통해 객체의 타입, 메서드, 필드, 프로퍼티 등 다양한 정보를 동

2025년 7월 29일
·
0개의 댓글
·

[C#] 클래스 상속과 다이아몬드 문제 (diamond problem)

다이아몬드 문제(Diamond Problem)는 객체 지향 프로그래밍에서 클래스가 다중 상속(Multiple Inheritance)을 사용할 때 발생할 수 있는 구조적 충돌 문제를 의미한다.일반적으로 다음과 같은 형태를 가진다.클래스 B와 C는 A를 상속받는다.클래스

2025년 7월 28일
·
0개의 댓글
·

[Unity] 드로우콜(Draw Call)과 최적화

유니티에서 화면에 오브젝트를 그리기 위해 GPU에게 내리는 명령 하나하나를 Draw Call(드로우콜)이라고 부른다. GPU는 이 드로우콜을 받을 때마다 렌더링 작업을 수행하기 위해 준비 단계를 거치는데, 이 준비 단계가 바로 오버헤드를 만들어낸다.즉, 드로우콜 수가

2025년 7월 25일
·
0개의 댓글
·

[C#] 박싱, 언박싱 정리

박싱이란 값 타입(Value Type) 데이터를 참조 타입(Reference Type)으로 변환하는 과정이다.쉽게 말해, 스택(Stack)에 존재하는 값을 힙(Heap)에 복사해서, 객체(Object)처럼 사용하는 것.예시이 코드를 실행하면, 다음과 같은 일이 발생한다

2025년 7월 24일
·
0개의 댓글
·

[Unity] Coroutine(코루틴) 정리

코루틴은 유니티에서 시간의 흐름에 따라 작업을 분할하여 처리할 수 있는 기능이다.한 번에 끝나지 않고, 여러 프레임에 걸쳐서 코드를 조금씩 실행할 수 있게 해준다.이걸 활용하면, 예를 들어 몇 초 대기 후에 동작을 실행하거나, 특정 조건이 충족될 때까지 반복 작업을 쉽

2025년 7월 23일
·
0개의 댓글
·

[C#] 접근제한자와 프로퍼티, 캡슐화

접근 제한자는 클래스, 변수, 함수(메서드) 등 객체 지향 프로그래밍 요소의 접근 가능 범위를 지정하는 키워드이다.코드의 특정 멤버가 클래스 내부, 외부, 자식 클래스 등에서 어떤 범위로 접근될 수 있는지 명확하게 제한 한다.public어디서든 접근이 가능함을 의미pr

2025년 7월 22일
·
0개의 댓글
·

[C#] 클래스와 객체 정리

클래스는 데이터와 그 데이터를 조작하는 기능(메서드)을 하나로 묶어 놓은 사용자 정의 참조 타입이다.클래스는 객체를 만들기 위한 설계도이며, 객체가 가져야 할 속성(필드, 프로퍼티)과 행동(메서드)을 정의한다.클래스 자체는 메모리에 할당되지 않는다.클래스 정의만으로는

2025년 7월 21일
·
0개의 댓글
·

[C#] 콜백(Callback)과 대리자(delegate) 정리

대리자(delegate)는 함수를 참조할 수 있는 타입이다. 즉, 대리자는 특정 시그니처(매개변수와 반환형)를 가진 함수를 변수처럼 저장하고, 나중에 실행할 수 있도록 한다.기본적인 대리자는 아래와 같이 선언한다.이 선언은 두 개의 int를 입력받아 int를 반환하는

2025년 7월 18일
·
0개의 댓글
·

[Unity] Monobehaviour 정리

Monobehaviour Unity에서 Monobehaviour는 모든 스크립트 컴포넌트의 기본이 되는 클래스다. 사용자는 Monobehaviour를 상속하여 자신의 C# 스크립트를 작성하며, 이를 통해 Unity의 오브젝트에 다양한 동작을 부여할 수 있다. 주요

2025년 7월 17일
·
0개의 댓글
·