https://docs.unity3d.com/ScriptReference/SerializeField.html
주로 접근 제한된 변수를 inspector 에서 참조 및 값 수정을 하려고 선언하는 Unity 에서 제공하는 Attribute
Serialize Field 선언을 하면 public 선언을 하는 것이 느린 케이스가 있었다고 하나 Unity 5 에서 수정 되었다고 한다.
https://youtu.be/4lAam8Marns?t=420
public 대신 SerializeField 를 사용해야 되는 이유
1. Unity 에서 inspector 에 불필요한 값이 노출 된다. (HideInInspector 를 사용해서 inspector 에 노출 시키지 않는 것도 가능은 하다.)
https://docs.unity3d.com/kr/530/ScriptReference/HideInInspector.html
2. public 을 피함으로써 얻을 수 있는 많은 이득들이 있다.
https://softwareengineering.stackexchange.com/questions/143736/why-do-we-need-private-variables
https://stackoverflow.com/questions/1568091/why-use-getters-and-setters-accessors
결론
public 은 필요한 경우에만 사용하고 inspector 에서의 접근을 위한 것이라면 SerializeField 를 사용하자
참고로, 다음과 같이 사용하는 것도 허용된다.
[field: SerializeField] public int SomeProperty { get; private set; }
https://stackoverflow.com/questions/70253940/serializefield-vs-public-will-this-cause-problems-later
참고
'Works > Unity 3D' 카테고리의 다른 글
Unity Muse (0) | 2023.08.16 |
---|---|
Localization 에서 CSV 사용 Tip (0) | 2023.08.09 |
Windows 11 에서 Unity Hub 설치 이슈 해결 (1) | 2022.04.14 |
Unity 프로젝트에 Local Package 추가 방법 (0) | 2021.12.23 |
[Unity] OpenUPM 사용법 2 (0) | 2021.08.26 |
댓글