본문 바로가기
Works/Unity 3D

SerializeField

by Vader87 2022. 11. 17.
반응형

 

 

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


참고

https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

반응형

'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

댓글