헷갈리는 오브젝트 회전 방법 Part 2 (Lerp, Slerp, RotateTowards)
·
Unity
Quaternion.Lerp() Quaternion.Lerp() 메서드는 두 쿼터니언 사이의 선형 보간을 수행합니다. 이는 두 점 사이를 직선으로 연결하는 것과 유사합니다. 이 방법은 보간 속도가 일정하기 때문에 빠르지만, 이러한 선형 보간은 짧은 거리에서는 잘 작동하지만 긴 거리에서는 비현실적으로 보일 수 있습니다. Quaternion.Lerp() 메서드의 구문은 다음과 같습니다. Quaternion.Lerp(Quaternion from, Quaternion to, float t); // from 시작 쿼터니언 // to 목표 쿼터니언 // t 보간 비율 0 - 1 Quaternion.Lerp() 메서드는 다음과 같이 작동합니다. 시작 쿼터니언과 종료 쿼터니언의 차이를 구합니다. 차이를 보간 비율 (t..
시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 방법
·
Unity
Unity 오브젝트의 시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 방법은 여러 가지가 있습니다. 그 중 하나인 두 오브젝트의 내적을 구하고, 라디안(π)을 호도각(0~360°)으로 변환시켜 사용하는 방법을 소개하겠습니다. 내적이란? 내적은 두 벡터의 크기와 방향의 일치 정도를 나타내는 값으로 Vector3.Dot() 메서드를 통해 구할 수 있습니다. A⋅B=∣A∣⋅∣B∣⋅cos(θ) 여기서 ∣A∣와 ∣B∣는 각각 벡터 A와 B의 크기(길이)이고, θ는 A와 B 사이의 각입니다. 내적의 결과는 스칼라값입니다. public static float Dot(Vector3 lhs, Vector3 rhs) => (float) ((double) lhs.x * (double) rhs.x + (double) lh..
C# 프로젝트 파일이 열리지 않을 때 (VSCode)
·
Unity
is in unsupported format (for example, a traditional .Net Framework project). It need be converted to new SDK style to work in C# Dev Kit. VSCode에 이와 같은 로그가 나오며 Visual Studio에서는 작업이 되지만 VSCode에서는 안되는 경우 필자의 경우 Mac으로만 작업을 하다 오랜만에 Window10에서 포스팅용 유니티 프로젝트를 생성했더니 그랬다. 아마 VSCode용 C# Extension과 Unity 및 .Net Install Tool 이 생기거나 업데이트되어서 그런것 같다. https://code.visualstudio.com/ Visual Studio Code - Code E..
헷갈리는 오브젝트 회전 방법 Part 1 (LookRotation, LookAt, RotateTowards)
·
Unity
Unity에서 오브젝트를 회전하는 방법에는 여러 가지가 있습니다. 그 중에서도 가장 일반적인 방법은 쿼터니언을 사용하는 것입니다. 쿼터니언은 3차원 회전을 표현하는 데 사용되는 4차원 벡터입니다. Unity에서 쿼터니언을 사용하여 오브젝트를 회전하는 방법은 다음과 같습니다. 먼저, Quaternion.LookRotation() 또는 transform.LookAt() 메서드를 사용하여 회전할 값인 쿼터니언 값을 구합니다. 그런 다음, Transform.rotation 속성을 사용하여 오브젝트의 회전 쿼터니언을 설정합니다. transform.LookAt() 메서드 transform.LookAt() 메서드는 오브젝트를 지정된 위치와 방향으로 회전합니다. public void LookAt(Transform ta..
Homebrew로 설치한 앱의 정보를 확인하는 방법
·
MacOS
Mac OS에서 Homebrew를 사용하여 앱을 설치하면, 앱에 대한 정보는 /usr/local/Cellar 디렉토리에 저장됩니다. 이 디렉토리에는 앱의 버전, 의존성, 설치 날짜 등의 정보가 포함되어 있습니다. brew info [Appname] 명령을 사용하여 Homebrew로 설치한 앱의 정보를 확인할 수 있습니다. [Appname] 자리에 앱의 이름을 입력합니다. 예를 들어, brew info graphviz 명령을 실행하면 다음과 같은 정보가 출력됩니다. 이 출력에서 다음과 같은 정보들을 확인할 수 있습니다. 앱의 이름: graphviz 버전: 9.0.0 설치된 위치: /opt/homebrew/Cellar/graphviz/9.0.0 라이선스: EPL-1.0 홈페이지: https://graphvi..
Firebase Database에 데이터를 저장하는 방법
·
Unity/Firebase
Firebase Database는 Firebase에서 제공하는 NoSQL 데이터베이스입니다. NoSQL 데이터베이스는 관계형 데이터베이스와 달리, 데이터를 행과 열로 저장하지 않고, 키-값 쌍으로 저장합니다. Firebase Database에 데이터를 저장하는 방법은 여러 가지가 있습니다. 그 중 대표적인 메서드는 다음과 같습니다. SetRawJsonValueAsync UpdateChildrenAsync SetValueAsync SetPriorityAsync SetRawJsonValueAsync SetRawJsonValueAsync() 메서드는 지정된 경로에 JSON 값을 저장하는 메서드입니다. 이 메서드는 지정된 경로에 JSON 값을 저장합니다. JSON 값은 키-값 쌍으로 구성된 객체 또는 배열이 될..
Firebase 토큰을 가져오는 방법
·
Unity/Firebase
Firebase 토큰은 Firebase Cloud Messaging(FCM)을 사용하여 앱에 알림을 보내기 위해 필요한 고유한 식별자입니다. Firebase 토큰을 가져오는 방법은 여러 가지가 있습니다. 그 중 하나는 FirebaseMessaging.GetTokenAsync() 메서드를 사용하는 것입니다. FirebaseMessaging.GetTokenAsync() 메서드는 비동기 메서드로, 토큰을 가져오는 작업이 완료되면 TaskCompletionSource 객체를 통해 토큰을 전달합니다. FirebaseMessaging.GetTokenAsync().ContinueWithOnMainThread() 메서드는 FirebaseMessaging.GetTokenAsync() 메서드의 결과를 UI 스레드에서 처리..
UnityException: Could not find any valid targets to launch on for Android
·
Unity/Tip
OperationFailedException: Installation failed. See the Console for details. UnityEditor.Android.AndroidDeploymentTargetsExtension.UploadAPK (UnityEditor.BuildReporting.BuildReport buildReport, UnityEditor.Android.AndroidDevice device, UnityEditor.ProgressTaskManager taskManager) 이와같은 에러가 발생하며 앱 빌드는 잘되지만 Unity Editor와 연결된 Android에 Install이 되질 않는 경우 Android에 설치된 해당 앱을 삭제하고 Build And Run을 하면 해결된다. ..