유니티 엔진 (Unity Engine)

[Unity] Serialize 타입, 값 유지하기 (FormerlySerializedAs)

원생계 2020. 10. 12. 02:41

.

커스텀 컴포넌트를 추가해서 인스펙터로 값을 많이 입력하고 있었는데, 리팩토링하면서 타입과 내용을 변경할 일이 생겼습니다. 그냥 바꿨다간 인스펙터에 입력했던 값들이 모두 날아가기 때문에 별도의 방법을 써야하나 고민이었는데..

결과적으론 FormerlySerializedAs( oldName ) 속성을 사용하면 해결됩니다.

using UnityEngine;
using UnityEngine.Serialization;

public class MyMonster : MonoBehaviour
{
    [FormerlySerializedAs("hitpoints")]
    public int health;
}

위처럼, FormerlySerializeAs 인자로 이전 변수 이름을 넣어주면, 새로운 변수에 값이 반영됩니다.

타입만 변경하는 경우엔, 내부 인자값이 바뀌지만 않으면 변경된 타입으로 바로 교체됩니다.

https://docs.unity3d.com/ScriptReference/Serialization.FormerlySerializedAsAttribute.html

 

Unity - Scripting API: FormerlySerializedAsAttribute

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

.

728x90
반응형