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 }
  • 相关阅读:
    2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest
    2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest
    BZOJ5104 : Fib数列
    2017-2018 ACM-ICPC Southeast Regional Contest (Div. 1)
    2017 ACM Jordanian Collegiate Programming Contest
    BZOJ4910 : [Sdoi2017] 苹果树
    2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)
    BZOJ4912 : [Sdoi2017]天才黑客
    BZOJ4739 : 定向越野
    概率笔记11——一维正态分布的最大似然估计
  • 原文地址:https://www.cnblogs.com/answer-yj/p/12107269.html
Copyright © 2011-2022 走看看