在开发中如果只是想快速查看某个(如.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";
/// <summary>
/// 用notepad++打开文件
/// </summary>
[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;
}
}
}
// <summary>
/// 用记事本打开文件
/// </summary>
[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;
}
}
}
}
/// <summary>
/// 调用CMD 命令
/// </summary>
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();
}
/// <summary>
/// 获取选择的文件
/// </summary>
/// <returns></returns>
static public thisObject[] GetSelectObject()
{
if (Selection.objects.Length == 0)
{
return new thisObject[0];
}
return Selection.objects;
}
/// <summary>
/// 获取文件路径
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
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;
}
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。