Asset

ㅋㅋ·2022년 9월 7일
0

프로젝트 내의 모든 에셋들은 GUID를 부여 받게 되고 이를 통해 구분하게 된다.

var resultGuid = AssetDatabase.FindAssets("t:material");
if (resultGuid != null)
{
    for (int i = 0; i < resultGuid.Length; i++)
    {
        string guid = resultGuid[i];
        string path = AssetDatabase.GUIDToAssetPath(guid);

        var loadedMat = AssetDatabase.LoadAssetAtPath<Material>(path);
        if (loadedMat != null)
        {
            var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);

            cube.transform.position = new Vector3(i * 2, 0, 0);
            cube.GetComponent<Renderer>().material = loadedMat;
        }
    }
}

guid는 AssetDatabase 클래스를 통해 찾거나 이용 가능하다.

메테리얼을 찾을 경우 FindAssets 함수에 타입 "t:"와 "material"을 합쳐서 전달해주면 된다.

혹은 파일 이름이나 label 등을 검색 할 수 있음 (참고)

if (GUILayout.Button("create asset"))
{
    var loadedMat = new Material(Shader.Find("Standard"));
    AssetDatabase.CreateAsset(loadedMat, $"Assets/TestMat{(int)Random.Range(0, 100)}.mat");
}

CreateAsset 함수를 통하여 에셋을 생성하는 것이 가능

0개의 댓글