Unity中自定义应用程序打开Assets目录下指定类型的文件

Posted answer-yj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中自定义应用程序打开Assets目录下指定类型的文件相关的知识,希望对你有一定的参考价值。

在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 }

以上是关于Unity中自定义应用程序打开Assets目录下指定类型的文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Unity3D 游戏中自定义 iOS 音量 HUD

unity中自定义鼠标样式

Unity中自定义 Inspector 面板

100个 Unity实用技能 | Unity中自定义 2D Sprite 精灵图显示顺序

100个 Unity实用技能 | Unity中自定义 2D Sprite 精灵图显示顺序

Unity添加可拉伸的图片