Version: 2017.1
Experimental: this API is experimental and might be changed or removed in the future.

ScriptedImporter.OnImportAsset

切换到手册
public void OnImportAsset (Experimental.AssetImporters.AssetImportContext ctx);

参数

ctx 此参数包含处理导入事件所需的所有上下文信息,自定义导入器也用它来存储生成的 Unity 资源。

描述

此方法必须由派生类重写,并由资源管线调用来导入文件。

using UnityEngine;
using UnityEditor.Experimental.AssetImporters;
using System.IO;

[ScriptedImporter(1, "cube")] public class CubeImporter : ScriptedImporter { public float m_Scale = 1;

public override void OnImportAsset(AssetImportContext ctx) { var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); var position = JsonUtility.FromJson<Vector3>(File.ReadAllText(ctx.assetPath));

cube.transform.position = position; cube.transform.localScale = new Vector3(m_Scale, m_Scale, m_Scale);

// 'cube', being a GameObjects, will automatically be converted into a prefab. // (Only the 'Main Asset' is elligible to becoming a Prefab.) ctx.SetMainAsset("main obj", cube);

var material = new Material(Shader.Find("Standard")); material.color = Color.red;

// Assets need to provide a unique identifier string across imports with the assets changing, ctx.AddSubAsset("my Material", material);

// Assets that are not provided into the context as import outputs, // must be manually cleaned up var tempMesh = new Mesh(); DestroyImmediate(tempMesh); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961