문제 커스텀 디버그 클래스를 작성하고 이 함수를 사용했을 때, 에디터 콘솔에서 더블 클릭을 하면 함수를 호출한 파일이 아니라 커스텀 디버그 클래스 파일이 열린다. 예를 들면 CoroutineTest.cs 에서 Debug.Log 를 호출했는데도 불구하고 Debug.cs가 열린다. 커스텀 디버그 클래스를 작성하는 이유는 이 글을 참고하자. [Unity/최적화] 04. Debug Log를 에디터에서만 작동하게 하자 문제 일반적으로 생각하는 것과는 달리, Debug Log 함수들은 디버그 빌드에서만 작동하는게 아니라 릴리즈 빌드에서도 작동한다. 이는 성능 저하로 이어지기 때문에 빌드를 하기 전에 Debug Log 함수 upbo.tistory.com 해결 방안 에디터에서 더블클릭으로 에셋을 열 때 호출되는 OnO..
Unity
문제일반적으로 생각하는 것과는 달리, Debug Log 함수들은 디버그 빌드에서만 작동하는게 아니라 릴리즈 빌드에서도 작동한다. 이는 성능 저하로 이어지기 때문에 빌드를 하기 전에 Debug Log 함수들을 지워주는 것이 좋다. 해결방안1. Conditional Attribute첫 번째는 Conditional Attribute를 사용해서 컴파일 시에 Debug.Log 호출 관련된 부분들을 제외하는 방법이다.일일이 찾아내서 지우기는 번거롭고 디버그 빌드에서 또 사용할 수도 있기 때문에, 다음과 같은 커스텀 클래스 및 함수를 작성해 Assets\Plugins 폴더 내에 저장한다.using System.Collections;using System.Collections.Generic;using UnityEngi..
문제 배열에 대한 용어 설명부터 하자면 Multidimensional Array는 int[,]로 선언되는 배열이다. Jagged Array와는 달리 정해진 크기만큼의 '행렬'이라고 보면 된다. Jagged Array는 int[][]로 선언되는 배열이다. Array of Arrays라고도 한다. 배열로 이루어진 배열이기 때문에 각 요소 배열의 길이가 다를 수 있다. Single Array는 int[]로 선언되는 배열이다. 일반적으로 속도 면에서는 빠른순으로 나열하면 Single Array > Jagged Array > Multidimensional Array이다. 아래 내용은 출처 란의 스택오버플로우 글에서 발췌한 것이다. 다음과 같은 요소에 접근하는 코드를 작성했을 때, static void SetEle..
문제 유니티에서 코루틴을 사용할 때, 일정 시간 뒤에 코드가 실행되고 싶으면 YieldInstruction 을 사용한다. 예를 들면 yield return new WaitForEndOfFrame(); 가 있다. yield는 가비지를 생성하지 않지만 계속해서 새로운 YieldInstruction 오브젝트를 만들면 가비지가 생성된다. 실험 public class CoroutineTest : MonoBehaviour { private WaitForEndOfFrame WaitForEndOfFrame = new WaitForEndOfFrame(); [SerializeField] private int count = 10000; [SerializeField] private bool useCache = true; pr..