유니티 scriptable object 오류

dnslfkrh·2024년 12월 7일

게임 실행 시 씬 이동을 통해 스크립터블 오브젝트가 있는 씬을 시작하면 간헐적으로 스크립터블 오브젝트의 스크립트가 연결되지 않아 스크립터블 오브젝트가 missing이 뜨는 경우가 생겼다.

예시 코드

using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class MapData
{
    public string mapName;
}

[CreateAssetMenu(fileName = "MapDatabase", menuName = "Game/Map Database")]
public class MapDatabase : ScriptableObject
{
    public List<MapData> maps = new List<MapData>
    {
        new MapData { mapName = "Grass" },
        new MapData { mapName = "Snow" },
        new MapData { mapName = "Lava" },
        new MapData { mapName = "Castle" }
    };
}

맵 선택 UI에 사용하기 위해 맵을 스크립터블 오브젝트로 작성했다.

생성된 MapDatabase 에셋을 필요한 오브젝트에 연결하여 사용했지만 위에서 말한 오류가 간헐적으로 생겼다.

원인은 스크립트 파일명이었다.

클래스명과 에셋명까지 MapDatabase 작성했지만 스크립트 파일명을 MapData로 작성했던 것이다..

스크립트명을 수정하니 스크립트 missing이 해결되었다..

profile
안녕하세요

0개의 댓글