【Unity】双击txt文件以记事本形式(文本文档)打开

在Unity工程任意Editor文件夹下创建C#脚本:CustomAssetHandler

cs 复制代码
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;

public class CustomAssetHandler
{

    [OnOpenAssetAttribute(1)]
    public static bool step1(int instanceID, int line)
    {
        string path = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));
        string name = Application.dataPath;
        name = name.Replace("\\", "/");
        name = name.Replace("/Assets", "/") + path;
        if (name.EndsWith(".txt") || name.EndsWith(".json")) //.txt或.json文件 用notepad++.exe打开
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
            startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            startInfo.FileName = "D:/Program Files/Notepad++/notepad++.exe";
            startInfo.Arguments = name;
            process.StartInfo = startInfo;
            process.Start();
            return true;
        }
        return false; //False 则交给Unity处理如何打开
    }
}

其中.txt 和 .json 以及 D:/Program Files/Notepad++/notepad++.exe 是可以要你自定义的内容。

D:/Program Files/Notepad++/notepad++.exe是用什么软件exe打开这个双击的文件。

Unity3D研究院编辑器之打开unity不可识别的文件(十三) | 雨松MOMO程序研究院

这篇参考文章是打开不可识别文件的,所以它会在step1不进行任何处理,而放到step2处理,而我是打开可识别文件txt,json有明确后缀且能正确被Unity识别的,直接处理在step1 。

step1是Unity默认处理文件打开函数,如果返回false则代表你不在第一步处理,并且交给Unity处理,如果Unity依旧处理不了(不可识别文件)那么就会进入到step2函数,如果你处理成功了就应该返回true,否则返回false交给Unity处理。

OnOpenAssetAttribute(1)\]标记的函数为step1函数,\[OnOpenAssetAttribute(2)\]标记的为step2函数.

相关推荐
Magnum Lehar9 小时前
wpf3d游戏引擎ControlTemplate.xaml.cs文件实现
游戏引擎·wpf
留待舞人归9 小时前
【Unity3D优化】优化多语言字体包大小
游戏·unity·游戏引擎·unity3d·优化
wsdchong之小马过河9 小时前
2025虚幻引擎一般用什么模型格式
游戏引擎·虚幻
Magnum Lehar16 小时前
wpf游戏引擎前端的Transform.cs实现
前端·游戏引擎·wpf
Magnum Lehar20 小时前
wpf3d游戏引擎前端ControlTemplate实现
前端·游戏引擎·wpf
97650333521 小时前
iOS 审核 cocos 4.3a【苹果机审的“分层阈值”设计】
flutter·游戏·unity·ios
EQ-雪梨蛋花汤1 天前
【Unity笔记】Unity Animation组件使用详解:Play方法重载与动画播放控制
笔记·unity·游戏引擎
AgilityBaby1 天前
Untiy打包安卓踩坑
android·笔记·学习·unity·游戏引擎
菌菌巧乐兹2 天前
Unity | AmplifyShaderEditor插件基础(第九集:旗子进阶版)
unity·游戏引擎
心前阳光2 天前
Unity编辑器-获取Projectwindow中拖拽内容的路径
unity·编辑器·游戏引擎