summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/Udon/Editor/ProgramSources/UdonAssemblyProgram/UdonAssemblyProgramAssetImporter.cs
blob: 409c2c685734ccc95bc6f51f0000b1b78326f25c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System.IO;
using JetBrains.Annotations;
using UnityEditor;
using UnityEditor.Experimental.AssetImporters;
using UnityEngine;

namespace VRC.Udon.Editor.ProgramSources
{
    [ScriptedImporter(1, "uasm")]
    [UsedImplicitly]
    public class UdonAssemblyProgramAssetImporter : ScriptedImporter
    {
        public override void OnImportAsset(AssetImportContext ctx)
        {
            UdonAssemblyProgramAsset udonAssemblyProgramAsset = ScriptableObject.CreateInstance<UdonAssemblyProgramAsset>();
            SerializedObject serializedUdonAssemblyProgramAsset = new SerializedObject(udonAssemblyProgramAsset);
            SerializedProperty udonAssemblyProperty = serializedUdonAssemblyProgramAsset.FindProperty("udonAssembly");
            udonAssemblyProperty.stringValue = File.ReadAllText(ctx.assetPath);
            serializedUdonAssemblyProgramAsset.ApplyModifiedProperties();

            udonAssemblyProgramAsset.RefreshProgram();

            ctx.AddObjectToAsset("Imported Udon Assembly Program", udonAssemblyProgramAsset);
            ctx.SetMainObject(udonAssemblyProgramAsset);
        }
    }
}