Browse Source

Add: LuaAsset

AnnulusGames 11 months ago
parent
commit
5b2740f957

+ 20 - 0
src/Lua.Unity/Assets/Lua.Unity/Editor/LuaAssetEditor.cs

@@ -0,0 +1,20 @@
+using UnityEditor;
+
+namespace Lua.Unity.Editor
+{
+    [CustomEditor(typeof(LuaAsset))]
+    public sealed class LuaAssetEditor : UnityEditor.Editor
+    {
+        SerializedProperty textProperty;
+
+        public override void OnInspectorGUI()
+        {
+            if (textProperty == null) textProperty = serializedObject.FindProperty("text");
+
+            using (new EditorGUI.IndentLevelScope(-1))
+            {
+                EditorGUILayout.TextArea(textProperty.stringValue);
+            }
+        }
+    }
+}

BIN
src/Lua.Unity/Assets/Lua.Unity/Editor/LuaAssetIcon.png


+ 19 - 0
src/Lua.Unity/Assets/Lua.Unity/Editor/LuaImporter.cs

@@ -0,0 +1,19 @@
+using System.IO;
+using UnityEditor.AssetImporters;
+using UnityEngine;
+
+namespace Lua.Unity.Editor
+{
+    [ScriptedImporter(1, "lua")]
+    public class LuaImporter : ScriptedImporter
+    {
+        public override void OnImportAsset(AssetImportContext ctx)
+        {
+            var text = File.ReadAllText(ctx.assetPath);
+            var asset = ScriptableObject.CreateInstance<LuaAsset>();
+            asset.text = text;
+            ctx.AddObjectToAsset("Main", asset);
+            ctx.SetMainObject(asset);
+        }
+    }
+}

+ 3 - 0
src/Lua.Unity/Assets/Lua.Unity/Runtime/AssemblyInfo.cs

@@ -0,0 +1,3 @@
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("Lua.Unity.Editor")]

+ 10 - 0
src/Lua.Unity/Assets/Lua.Unity/Runtime/LuaAsset.cs

@@ -0,0 +1,10 @@
+using UnityEngine;
+
+namespace Lua.Unity
+{
+    public sealed class LuaAsset : ScriptableObject
+    {
+        [SerializeField] internal string text;
+        public string Text => text;
+    }
+}