[SerializeField]를 사용하는 이유

 

1. private 필드의 직렬화를 원할 때

 

  유니티에서는 기본적으로 스크립트의 public 필드만 직렬화 할 수 있는데,

   다른 스크립트에서 해당 필드를 여전히 private 으로 감추면서도

직렬화를 통해 유니티 에디터의 인스펙터를 통한 값의 입력이 가능

 

2.직렬화를 커스터마이징 하기 위해

 

직렬화된 필드에 할당할 수 있는 값을 제한,   인스펙터에서 필드를 선택할 때 설명을 제공

 

3. 더 쉽게 업데이트 하기 위해

 

필드의 이름이나 타입을 변경해야 하는 경우

직렬화된 데이터도 업데이트해야 하는데,

직렬화된 데이터가 변경된 필드를 따라가도록 할 수 있다.

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

public class App : MonoBehaviour
{
    public enum PlatformType
    {
        PC, Android, iOS
    }
    [SerializeField]
    private PlatformType platformType;
    [SerializeField]
    private int hp = 10;
    [SerializeField]
    private float exp = 11.33f;

    [SerializeField]
    private bool isGameOver = false;

    [SerializeField]
    private string appName = "MyApp";

    [SerializeField]
    private GameObject[] arrGameObjects;

    [SerializeField]
    private List<Transform> arrTransforms;
    void Start()
    {
        
    }

 
    void Update()
    {
        
    }
}

 

+ Recent posts