Posts 유니티 - 인스펙터에 프로퍼티 표시하기
Post
Cancel

유니티 - 인스펙터에 프로퍼티 표시하기

Memo


1
2
public GameObject Property1 => Field1;
private GameObject Field1;

이렇게 다른 필드와 연결된 프로퍼티라면

1
2
3
4
public GameObject Property1 => field1;

[SerializeField]
private GameObject field1;

대상 필드에 [SerializeField]를 붙여서 인스펙터에 표시할 수 있다.

하지만

1
2
[SerializeField]
public GameObject Property2 { get; private set; }

프로퍼티는 앞에 [SerializeField]를 붙여도 인스펙터에 표시되지 않는다.


그런데,

1
2
[field: SerializeField]
public GameObject Property3 { get; private set; }

이렇게 프로퍼티의 앞에 [field: SerializeField]를 붙이면

image

인스펙터에 표시할 수 있다.


제한사항

  • 단순히 get;, set;만 작성한 자동 구현 프로퍼티만 인스펙터에 나타낼 수 있다.
  • 읽기 전용 프로퍼티, Getter 또는 Setter의 블록을 구현한 프로퍼티는 인스펙터에 나타낼 수 없다.
1
2
3
// 자동 구현 프로퍼티 : 표시 가능
public GameObject Property1 { get; set; }
public GameObject Property2 { get; private set; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 읽기 전용 프로퍼티 : 표시 불가능
public GameObject Property3 { get; }

// Getter 구현 프로퍼티 : 표시 불가능
public GameObject Property4
{
    get
    {
        // ...
    }
}

// Getter/Setter 구현 프로퍼티 : 표시 불가능
public GameObject Property5
{
    get
    {
        // ...
    }
    set
    {
        // ...
    }
}
This post is licensed under CC BY 4.0 by the author.

OpenGL 공부 - 06 - Shader File

OpenGL 공부 - 07 - Index Buffer