Windows 환경에서 Firebase 사용 시 발생하는 Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode' 에러 해결
·
Unity/Firebase
Unity에서 Firebase를 사용하려는 경우, Windows 환경에서 다음과 같은 에러가 발생할 수 있습니다. 이 에러는 Unity Editor의 iOS Build 모듈이 설치되어 있지 않아 발생합니다. 이 에러를 해결하려면 다음과 같이 해당 Unity Editor의 iOS Build 모듈을 설치합니다. 1. Unity Hub를 실행합니다. 2. 설치를 선택합니다. 3. 에러가 발생한 프로젝트의 에디터 버전의 모듈 추가를 클릭합니다. 4. iOS Build Support를 선택하고 설치합니다. 5. 모듈이 설치가 완료되면 Unity Editor를 다시 시작합니다.
C# Linked List
·
C#
C#의 링크드 리스트는 연결 리스트라고도 불리며, 각 요소가 다음 요소에 대한 포인터를 가지고 있는 구조입니다. 링크드 리스트는 다음과 같은 특징을 가지고 있습니다. 삽입/삭제 작업이 빠릅니다.링크드 리스트에서 삽입/삭제 작업을 수행할 때는 리스트의 요소를 이동할 필요가 없습니다. 따라서, 삽입/삭제 작업은 O(1)의 시간 복잡도를 갖습니다. 검색 작업이 느립니다. 링크드 리스트에서 검색 작업을 수행할 때는 리스트의 모든 요소를 순회해야 합니다. 따라서, 검색 작업은 O(n)의 시간 복잡도를 갖습니다. 메모리 사용이 효율적입니다. 링크드 리스트는 리스트의 요소가 사용되지 않을 때 자동으로 메모리에서 해제됩니다. 따라서, 메모리 사용이 효율적입니다. 구현 링크드 리스트를 구현하기 위해서는 다음과 같은 코드..
Unity의 Ray에 찍힌 오브젝트를 검출하지 못하는 조건
·
Unity/Tip
Unity의 레이는 한 지점에서 다른 지점까지의 직선을 나타냅니다. 레이를 사용하여 게임 오브젝트를 검출할 수 있습니다. 그러나 다음과 같은 조건에서 레이에 찍힌 오브젝트를 검출하지 못할 수 있습니다. 레이의 시작 지점과 끝 지점이 모두 같은 경우 레이의 시작 지점과 끝 지점이 모두 같은 경우, 레이는 직선이 아닌 0차원 점으로 간주됩니다. 따라서, 레이를 사용하여 게임 오브젝트를 검출할 수 없습니다. 레이가 렌더링되지 않는 오브젝트를 통과하는 경우 레이는 렌더링되지 않는 오브젝트를 통과할 수 있습니다. 따라서, 레이를 사용하여 렌더링되지 않는 오브젝트를 검출할 수 없습니다. 레이가 Collider가 없는 오브젝트를 통과하는 경우 Collider는 물리 엔진에 의해 충돌을 처리하는 데 사용되는 컴포넌트입..
Unity의 Collision에 관하여
·
Unity
Unity의 Collision은 두 Collider가 충돌했을 때 발생하는 이벤트입니다. Collision 이벤트는 다음과 같은 정보를 제공합니다. 충돌한 GameObject의 Collider 충돌 지점 충격량 상대적인 선 속도 Rigidbody Transform Collider Collider는 물리 엔진에 의해 충돌을 처리하는 데 사용되는 컴포넌트입니다. Collider에는 다음과 같은 종류가 있습니다. BoxCollider: 상자 모양의 Collider SphereCollider: 구 모양의 Collider CapsuleCollider: 원통 모양의 Collider MeshCollider: 메시를 사용하여 정의하는 Collider Contacts Contacts는 물리 엔진에 의해 생성되는 물체 간..
두 Collider의 충돌을 무시하는 방법
·
Unity/Tip
Unity의 Physics.IgnoreCollision 메서드는 두 Collider 간의 충돌을 무시하도록 설정합니다. public static void IgnoreCollision(Collider colliderA, Collider colliderB, bool ignore); //Parameters //colliderA: 충돌을 무시할 첫 번째 Collider //colliderB: 충돌을 무시할 두 번째 Collider //ignore: 충돌 감지 여부, 기본값은 true 예제 Collider collider1 = gameObject.GetComponent(); Collider collider2 = otherObject.GetComponent(); // 충돌을 무시합니다. Physics.IgnoreC..
Unity에서 Collider 충돌처리가 되지 않을 경우
·
Unity/Tip
Unity에서 Collider가 있는 두 오브젝트가 충돌하면 일반적으로 물리법칙에 따라 서로 밀거나 튕겨나가는 동작을 합니다. 하지만, 다음과 같은 경우에 Collider가 있는데도 충돌했을 때 물리법칙을 따르지 않는 경우가 있습니다. Collider의 Rigidbody가 없는 경우 Collider는 물리적 상호 작용을 처리하는 Rigidbody와 함께 사용해야 합니다. Rigidbody가 없는 Collider는 물리적 상호 작용을 처리할 수 없으므로, 충돌했을 때 물리법칙을 따르지 않는 경우를 만들 수 있습니다. 물체가 너무 빨리 움직여 충돌을 놓친 경우 물체가 한 프레임 사이에 너무 큰 거리를 이동하여 충돌을 감지하지 못하는 경우입니다. 이를 해결하기 위해서는 Rigidbody 컴포넌트의 Interp..
Unity의 PointEventData 클래스
·
Unity
Unity의 PointEventData 클래스는 터치 또는 마우스 입력 이벤트에 대한 정보를 저장하는 클래스입니다. 이 클래스는 InputModule 클래스에 의해 사용되며, InputModule 클래스를 통해 터치 또는 마우스 입력 이벤트에 대한 정보를 얻을 수 있습니다. PointEventData 클래스의 속성 PointEventData 클래스는 다음과 같은 속성을 가지고 있습니다. position: 터치 또는 마우스 포인터의 위치 clickCount: 클릭 횟수 clickTime: 클릭 시간 delta: 터치 또는 마우스 포인터의 이동량 dragging: 터치 또는 마우스 포인터가 이동 중인지 여부 button: 터치 또는 마우스 버튼 phase: 터치 또는 마우스 이벤트의 단계 pointerId:..
간단하게 오브젝트 간의 각도 구하는 방법
·
Unity
이전 게시글에서 내각을 이용해 두 물체간의 각도를 구하는 방법에 대해서 설명했습니다. 이번 글에서는 Vector3.SignedAngle() 함수를 이용해 시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 방법을 설명하겠습니다. Vector3.SignedAngle() 함수 Vector3.SignedAngle() 함수는 두 벡터의 방향 사이의 각도를 구하는 함수입니다. 이 함수는 부호가 있는(-180 ~ 180)각도를 반환합니다. float SignedAngle(Vector3 from, Vector3 to, Vector3 axis) //from: 시작 벡터 //to: 목표 벡터 //axis: 회전 축 벡터 이 함수는 두 벡터 from과 to의 방향 사이의 각도를 axis를 기준으로 계산하며, 결과값은 부호..