문제 두 점 간의 거리는 각 요소(x, y, z) 의 차를 제곱한 다음 더한 값에 루트를 씌운 값이다. 게임에서도 이 공식을 사용해야할 때가 자주 있다. 이때 정확한 거리값이 필요하다면 이 공식을 사용하지만, 일정 거리 내 들어왔다던가하는 단순 비교에는 굳이 루트를 취하지 않아도 계산이 가능하다. 차원이 달라도 점 간 거리 공식은 같기 때문에 Vector3뿐만 아니라 Vector2, Vector4에도 모두 해당된다. 해결방안 따라서 이런 상황에서는 Vector3.Distance 또는 Vector3.magnitude보다는 Vector3.sqrMagnitude를 사용한다. 참고로 sqrMagnitude는 square root of Magnitude가 아니라, square of Magnitude이다. Unit..
Unity
Rider에서 지원하는 Unity specific한 구문분석 기능을 Visual Studio에서도 비슷하게 사용할 수 있는 패키지이다. 예를 들면 내용이 비어있는 Update함수가 있을 때 Empty Unity Message 라는 알림을 띄워준다. 주로 Performances 카테고리를 많이 참고하게 될 듯 싶다. GitHub - microsoft/Microsoft.Unity.Analyzers: Roslyn analyzers for Unity game developers Roslyn analyzers for Unity game developers. Contribute to microsoft/Microsoft.Unity.Analyzers development by creating an account on ..

문제 커스텀 디버그 클래스를 작성하고 이 함수를 사용했을 때, 에디터 콘솔에서 더블 클릭을 하면 함수를 호출한 파일이 아니라 커스텀 디버그 클래스 파일이 열린다. 예를 들면 CoroutineTest.cs 에서 Debug.Log 를 호출했는데도 불구하고 Debug.cs가 열린다. 커스텀 디버그 클래스를 작성하는 이유는 이 글을 참고하자. [Unity/최적화] 04. Debug Log를 에디터에서만 작동하게 하자 문제 일반적으로 생각하는 것과는 달리, Debug Log 함수들은 디버그 빌드에서만 작동하는게 아니라 릴리즈 빌드에서도 작동한다. 이는 성능 저하로 이어지기 때문에 빌드를 하기 전에 Debug Log 함수 upbo.tistory.com 해결 방안 에디터에서 더블클릭으로 에셋을 열 때 호출되는 OnO..

문제일반적으로 생각하는 것과는 달리, Debug Log 함수들은 디버그 빌드에서만 작동하는게 아니라 릴리즈 빌드에서도 작동한다. 이는 성능 저하로 이어지기 때문에 빌드를 하기 전에 Debug Log 함수들을 지워주는 것이 좋다. 해결방안1. Conditional Attribute첫 번째는 Conditional Attribute를 사용해서 컴파일 시에 Debug.Log 호출 관련된 부분들을 제외하는 방법이다.일일이 찾아내서 지우기는 번거롭고 디버그 빌드에서 또 사용할 수도 있기 때문에, 다음과 같은 커스텀 클래스 및 함수를 작성해 Assets\Plugins 폴더 내에 저장한다.using System.Collections;using System.Collections.Generic;using UnityEngi..