본문 바로가기
개발/Unity

유니티 - 2차원 배열 디버깅 : 인스펙터에 보여주기 (2D Array in the Inspector)

by 피로물든딸기 2022. 6. 18.
반응형

Unity 전체 링크

 

2차원 배열 디버깅

 

(1) 2차원 배열 인스펙터에 보여주기 (2D Array in the Inspector)
(2) 커스텀 에디터로 인스펙터 수정하기 (Inspector with Custom Editors)
(3) 에디터 윈도우에서 실시간으로 2차원 배열 디버깅하기 (EditorWindow)
(4) 에디터 윈도우에서 블럭의 위치 Mapping 하기 (EditorWindow)


2차원 배열은 디버깅하기가 꽤 까다롭다.

매번 Console창에 로그를 찍어서 확인하기 힘들기 때문이다.

 

먼저 간단히 Inspector에 2차원 배열을 볼 수 있도록 해보자.

큐브 오브젝트에 아래의 스크립트를 추가한다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Cube : MonoBehaviour
{
    public int[,] array = new int[3, 3];
}

 

2차원 배열을 public으로 선언했지만 스크립트에서 볼 수 없다.

 

2차원 배열을 보기 위해서는 int[,]로 선언하면 안되고,

Class나 구조체를 만든 후 Class와 구조체를 배열로 만들어서 2차원 배열처럼 다루어야 한다.

이때 직렬화를 해주어야 Inspector에서 볼 수 있다.

Serializable을 사용하기 위해서는 System을 선언해야 한다.

using System; /* Serializable */
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Cube : MonoBehaviour
{
    [Serializable]
    public class _2dArray
    {
        public int[] arr = new int[3];
    }

    public _2dArray[] test = new _2dArray[3];

    public int[,] array = new int[3, 3];
}

 

이제 Inspector에서 크기가 3인 test 배열이 보인다.

test의 각 원소는 int[3] arr이므로 2차원 int [3, 3] 배열을 다루고 인스펙터에서 볼 수 있게 된다.

 

하지만 Serializable 처리를 하는 것도 번거롭고, 2차원 배열을 일렬로 봐야하는 것도 디버깅할 때 부담스럽다.

2차원 배열을 직관적으로 보기 위해서는 Inspector에 있는 에디터를 직접 커스터마이징하는 것이 좋다.


(1) 2차원 배열 인스펙터에 보여주기 (2D Array in the Inspector)
(2) 커스텀 에디터로 인스펙터 수정하기 (Inspector with Custom Editors)
(3) 에디터 윈도우에서 실시간으로 2차원 배열 디버깅하기 (EditorWindow)
(4) 에디터 윈도우에서 블럭의 위치 Mapping 하기 (EditorWindow)

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글