문제 배열에 대한 용어 설명부터 하자면 Multidimensional Array는 int[,]로 선언되는 배열이다. Jagged Array와는 달리 정해진 크기만큼의 '행렬'이라고 보면 된다. Jagged Array는 int[][]로 선언되는 배열이다. Array of Arrays라고도 한다. 배열로 이루어진 배열이기 때문에 각 요소 배열의 길이가 다를 수 있다. Single Array는 int[]로 선언되는 배열이다. 일반적으로 속도 면에서는 빠른순으로 나열하면 Single Array > Jagged Array > Multidimensional Array이다. 아래 내용은 출처 란의 스택오버플로우 글에서 발췌한 것이다. 다음과 같은 요소에 접근하는 코드를 작성했을 때, static void SetEle..
Unity

문제 유니티에서 코루틴을 사용할 때, 일정 시간 뒤에 코드가 실행되고 싶으면 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..
문제 재정의된 비교 연산자 MonoBehaviour 인스턴스가 null인지 아닌지 확인하고 싶을때 보통 이렇게 코드를 작성한다. if(myGameObject == null) { } 하지만 유니티는 == 연산자를 재정의해 사용하고 있기 때문에 생각과는 다르게 동작한다. 우선 유니티가 왜 이렇게 재정의해서 사용하게 됐는지 알아보자. 왜 그랬을까? 먼저 요약하자면 유니티는 다음 두가지의 이유로 ==를 재정의해서 사용한다. 에디터에서의 디버깅 용이성 C/C++로 이루어진 내부 구현과 C# 래퍼 오브젝트, 그로 인한 오브젝트 생명주기의 차이 디버깅 용이성 첫 번째로, Inspector에서 보여지는 필드들(public, SerializedField)에 대한 디버깅 용이성이다. Monobehaviour가 어떤 필드를..
Jenkins젠킨스 설치하면 유니티 플러그인이 없는 상태로 설치될텐데, 플러그인부터 깔고 유니티 플러그인 관련 설정을 해줘야한다.1. Unity3d 플러그인 설치[Jenkins 관리] > [Plugins] > [Available Plugins] 탭 클릭 > Unity검색해서 Unity3d plugin 다운로드2. Unity 실행 경로 설정[Jenkins 관리] > [Global Tool Configuration] > [Unity3d] 에서 [Add Unity3d] 클릭 > Name에 버전명, Installation directory에 유니티 에디터 경로 설정(예를 들면 C:\Unity\2021.3.5.f1\) > [Save] 및 [Apply] 3. 프로젝트의 빌드 구성대시보드에서 생성한 프로젝트의 [구성..