아래의 글은 원문:Renaming Serialized Fields의 내용을 토대로 다시 작성된 글입니다.
직렬화 된 필드의 이름 변경하기
변수 이름 변경하기
아래와 같은 클래스가 있을 경우
using UnityEngine;
class MyClass : MonoBehaviour
{
[SerializeField]
private string m_MyVariable;
}
m_MyVariable
의 변수를 다른 이름 m_AnotherVariable
으로 변경 할 경우 Prefab이나 Scene에 배치된 오브젝트들의 설정값이 변경되게 됩니다.
이를 원치 않을 경우 아래와 같은 방법으로 해결 할 수 있습니다.
using UnityEngine;
using UnityEngine.Serialization;
class MyClass : MonoBehaviour
{
[FormerlySerializedAs("m_MyVariable")]
[SerializeField]
private string m_AnotherVariable;
}
[SerializeField]
를 사용하지않은 public으로 선언된 변수를 변경할 경우
using UnityEngine;
class MyClass : MonoBehaviour
{
public string myValue;
}
아래와 같이 변경 할 수 있습니다.
using UnityEngine;
using UnityEngine.Serialization;
class MyClass : MonoBehaviour
{
[FormerlySerializedAs("myValue")]
[SerializeField]
private string m_Value;
public string myValue
{
get { return m_Value; }
set { m_Value = value; }
}
}
변경한 변수이름을 다시 변경하는 것도 가능합니다.
using UnityEngine;
using UnityEngine.Serialization;
class MyClass : MonoBehaviour
{
[FormerlySerializedAs("m_MyVariable")]
[FormerlySerializedAs("m_ABetterName")]
[SerializeField]
private string m_EvenBetterName;
}
선언한 Attribute
를 언제 제거 할 수 있습니까?
이름을 변경 한 후 Scene
과 Asset
을 다시 저장 한 후 속성을 제거할 수 있습니다.
반응형
'Engine > Unity3D' 카테고리의 다른 글
무한루프시 for문과 while문의 차이 (0) | 2019.07.19 |
---|---|
C# 프로퍼티에서 주의할 점 (2) | 2019.07.09 |
[Webinar] DOTS(데이터 지향 기술 스택) 설명 영상 (0) | 2019.06.26 |
Unity Editor 스크립트 변경시 컴파일 방식 설정하기 (0) | 2019.06.23 |
유니티 Memory leak을 잡아보자! (2) | 2016.12.27 |