목록2025/04/11 (6)
뭐라도 쓰겠지
우선 콜백 함수(Callback Function)라는 개념부터 간단히 짚어보자. 콜백 함수란, 특정 이벤트가 발생했을 때 미리 등록해둔 함수를 실행하는 기법을 말한다. 예를 들어, "데이터를 다 읽으면 이 함수를 호출할 것"라고 등록해두면, 실제 데이터 처리가 끝난 시점에 함수가 자동으로 호출된다. 이때 콜백 함수가 들고있는 '스레드'가 중요한 포인트가 된다. 프로그램 안에는 한 개 이상의 스레드(Thread)가 돌아간다. 여기에는UI 스레드(Main Thread): 화면을 그리고, 사용자의 입력을 처리하는 스레드백그라운드 스레드(Worker Thread): 무거운 연산(파일 처리, 네트워크 통신, 계산 등)을 따로 수행하기 위한 보조 스레드UI 요소(윈도우 폼, 버튼, 텍스트 박스 등)는 UI 스레드..
유니티 또는 일반적인 3D 게임 엔진에선 오브젝트를 클릭하거나 특정 대상과의 충돌 여부를 확인하기 위해 자주 쓰이는 Picking, Ray, Raycast라는게 있다. 이번 글에선 이것들에 대해 한 번 알아보자.1. Picking (픽킹)개념:Picking은 유저 입력(마우스 클릭, 터치 등)이 실제 3D 공간의 어떤 오브젝트(또는 영역)에 해당하는가를 알아내는 것을 의미한다."마우스로 화면을 클릭했는데, 이 클릭 위치가 3D 월드의 어느 오브젝트를 가리키는지 찾아내는 과정"이라 생각하면 된다.동작원리:3D 게임 엔진에서는 '화면(2D 스크린 좌표)'과 '월드(3D 좌표계)' 사이를 연결하기 위해 Ray(광선)을 사용한다.즉, 화면 픽셀 좌표를 월드 좌표로 투영해 Ray를 만든 후, Raycast를 통해..
유니티에서 AddComponent()와 GetComponent()는 모두 GameObject에 연결된 컴포넌트를 다루지만, 동작 방식과 용도가 다르다. 아래는 각 메소드의 특징과 차이점이다.AddComponent()새 컴포넌트를 생성해서 추가AddComponent()를 호출하면 현재 GameObject에 새로운 T 타입 컴포넌트를 동적으로 추가한다.반환 값추가된 컴포넌트의 인스턴스를 반환한다.이미 같은 유형의 컴포넌트가 존재해도, 기본적으로 새 컴포넌트를 하나 더 만들 수 있다(일부 컴포넌트는 중복이 불가능할 수 있음).사용 예시특정 상황(이벤트가 발생했을 때 등)에서 GameObject에 컴포넌트를 동적으로 붙이고 싶을 때.스크립트로 새 기능(Physics, AI 등)을 런타임에 추가해야 할 때. Ge..
유니티에서 카메라를 이용해 씬(Scene)을 그릴 때, 카메라 프러스텀(Camera Frustum)을 정의하기 위해서 Near Plane과 Far Plane이라는 두 개의 '클리핑 평면(Clipping Plane)'을 설정한다. 이 두 평면은 카메라로부터 얼마나 가까운(또는 먼) 오브젝트까지 렌더링할지를 결정한다.카메라 프러스텀(Camera Frustum) 카메라 프러스텀은 3D 그래픽스에서 카메라가 실제로 볼 수 있는 공간 범위를 나타내는 입체 기하학적 형태이다. 쉽게 말해, 카메라의 '시야 범위'를 3D 공간에서 도형으로 나타낸 것으로, 관측 가능한 오브젝트들은 이 프러스텀 내부에 있어야 화면에 렌더링된다. 형태Perspective(원근 투영) 카메라일반적인 3D 게임, 시뮬레이션 등에서 쓰는 방식..
C#에서 out과 ref 키워드는 모두 "참조로 전달"한다는 점에서 비슷하지만, 사용할 때의 전제 조건과 의도가 다르다. ref 키워드특징:호출하는 쪽에서(메소드를 호출하는 측) ref로 전달할 변수를 미리 초기화해두어야 한다.메소드 안에서 그 값을 읽고 수정할 수 있다.메소드를 호출할 때도, 받는 쪽(파라미터)도 모두 ref라는 키워드를 명시해 주어야 한다.사용 예시:void Example(ref int value){ // value를 참조로 받음 value += 10;}void Start(){ int number = 5; Example(ref number); // 여기서 number는 5 + 10 = 15로 변경됨}주 용도:이미 할당된 변수를 함수 내에서 수정(변경)하고,..
3D 게임을 개발하면서 각도를 다룰 때 라디안(Radian)과 도(Degree)가 자주 사용된다. 두 단위는 서로 같은 '각'을 표시하지만, 표현 방식이 다르다. 이번 글에선 둘의 차이점과 유니티에서 사용되는 예시를 알아보자.1. 도 (Degree)원을 360도로 나누어 각을 나타내는 단위사람이 직관적으로 이해하기 편리함예: 360도, 90도, 45도 등일반적인 개념 설명, 디자인, 문서화 등에 많이 사용2. 라디안 (Radian)수학에서 각을 표현하는 표준 단위원에서 반지름의 길이를 곱한 호의 길이에 기반하여 정의(호의 길이가 반지름과 같을 때의 각이 1라디안)2π 라디안 = 360도프로그래밍 언어나 수학 라이브러리(특히 삼각함수)에서는 주로 라디안을 사용π라디안은 180도와 같다. 1라디안은 약 ..