ctx | This argument contains all the contextual information needed to process the import event and is also used by the custom importer to store the resulting Unity Asset. |
This method must by overriden by the derived class and is called by the Asset pipeline to import files.
#pragma strict @ScriptedImporter(1, "cube") public class CubeImporter extends ScriptedImporter { public var m_Scale: float = 1; public override function OnImportAsset(ctx: AssetImportContext) { var cube: var = GameObject.CreatePrimitive(PrimitiveType.Cube); var position: var = JsonUtility.FromJson.<Vector3>(File.ReadAllText(ctx.assetPath)); cube.transform.position = position; cube.transform.localScale = new Vector3(m_Scale, m_Scale, m_Scale); // (Only the 'Main Asset' is elligible to becoming a Prefab.) ctx.SetMainAsset("main obj", cube); var material: var = 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); // must be manually cleaned up var tempMesh: var = new Mesh(); DestroyImmediate(tempMesh); } }
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); } }
Did you find this page useful? Please give it a rating: