【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 Lehar17 小时前
vscode游戏引擎的build-clean配置
ide·vscode·游戏引擎
Magnum Lehar18 小时前
vscode游戏引擎的build-all全局配置
ide·vscode·游戏引擎
龚子亦18 小时前
【Shader学习】完整光照效果
unity·技术美术·shader
weixin_531638941 天前
Rokid AR交互开发工具对比
unity·游戏引擎·xr
Magnum Lehar1 天前
wpf3d游戏引擎ControlTemplate.xaml.cs文件实现
游戏引擎·wpf
留待舞人归1 天前
【Unity3D优化】优化多语言字体包大小
游戏·unity·游戏引擎·unity3d·优化
wsdchong之小马过河1 天前
2025虚幻引擎一般用什么模型格式
游戏引擎·虚幻
Magnum Lehar2 天前
wpf游戏引擎前端的Transform.cs实现
前端·游戏引擎·wpf
Magnum Lehar2 天前
wpf3d游戏引擎前端ControlTemplate实现
前端·游戏引擎·wpf
9765033352 天前
iOS 审核 cocos 4.3a【苹果机审的“分层阈值”设计】
flutter·游戏·unity·ios