Unity

    Unity 카메라(Camera) 컴포넌트

    Unity에서는 카메라(Camera) 컴포넌트를 사용하여 게임 화면을 제어할 수 있습니다. 이번 글에서는 카메라 컴포넌트의 프로퍼티와 메서드를 자세하게 다루어 보겠습니다. 카메라 컴포넌트 프로퍼티 Camera.orthographic orthographic 모드인지 아닌지를 나타내는 bool 값을 반환합니다. Camera.aspect 화면의 가로세로 비율을 나타내는 float 값을 반환합니다. Camera.fieldOfView 카메라의 시야각을 나타내는 float 값을 반환합니다. Camera.nearClipPlane 카메라에서 가장 가까이 있는 물체까지의 거리를 나타내는 float 값을 반환합니다. Camera.farClipPlane 카메라에서 가장 멀리 있는 물체까지의 거리를 나타내는 float 값을 ..

    Unity Navigation Component - 네비게이션

    Unity에서 게임 오브젝트의 네비게이션을 구현할 때 유용한 컴포넌트들을 간단하게 알아보겠습니다. 1. NavMesh 컴포넌트 NavMesh 컴포넌트는 네비게이션 메시(mesh)를 생성하는 데 사용됩니다. 네비게이션 메시는 씬에서 이동 가능한 지역을 정의합니다. NavMesh 컴포넌트를 사용하여 네비게이션 메시를 생성하려면 다음 단계를 따르면 됩니다. 씬에서 이동 가능한 지역을 선택합니다. GameObject > 3D Object > NavMesh를 선택합니다. 새 NavMesh 컴포넌트가 생성되고, 이동 가능한 지역이 자동으로 감지됩니다. 2. NavMeshAgent 컴포넌트 NavMeshAgent 컴포넌트는 네비게이션 시스템의 핵심 요소입니다. 이 컴포넌트를 사용하여 캐릭터를 이동시킬 수 있습니다. ..

    Unity 스크립터블오브젝트 : ScriptableObject

    Unity에서는 스크립터블 오브젝트(ScriptableObject)를 사용하여 게임 오브젝트에서 사용할 데이터를 만들 수 있습니다. 스크립터블 오브젝트는 프리팹과 비슷한 개념으로, 스크립트로 구성된 데이터 파일입니다. 이 파일은 프로젝트의 에셋으로 저장되며, 게임 오브젝트에서 사용하기 쉬운 형태로 구성됩니다. 스크립터블 오브젝트는 다음과 같은 장점이 있습니다. 데이터를 수정하면 즉시 모든 인스턴스에 적용됩니다. 유연하고 효율적인 방식으로 게임 데이터를 저장하고 관리하는 데 사용할 수 있으므로 다양한 게임 개체와 장면 간에 쉽게 수정, 재사용 및 공유할 수 있습니다. 가볍고 효율적입니다. 즉, 처리 및 저장해야 하는 데이터의 양을 줄여 게임 성능을 개선하는 데 사용할 수 있습니다. 게임 로직과 데이터를 분..

    Unity Collider 컴포넌트

    Unity에서는 Collider 컴포넌트를 사용하여 게임 오브젝트의 충돌 처리를 할 수 있습니다. 이번 글에서는 Collider 컴포넌트의 종류와 프로퍼티, 메서드를 자세하게 다루어 보겠습니다. Collider 컴포넌트 종류 Box Collider Box Collider는 박스 형태로 충돌을 처리하는 컴포넌트입니다. 박스의 크기와 중심 위치를 조절할 수 있으며, 회전은 불가능합니다. Sphere Collider Sphere Collider는 구 형태로 충돌을 처리하는 컴포넌트입니다. 구의 반지름과 중심 위치를 조절할 수 있으며, 회전은 불가능합니다. Capsule Collider Capsule Collider는 원통 형태로 충돌을 처리하는 컴포넌트입니다. 원통의 반지름, 높이, 방향, 중심 위치를 조절할..

    Unity 수학 함수 Mathf

    Unity에서는 수학 함수와 상수를 제공하는 Mathf 클래스를 제공합니다. 이 클래스에는 다양한 수학 함수와 상수들이 구현되어 있어 게임 개발에서 자주 사용됩니다. 기본 수학 함수 Mathf.Abs public static float Abs(float f); 주어진 실수의 절댓값을 반환합니다. Mathf.Clamp public static float Clamp(float value, float min, float max); 주어진 실수의 값을 최소값과 최대값 범위 내에 고정합니다. Mathf.Lerp public static float Lerp(float a, float b, float t); 두 실수 a와 b 사이에서 t 값에 따라 선형 보간을 수행합니다. Mathf.LerpUnclamped publ..

    Unity에서 오일러각과 쿼터니언

    Unity에서는 게임 오브젝트의 회전을 표현하는 데에 오일러각과 쿼터니언을 모두 사용할 수 있습니다. 오일러각(Euler Angle) 오일러각은 게임 오브젝트의 회전을 각각의 축(x, y, z)을 기준으로 각도를 나타내는 방식입니다. Unity에서는 Transform 컴포넌트의 Euler Angles 속성을 통해 오일러각을 조작할 수 있습니다. 오일러각의 문제점 오일러 각도는 피치, 요 및 롤의 세 가지 각도를 사용하여 3D 공간에서 객체의 방향을 나타내는 방법입니다. Unity에서 오일러 각도는 일반적으로 게임 개체의 회전을 지정하는 데 사용됩니다. 그러나 오일러 각도를 사용하여 회전을 나타내는 데 짐벌 잠금(gimbal lock)이라고 하는 문제가 있습니다. 짐벌 잠금은 3개의 오일러 각 중 2개가 ..

    Unity로 이해하는 싱글톤 패턴 (Singleton Pattern)

    Unity에서 싱글톤 패턴(Singleton Pattern)을 사용하면 특정 클래스의 인스턴스가 오직 하나만 존재하도록 보장할 수 있습니다. 이는 많은 상황에서 유용한데, 예를 들어 게임에서 현재 상태를 저장하거나, 매니저 클래스를 구현하거나, 리소스를 로드하는 등의 작업이 있을 때 사용할 수 있습니다. 싱글톤 패턴의 구현 싱글톤 패턴을 구현하려면 다음과 같은 단계를 거칩니다. 클래스의 생성자를 private으로 지정하여 외부에서 인스턴스를 생성하지 못하도록 합니다. 클래스 내부에 private static 변수를 선언합니다. 클래스 내부에 public static 메서드를 만들어 private static 변수를 리턴하도록 합니다. 이 메서드를 통해 클래스 외부에서 유일한 인스턴스에 접근할 수 있습니다..

    Unity에서 게임 오브젝트 회전하는 방법

    Unity에서는Transform 컴포넌트를 사용하여 게임 오브젝트를 회전시킬 수 있습니다. 1. Transform.Rotate() Transform.Rotate() 함수를 사용하여 게임 오브젝트를 회전시킬 수 있습니다. 이 함수는 세 개의 인자를 받습니다. public void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self); eulerAngles: 회전시킬 방향 벡터입니다. relativeTo: 회전시킬 기준 좌표계를 지정합니다. 생략하면 Space.Self로 설정됩니다. // 예시: 오브젝트를 x축으로 30도 회전 transform.Rotate(new Vector3(30, 0, 0), Space.Self); 2. Transform.rotatio..