unity3d右键快速打开文件
在开发中如果只是想快速查看某个(如.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;
}
}
分享名称:unity3d右键快速打开文件
分享URL:http://www.jxjierui.cn/article/gdchij.html


咨询
建站咨询
