自定义资源导入类型
using UnityEngine;
using UnityEditor.Experimental.AssetImporters;
using System.IO;

[ScriptedImporter(1, "jjj")]
public class Script_03_11 : ScriptedImporter
{
    public override void OnImportAsset(AssetImportContext ctx)
    {
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        Vector3 position = JsonUtility.FromJson<Vector3>(File.ReadAllText(ctx.assetPath));

        cube.transform.position = position;
        cube.transform.localScale = Vector3.one;
        Material mat = new Material(Shader.Find("Standard"));
        mat.color = Color.green;
        ctx.AddObjectToAsset("material", mat);
        cube.GetComponent<MeshRenderer>().material = mat;
        ctx.AddObjectToAsset("obj",cube);
        ctx.SetMainObject(cube);
    }
}


[ScriptedImporter(1, "jjj")] 表示自定义的资源后缀为jjj,导入该类型的文件时,就会执行OnInportAsset方法,创建一个Cube,位置信息使用自定义资源的json数据,赋值一个材质,材质需要保存起来,不然就会丢失。

图片.png


首页 我的博客
粤ICP备17103704号