벡터 직렬화하여 저장

Noke·2025년 7월 11일

Unity TIL

목록 보기
31/31

벡터 정보는 바로 직렬화하여 저장할 수 없다. 그래서, 이번에는 벡터를 직렬화하여 저장하는 방법에 대해서 적어 보았다.


💦 Vector 직렬화

벡터는 구조체로 3가지의 실수(float) 값인 x, y, z를 가지고 있다. 하지만, 직렬화가 되지 않으므로 바로 저장이 불가능하다.

그래서, 아래와 같이 직렬화 가능한 벡터 구조체를 만들어 보았다.

[Serializable]
public struct SerializableVector3
{
    public float x;
    public float y;
    public float z;

    public SerializableVector3(Vector3 vector)
    {
        x = vector.x;
        y = vector.y;
        z = vector.z;
    }

    // Vector3로의 암시적 변환
    public static implicit operator Vector3(SerializableVector3 vector)
    {
        return new Vector3(vector.x, vector.y, vector.z);
    }

    // SerializableVector3로의 암시적 변환
    public static implicit operator SerializableVector3(Vector3 vector)
    {
        return new SerializableVector3(vector);
    }
}

위와 같이, 직렬화 가능한 벡터 구조체를 통해 Json 파일로 저장이 가능해진다.


✨ 마무리

오늘은 벡터 구조체의 직렬화 방법에 대해서 알아보았다. 정말 간단하게 작성 가능하니, 모두 위치 정보를 저장할 때 위와 같이 사용해 보자.

profile
유니티 개발자(진)

0개의 댓글