Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor.Experimental.AssetImporters;
using System.IO;
using UnityEditor;
using UnityEngine.Assertions;
using System.Linq;
[ScriptedImporter(1, "cube")]
public class CubeImporter : ScriptedImporter
public override void OnImportAsset(AssetImportContext ctx)
var cube = AssetDatabase.LoadMainAssetAtPath(ctx.assetPath) as GameObject;
cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.localScale = new Vector3(1, 1, 1);
var assets = AssetDatabase.LoadAllAssetsAtPath (ctx.assetPath);
var material = assets.FirstOrDefault (c => == "Cube Material") as Material;
if (material == null) {
material = new Material(Shader.Find("Standard")); = "Cube Material";
cube.GetComponent<MeshRenderer> ().material = material;
var scale = JsonUtility.FromJson<Vector3>(File.ReadAllText(ctx.assetPath));
cube.transform.localScale = scale;
}catch (System.Exception e) {
Debug.LogError (e.Message, cube);
ctx.AddObjectToAsset(, material);
ctx.AddObjectToAsset("CUBE", cube);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.