From 58f8d2063b9cf02ff293be7a40cdfe8994da99b5 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 27 十月 2018 16:12:48 +0800
Subject: [PATCH] 4340 【前端】支持xlua方便IOS提审

---
 Assets/Editor/Tool/CreateLuaClassFile.cs |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/Assets/Editor/Tool/CreateLuaClassFile.cs b/Assets/Editor/Tool/CreateLuaClassFile.cs
index b724c56..d0ae8ef 100644
--- a/Assets/Editor/Tool/CreateLuaClassFile.cs
+++ b/Assets/Editor/Tool/CreateLuaClassFile.cs
@@ -71,6 +71,70 @@
 }
 
 
+public class CreateLuaBehaviourClassFile
+{
+    static string templatePath = "Assets/Editor/ScriptTemplate/LuaBehaviourTemplate.txt";
+
+    [MenuItem("Assets/Create/Lua/LuaBehaviour", false, 4)]
+    public static void CreateLuaClass()
+    {
+        var path = GetSelectedPathOrFallback() + "/NewBehaviour.lua";
+        AssetDatabase.DeleteAsset(path);
+        ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<LuaBehaviourTemplate>(), path, null, templatePath);
+    }
+
+    public static string GetSelectedPathOrFallback()
+    {
+        string path = "Assets";
+        foreach (UnityEngine.Object obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets))
+        {
+            path = AssetDatabase.GetAssetPath(obj);
+            if (!string.IsNullOrEmpty(path) && File.Exists(path))
+            {
+                path = Path.GetDirectoryName(path);
+                break;
+            }
+        }
+        return path;
+    }
+
+}
+
+class LuaBehaviourTemplate : EndNameEditAction
+{
+
+    public override void Action(int instanceId, string pathName, string resourceFile)
+    {
+        UnityEngine.Object o = CreateScriptAssetFromTemplate(pathName, resourceFile);
+        ProjectWindowUtil.ShowCreatedAsset(o);
+    }
+
+    internal static UnityEngine.Object CreateScriptAssetFromTemplate(string pathName, string resourceFile)
+    {
+        string fullPath = Path.GetFullPath(pathName);
+
+        StreamReader streamReader = new StreamReader(resourceFile);
+        string text = streamReader.ReadToEnd();
+        streamReader.Close();
+        var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName);
+        text = Regex.Replace(text, "#ClassName#", fileNameWithoutExtension);
+        text = Regex.Replace(text, "#DateTime#", System.DateTime.Now.ToLongDateString());
+
+        bool encoderShouldEmitUTF8Identifier = true;
+        bool throwOnInvalidBytes = false;
+        UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
+        bool append = false;
+        StreamWriter streamWriter = new StreamWriter(fullPath, append, encoding);
+        streamWriter.Write(text);
+        streamWriter.Close();
+        AssetDatabase.ImportAsset(pathName);
+        return AssetDatabase.LoadAssetAtPath(pathName, typeof(UnityEngine.Object));
+    }
+
+}
+
+
+
 public class CreateLuaConfigClassFile
 {
     static string templatePath = "Assets/Editor/ScriptTemplate/LuaConfigTemplate.txt";

--
Gitblit v1.8.0