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 }

原文地址:https://www.cnblogs.com/answer-yj/p/12107269.html

时间: 2024-10-11 16:56:22

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

java 实现读取某个目录下指定类型的文件

我这里是读取txt类型的文件,在指定的目录下有不同类型的文件 实现代码,读取txt类型的文件并打印出该文件的绝对路径 package com.SBgong.test; import java.io.File; public class ClassFile { public static void main(String[] args){ //读取输入路径的文件 File[] list = new File("E:\\Mycode\\SBgong\\input\\2012-09-22")

Unity获取文件夹下指定类型的文件数量

有个文件夹里面有很多的图片,都是.png格式的,要是一个一个的拖到脚本上觉得很麻烦,就写了一个遍历添加的cars,变量是List<Sprite> 代码如下: using UnityEngine; using System.IO; using System.Collections.Generic; public class NewBehaviourScript : MonoBehaviour { private List<Texture> cars = new List<Tex

遍历指定目录下指定类型文件的函数(fatkun Fix版)

// ================================================================ // 遍历某个文件夹及子文件夹下某种文件, // 使用说明 // _GetFileList(ListBox1.Items, 'c:\', '.doc'); // _GetFileList(MyTStringList, 'c:\', '.exe');// 这不是万一博客的原版咧,是1L的fatkun修复的一版,且不管看不看得懂,收藏个先// ===========

Xamarin.Android 如何使用Assets目录下的文件

个人原创,转载注明出处:http://blog.csdn.net/supluo/article/details/43672411 Xamarin.Android  官网介绍地址:http://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/ 这里插入一下Assets与Raw目录的异同点 这两个目录的相同点: 1. 这两个

Android开发之assets目录下资源使用总结

预前知识: Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可: 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们.那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.ap

Android开发系列(十七):读取assets目录下的数据库文件

在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中写的一个小游戏的一个问题,另外也可以读取Raw目录下的数据库文件) 这就造成了一个问题,这个问题其实很好解决,解决方法如下: 我们首先把有数据的数据库文件放在assets资源目录下边,然后在apk应用启动的时候,把assets目录下的数据库文件的数据写入到真机的内存中去. 下边开始我们的代码编写:

Android读取assets目录下的资源

1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过 Context.getAssets().open(“sample.txt”) 方法获取输入流. 注意:如果资源文件是文本文件则需要考虑文件的编码和换行符.建议使用UTF-8和Unix换行符. 2. WebView 加载assets目录下的html文件 资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以

获取Assets目录下的图片显示并上传

1 package com.jingle.getlocal; 2 3 import java.io.ByteArrayOutputStream; 4 5 import java.io.InputStream; 6 7 import org.apache.http.Header; 8 9 import sun.misc.BASE64Encoder; 10 11 import com.loopj.android.http.AsyncHttpClient; 12 import com.loopj.an

获取Assets目录下的图片并显示

1 package com.jingle.getlocal; 2 3 4 import java.io.InputStream; 5 6 import android.app.Activity; 7 import android.content.res.AssetManager; 8 import android.graphics.Bitmap; 9 import android.graphics.BitmapFactory; 10 11 import android.os.Bundle; 12