// Asset importer callback public override void OnImportAsset(AssetImportContext ctx) { var onnxModel = new ModelProto(); using (var readStream = new FileStream(ctx.assetPath, FileMode.Open)) using (var inputStream = new CodedInputStream(readStream)) onnxModel.MergeFrom(inputStream); var model = ConvertOnnxModel(onnxModel); D.Log($"ONNX v{model.IrVersion}. Producer: {model.ProducerName}. Asset path: {ctx.assetPath}"); D.Log($"Barracuda model: {model}"); NNModelData assetData = ScriptableObject.CreateInstance <NNModelData>(); using (var memoryStream = new MemoryStream()) using (var writer = new BinaryWriter(memoryStream)) { ModelWriter.Save(writer, model); assetData.Value = memoryStream.ToArray(); } assetData.name = "Data"; assetData.hideFlags = HideFlags.HideInHierarchy; NNModel asset = ScriptableObject.CreateInstance <NNModel>(); asset.modelData = assetData; ctx.AddObjectToAsset("main obj", asset, LoadIconTexture()); ctx.AddObjectToAsset("model data", assetData); ctx.SetMainObject(asset); }