From 9c2039ae499035e542ef16a04acf78be0e6a74dc Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 31 十月 2018 13:47:16 +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