zoukankan      html  css  js  c++  java
  • Unity中自定义应用程序打开Assets目录下指定类型的文件

    在Unity使用VS2017打开unityShader文件时总提示错误:

     我也一直没找啥原因,shader文件直接使用VSCode打开,当然其他类型的文件也可这样处理用相应的exe打开,如: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 }
  • 相关阅读:
    js数据类型的转换
    个人总结css中的四种position定位
    c3和js写的切割轮播图 喜欢宋仲基的妹子汉子们来,观看效果需要引入jQuery^^
    立体骰子(css3和js)
    友善串口调试助手
    Pixhawk之调试方法
    深度学习论文笔记:Deep Residual Networks with Dynamically Weighted Wavelet Coefficients for Fault Diagnosis of Planetary Gearboxes
    Sublime Text 插件之常用20个插件
    lll
    浅谈jQuery的对象构成1
  • 原文地址:https://www.cnblogs.com/answer-yj/p/12107269.html
Copyright © 2011-2022 走看看