Unity

    Camera : Orthographic과 Perspective

    Unity 카메라에는 두 가지 투영 방식이 있습니다. Orthographic 투영 방식과 Perspective 투영 방식입니다. Orthographic 투영 방식은 객체의 거리와 상관없이 동일한 크기로 렌더링합니다. 즉, 가까운 객체와 먼 객체의 크기가 동일합니다. 이러한 투영 방식은 2D 게임이나 2.5D 게임에서 주로 사용됩니다. Perspective 투영 방식은 객체의 거리에 따라 크기가 달라집니다. 즉, 가까운 객체는 크고, 먼 객체는 작게 렌더링됩니다. 이러한 투영 방식은 3D 게임에서 주로 사용됩니다. Orthographic 투영 방식의 Size 옵션 Orthographic 투영 방식의 Size 옵션은 렌더링 영역의 크기를 결정합니다. Size 값이 클수록 렌더링 영역이 커집니다. 예를 들어,..

    Animator State Transition : Has Exit Time

    Has Exit Time이란?? Has Exit Time은 Animator의 설정 중 하나로, 애니메이션 전환이 끝나기 전에 트랜지션을 할지 여부를 결정하는 옵션입니다. 이 옵션을 사용하면 특정 애니메이션 클립이 플레이어에 의해 완전히 재생된 후에만 트랜지션을 수행할 수 있습니다. Has Exit Time이 true로 설정된 경우 애니메이션은 지정된 시간 동안 실행된 후 자동으로 종료됩니다. Has Exit Time이 false로 설정된 경우 애니메이션은 플레이어의 입력이나 다른 이벤트에 의해 종료될 때까지 계속 실행됩니다. 이 옵션을 사용하는 이유는 애니메이션 클립이 완전히 재생되기 전에 트랜지션되면 자연스럽지 않은 전환 현상이 발생할 수 있기 때문입니다. 예를 들어, 캐릭터의 걷기 애니메이션 클립이 ..

    오브젝트 파괴 시 OnDestroy 이벤트 함수가 호출되지 않을 수 있다??

    Unity에서 GameObject를 삭제하면 OnDestroy 메서드가 호출됩니다. OnDestroy 메서드는 GameObject가 삭제되기 전에 실행되는 메서드로, GameObject의 자원 해제, 데이터 저장 등의 작업을 수행하는 데 사용됩니다. 하지만, OnDestroy 메서드의 호출은 보장되지 않습니다. 즉, GameObject가 삭제되더라도 OnDestroy 메서드가 호출되지 않을 수도 있습니다. 공식문서의 설명을 보면 MonoBehaviour를 상속 받는 객체가 파괴 될 때 호출된다고 적혀 있습니다. 이 글을 보시는 분들은 다들 이 부분은 알고 계실것이라 생각합니다. 그 아래에 중요한 내용이 적혀 있는데 OnDestroy는 이전에 활성화되어있던, 게임 오브젝트상에서만 호출됩니다. 즉, 호출이 ..

    월드 공간 지점을 스크린상의 지점으로 변환 : WorldToScreenPoint

    Unity에서 WorldToScreenPoint 메서드는 월드 공간의 지점을 스크린 공간의 지점으로 변환하는 데 사용됩니다. public Vector3 WorldToScreenPoint(Vector3 position) position : 월드 공간의 지점입니다. 이 메서드는 다음과 같은 스크린 공간의 지점을 반환합니다. 스크린 공간의 x좌표는 worldPoint의 x좌표와 카메라의 LookAt 방향의 x좌표의 비율에 해당합니다. 스크린 공간의 y좌표는 worldPoint의 y좌표와 카메라의 LookAt 방향의 y좌표의 비율에 해당합니다. 예제 다음은 WorldToScreenPoint 메서드를 사용하는 예제입니다. // 월드 공간의 좌표 (0, 0, 1)을 스크린 공간의 지점으로 변환합니다. Vector3..

    화면 위치에 해당하는 Ray 생성 : Camera.main.ScreenPointToRay

    Unity에서 Camera.main.ScreenPointToRay 함수 사용하기 Unity에서 카메라의 시야에 있는 스크린 상의 점을 광선으로 변환하는 데 사용되는 함수가 Camera.main.ScreenPointToRay입니다. 이 함수는 다음과 같은 인수를 사용합니다. screenPoint : 스크린 상의 점의 좌표입니다. worldUp : 카메라의 월드 업 벡터입니다. 이 함수는 다음과 같은 반환 값을 가집니다. ray : 스크린 상의 점을 나타내는 광선입니다. 사용 예제 void Update() { // 스크린 상의 점을 가져옵니다. Vector3 screenPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); // 스크린 상의 점을 광선으로..

    Unity의 Character Controller : 간단하게 움직임 구현

    Unity의 Character Controller는 3인칭 또는 1인칭 플레이어 캐릭터의 움직임을 제어하는 데 사용되는 컴포넌트입니다. Character Controller는 Rigidbody와 달리 물리적 충돌을 고려하지 않으며, 플레이어의 입력을 사용하여 캐릭터의 움직임을 제어합니다. Character Controller의 주요 기능은 다음과 같습니다. 플레이어의 입력을 사용하여 캐릭터의 움직임을 제어합니다. 플레이어가 장애물과 충돌할 때 충돌 처리를 수행합니다. 플레이어가 계단이나 경사로를 올라갈 때의 움직임을 제어합니다. Character Controller를 사용하려면 먼저 오브젝트에 Character Controller 컴포넌트를 추가해야 합니다. Character Controller 컴포넌트..

    Windows 환경에서 Firebase 사용 시 발생하는 Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode' 에러 해결

    Unity에서 Firebase를 사용하려는 경우, Windows 환경에서 다음과 같은 에러가 발생할 수 있습니다. 이 에러는 Unity Editor의 iOS Build 모듈이 설치되어 있지 않아 발생합니다. 이 에러를 해결하려면 다음과 같이 해당 Unity Editor의 iOS Build 모듈을 설치합니다. 1. Unity Hub를 실행합니다. 2. 설치를 선택합니다. 3. 에러가 발생한 프로젝트의 에디터 버전의 모듈 추가를 클릭합니다. 4. iOS Build Support를 선택하고 설치합니다. 5. 모듈이 설치가 완료되면 Unity Editor를 다시 시작합니다.

    Unity의 Ray에 찍힌 오브젝트를 검출하지 못하는 조건

    Unity의 레이는 한 지점에서 다른 지점까지의 직선을 나타냅니다. 레이를 사용하여 게임 오브젝트를 검출할 수 있습니다. 그러나 다음과 같은 조건에서 레이에 찍힌 오브젝트를 검출하지 못할 수 있습니다. 레이의 시작 지점과 끝 지점이 모두 같은 경우 레이의 시작 지점과 끝 지점이 모두 같은 경우, 레이는 직선이 아닌 0차원 점으로 간주됩니다. 따라서, 레이를 사용하여 게임 오브젝트를 검출할 수 없습니다. 레이가 렌더링되지 않는 오브젝트를 통과하는 경우 레이는 렌더링되지 않는 오브젝트를 통과할 수 있습니다. 따라서, 레이를 사용하여 렌더링되지 않는 오브젝트를 검출할 수 없습니다. 레이가 Collider가 없는 오브젝트를 통과하는 경우 Collider는 물리 엔진에 의해 충돌을 처리하는 데 사용되는 컴포넌트입..