From 5bbcb15dc081ede6e6d390c81e7ec64901a1988a Mon Sep 17 00:00:00 2001
From: cehua_Czg <tingame100@163.com>
Date: 星期一, 22 四月 2019 16:30:34 +0800
Subject: [PATCH] 6666 第一章NPC配置
---
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