UnityProject面板中右键创建新的Lua脚本以及修改文件默认打开方式的编辑器

来源:互联网 发布:oracle数据库考试题 编辑:程序博客网 时间:2024/06/18 02:00
新大厅中要介入热更新,那自然少不了Lua。这两天在学习腾讯的xLua还有之前一直有在积累的shader知识。由于Unity原生没有直接创建lua脚本的功能,而且VS对Lua和Shader支持的都不是特别好,而且比较臃肿,所以我制作了创建lua脚本和改变其默认打开方式的编辑器。

1.右键创建Lua脚本

 1     [MenuItem("Assets/Create/Lua Script #&c", priority = 81)] 2     static void CreateLuaScriptMethod() 3     { 4         Object[] obj = Selection.objects; 5          6         string assetPath = AssetDatabase.GetAssetPath(obj[0]); 7         string path = ""; 8         if (!Path.HasExtension(assetPath)) 9         {10             path = Path.GetFullPath(assetPath);11         }12         else13         {14             string dirPath = Path.GetDirectoryName(assetPath);15             path = Path.GetFullPath(dirPath);16         }17         path += "/NewLuaScript.lua.txt";18         int index = 1;19         while (File.Exists(path))20         {21             string dir = Path.GetDirectoryName(path);22             path = dir + "/NewLuaScript"+index+".lua.txt";23             index++;24         }25         Debug.Log(path);26         StreamWriter sw = new StreamWriter(path, false);27         sw.Close();28         AssetDatabase.Refresh();29     }

  priority 是设置该条目的优先级,为了让它在创建C#脚本下方

  在文件上右键时在它的目录下生成新的lua.txt文件(txt是为了能被Unity识别为TextAsset,xLua的脚本就是这种格式)。当命名重复会自动在后面增加index。

2.将Shader文件的打开方式更换为系统默认的打开方式

[OnOpenAsset]    public static bool OpenShaderAsset(int instanceID, int line)    {        if (EditorUtility.InstanceIDToObject(instanceID) is Shader)        {            string assetPath = AssetDatabase.GetAssetPath(instanceID);            System.Diagnostics.Process.Start(Application.dataPath + "/../" + assetPath);            return true;        }        return false;    }

  系统默认打开方式人人应该都会了,想让.txt文件也用默认方式打开再创建一个函数,把Shader改成TextAsset即可。这样我的lua脚本和Shader脚本都会有VSCode打开

阅读全文
0 0
原创粉丝点击