using UnityEngine;
|
using UnityEditor;
|
using UnityEditor.Callbacks;
|
using System.IO;
|
|
public class FileOpenEx
|
{
|
|
[OnOpenAssetAttribute(1)]
|
public static bool step1(int instanceID, int line)
|
{
|
return false;
|
}
|
|
// step2 has an attribute with index 2, so will be called after step1
|
[OnOpenAssetAttribute(2)]
|
public static bool step2(int instanceID, int line)
|
{
|
string path = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));
|
string name = Application.dataPath + "/" + path.Replace("Assets/", "");
|
|
if (name.EndsWith(".Shader") || name.EndsWith(".cginc") || name.EndsWith(".shader") || name.EndsWith(".lua.txt") || name.EndsWith(".lua"))
|
{
|
if (string.IsNullOrEmpty(ExtensionalTools.shaderEditorPath))
|
{
|
return false;
|
}
|
else
|
{
|
System.Diagnostics.Process process = new System.Diagnostics.Process();
|
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
|
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
startInfo.FileName = ExtensionalTools.shaderEditorPath;
|
startInfo.Arguments = name;
|
process.StartInfo = startInfo;
|
process.Start();
|
return true;
|
}
|
}
|
|
if (name.EndsWith(".txt") && name.Contains("ResourcesOut") && name.Contains("Refdata"))
|
{
|
if (string.IsNullOrEmpty(ExtensionalTools.txtEditorPath))
|
{
|
return false;
|
}
|
else
|
{
|
System.Diagnostics.Process process = new System.Diagnostics.Process();
|
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
|
|
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
startInfo.FileName = ExtensionalTools.txtEditorPath;
|
|
name = ExcelReader.GetExcelPath(Path.GetFileNameWithoutExtension(path));
|
startInfo.Arguments = name;
|
process.StartInfo = startInfo;
|
process.Start();
|
return true;
|
}
|
}
|
|
return false;
|
}
|
}
|