在开发中如果只是想快速查看某个(如.lua)文件的话,可以活用右键功能,这个在打开多个工程并调试的情况下略显高效。
成都创新互联公司专业为企业提供颍东网站建设、颍东做网站、颍东网站设计、颍东网站制作等企业网站建设、网页设计与制作、颍东企业网站模板建站服务,十多年颍东做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
如图:
写了一个工具类,并添加了两个方法:可选用notepad++或记事本快速打开文件。
代码如下:
using UnityEngine; using System.Collections; using UnityEditor; using thisObject = UnityEngine.Object; using System.Threading; using System; public class EasyTool { const int OpenMax = 10; //一次打开文件的最大数量 const string NotePadJJ_APP_NAME = "notepad++.exe"; const string NotePad_APP_NAME = "notepad.exe"; ////// 用notepad++打开文件 /// [MenuItem("Assets/EasyTool/Open_NotePad++")] static public void OpenForNotePadJJ() { int count = 0; foreach (var go in GetSelectObject()) { if (go != null) { string dir_path = GetPath(go); InvokeCmd(NotePadJJ_APP_NAME, dir_path); } count++; if (count > OpenMax) { break; } } } ///// 用记事本打开文件 /// [MenuItem("Assets/EasyTool/Open_NotePad")] static public void OpenForNotePad() { int count = 0; foreach (var go in GetSelectObject()) { if (go != null) { string dir_path = GetPath(go); InvokeCmd(NotePad_APP_NAME, dir_path); count++; if (count > OpenMax) { break; } } } } ////// 调用CMD 命令 /// public static void InvokeCmd(string cmd, string dir_path) { UnityEngine.Debug.Log(cmd); AssetDatabase.Refresh(); new Thread(new ThreadStart(() => { try { System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = cmd; p.StartInfo.Arguments = dir_path; p.Start(); p.WaitForExit(); p.Close(); } catch (Exception e) { Debug.Log(e.Message); } })).Start(); } ////// 获取选择的文件 /// ///static public thisObject[] GetSelectObject() { if (Selection.objects.Length == 0) { return new thisObject[0]; } return Selection.objects; } /// /// 获取文件路径 /// /// ///static public string GetPath(thisObject go) { string str = Application.dataPath.Replace("Assets", ""); string path = AssetDatabase.GetAssetPath(go); string dir_path = System.IO.Path.GetFullPath(str + path); return dir_path; } }