在Unity使用VS2017打开unityShader文件时总提示错误:
我也一直没找啥原因,我直接把之前工具拿过来了,shader文件直接使用vsCode打开,其他类型的文件也可这样处理,如:pdf,txt等文件均可
具体代码如下:
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEditor; 4 using UnityEngine; 5 6 public class SetAssetsPathFilesDefaultOpenMode 7 { 8 [UnityEditor.Callbacks.OnOpenAssetAttribute(1)] 9 public static bool SingleSelect(int instanceID, int line) 10 { 11 return false; 12 } 13 14 [UnityEditor.Callbacks.OnOpenAssetAttribute(2)] 15 public static bool DoubleSelect(int instanceID, int line) 16 { 17 //给双击文件事件实例化一个ID并返回所选文件路径 18 string path = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID)); 19 //文件路径 20 string name = Application.dataPath + "/" + path.Replace("Assets/", ""); 21 //指定打开文件类型 22 if (name.EndsWith(".shader")) 23 { 24 //系统进程 25 System.Diagnostics.Process process = new System.Diagnostics.Process(); 26 27 System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 28 29 //设置窗口状态 30 startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 31 32 //指定打开软件(可以是可执行文件,也可以是系统上安装的应用程序) 33 startInfo.FileName = "F:/Windows_5/Microsoft VS Code/Code.exe"; 34 35 //指定打开文件(路径不能有空格,否则认为时多个文件) 36 startInfo.Arguments = name; 37 38 process.StartInfo = startInfo; 39 process.Start(); 40 return true; 41 } 42 //if (name.EndsWith(".pdf")) 43 //{ 44 // System.Diagnostics.Process process = new System.Diagnostics.Process(); 45 // System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 46 // startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 47 // //指定打开软件 48 // startInfo.FileName = "C:/Users/lenovo/AppData/Local/Google/Chrome/Application/chrome.exe"; 49 // //指定打开文件(路径不能有空格,否则认为时多个文件) 50 // startInfo.Arguments = name; 51 // process.StartInfo = startInfo; 52 // process.Start(); 53 // return true; 54 //} 55 56 return false; 57 } 58 }
原文地址:https://www.cnblogs.com/answer-yj/p/12107269.html
时间: 2024-10-11 16:56:22