修改Unity中Lua文件的默认打开程序-阿里云开发者社区

开发者社区> meteoric> 正文

修改Unity中Lua文件的默认打开程序

简介: 项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑     昨办?   ….   后来看到网上有写Unity的插件,想着应该也能判断后缀名然后调用指定的编辑器,果然可以。
+关注继续查看

项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑悲伤

 

image

 

昨办?

 

….

 

后来看到网上有写Unity的插件,想着应该也能判断后缀名然后调用指定的编辑器,果然可以。直接贴代码了(C#文件,只要建一个名为Editor的目录 —— 与路径无关,扔进去就行,Unity会自动编译的)

using UnityEngine;
using UnityEditor;
using System;

public class LuaTxtEditor
{

    //http://www.xuanyusong.com/archives/3702 

    [UnityEditor.Callbacks.OnOpenAssetAttribute(1)]
    public static bool step1(int instanceID, int line)
    {
        //string name = EditorUtility.InstanceIDToObject(instanceID).name;
        //Debug.Log("Open Asset step: 1 (" + name + ")");

        return false;
    }

    [UnityEditor.Callbacks.OnOpenAssetAttribute(2)]
    public static bool step2(int instanceID, int line)
    {
        string strFilePath = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));
        string strFileName = Application.dataPath + "/" + strFilePath.Replace("Assets/", "");

        if (strFileName.EndsWith(".txt"))
        {
            string strZBStudioPath = Environment.GetEnvironmentVariable("ZEROBRANESTUDIO_PATH");

            if (strZBStudioPath != null && strZBStudioPath.Length > 0)
            {
                System.Diagnostics.Process process = new System.Diagnostics.Process();
                System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
                startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                startInfo.FileName = strZBStudioPath + (strZBStudioPath.EndsWith("/") ? "" : "/") +  "zbstudio.exe";
                startInfo.Arguments = strFileName;
                process.StartInfo = startInfo;
                process.Start();

                //Debug.Log(startInfo.FileName + " \t " + startInfo.Arguments);

                return true;
            }
            else
            {
                Debug.Log("Not Found Enviroment Variable 'ZEROBRANESTUDIO_PATH'.");

                return false;
            }            
        }

        //string name = EditorUtility.InstanceIDToObject(instanceID).name;
        //Debug.Log("Open Asset step: 1 (" + name + ")");

        return false;
    }

}

 

上面使用ZeroBraneStudio来打开lua文件,你也可以修改为自己常用的编辑器,上面使用了环境变量获取程序的安装路径。

 

 

另外介绍几个小技巧:

1、shift + space(空格键),打以让鼠标所停留的视窗最大化

2、Unity在运行模式(Play)下所做的修改是不保存的,为了防止这种误操作,可以修改运行模式下的颜色;

菜单Edit –> Preferences –> Colors –> playmode tint。

image

 

更多的技巧,可以参考知乎:Unity游戏开发有哪些让你拍案叫绝的技巧?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
windows 2003 server 记录远程桌面的连接登录日志和修改3389连接端口方法
http://hi.baidu.com/cpucn/blog/item/f14f58db40654c6fd1164e42.html   A。
859 0
JS添加可信站点、修改ActiveX安全设置,禁用弹出窗口阻止程序的方法
为了满足将网站加入到可信站点中,使用系统的控件,在弹出窗口的时候不用提示用户。可以通过下面的方法实现:首先,了解一下可以设置的值和含义。 可信站点的注册表项目录HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet S...
923 0
如何恢复windows的exe文件的默认打开方式
事情由来: 有一次在用一个播放器选择打开视频文件的时候,意外的手贱点击打来了 exe 文件,之后戏剧性的恶心开始了,首先当然是打开失败,接着整个桌面的 exe 文件全部被替换成那个播放器的图标,然后所有的 exe 程序全部打不开了,全部被关连成用播放器打开的模式。
1039 0
Mac mysql 解决中文乱码
Mac mysql 解决中文乱码问题 出现“???”之类的无法识别的乱码 到/etc目录下自己建一个my.cnf文件(需要最高权限,使用sudo su),然后写入内容: [client] default-character-set=utf8 [mysqld] character-set-server=utf8 保存,修改。
965 0
如何修改程序界面图标
使用的IDE是Carbide.C++ v1.2 ,SDK是S60 3rd FP1(MR)1,首先做一个svg类型的图标,可以用Photoshop,Illustrator, inkscape等。
842 0
Java对文件的追加写,模块设计
编程实践中经常需要对文件的读写,本篇文章做一个文件追加写的模块。 使用FileWriter类   (1)使用的构造函数为(参考JAVA API文档):     public FileWriter(String fileName,boolean append) throws IOException   (2)参数说明     fileName(String):要写入数据的文件名称。
759 0
下载后自动打开(更改IE下载文件后的默认处理方法)
笔者用IE下载RAR文件的时候,不小心将那个“在打开这种类型的文件前始终询问”前面的复选框去掉了。结果现在下载所有的RAR压缩文件不提示保存对话框,直接下载完毕后就用WinRAR打开压缩包,而其他类型的扩展名正常。
700 0
+关注
423
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载