我的需求是开发的时候一种布局,运行的时候一种布局,Unity3D 选项中的自定义快捷键的太少,只能另想办法。Google 之后,找到解决方法:Editor layout hotkeys?

1、创建菜单

Unity3D 支持自定义菜单,在 Assets 目录下创建目录 Editor,然后创建脚本 Layout.cs,如下:

using UnityEngine;
using UnityEditor; public class Layout : EditorWindow { [MenuItem("Window/Layouts/Development Hotkey %#&e", false, )]
static void Development() {
EditorApplication.ExecuteMenuItem("Window/Layouts/Development");
} [MenuItem("Window/Layouts/Run Hotkey %#&d", false, )]
static void Run() {
EditorApplication.ExecuteMenuItem("Window/Layouts/Run");
} }

以下,会在相应的菜单下增加菜单项,并且增加相应的快捷键 ctrl+shift+alt+e 和 ctrl+shift+alt+d,更多信息请参见:MenuItem

另外,相应的 Layout 必须存在,如下:

2、快捷键映射

以上快捷键设置比较复杂,主要是防止快捷键冲突,如果能确保不冲突的话,这一步可以忽略。

利用 AutoHotkey 进行快捷键映射,如下:

f5::
if WinActive("ahk_class UnityContainerWndClass")
{
Send ^p
Send ^p
}
else
{
Send {f5}
}
Return
f7::
if WinActive("ahk_class UnityContainerWndClass")
{
Send ^!+e
Send ^!+e
}
else
{
Send {f7}
}
Return
f8::
if WinActive("ahk_class UnityContainerWndClass")
{
Send ^!+d
Send ^!+d
}
else
{
Send {f8}
}
Return

这样,按 F5 是运行,F7 是开发模式,F8 是运行模式。

3、打包 dll

每新建一个工程,就需要在相应的目录下面增加 Editor 和 Layout.cs,有点麻烦,我想找到一个方法可以让 Unity3D 全局都运行这个脚本,目前还没找到方法,不过有其他的发现,就是可以通过 MonoDevelop 生成 C# Library 供 Unity3D 使用。

打开 MonoDevelop 新建 Solution,选择 C# Library。将以上的 Layout.cs 拷贝到该工程下。

接着在工程目录下的 References 右键编辑,将以下的 dll 加入工程引用:

D:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEngine.dll
D:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEditor.dll

然后 Build,生成的 dll 在 bin 目录下,拷贝到 Unity3D 工程的 Assets 目录下,最好创建一个专门的目录叫 Plugins,用于引用外部库。

4、导出 Package

新建工程的时候,会有一个对话框,提示你哪些包需要导入,而这些可选择的包都保存在 Unity3D 标准的 Packages 目录下面:

D:\Program Files (x86)\Unity\Editor\Standard Packages

所以,只要把自定义的包导出到该目录下,就可以在新建工程的时候直接导入。

导出自定义包的方法非常简单,选定需要导出的目录或者文件,右键 Export Package,指定目录就行了。

以下就是我的两种开发模式截图:

Unity3D Layout 快捷键的更多相关文章

  1. unity3D 常用快捷键

    http://blog.csdn.net/ganlijianstyle/article/details/7985509 此页面提供了Unity3D默认的快捷键. shift +方向键         ...

  2. [Unity3D]MonoDeveloper快捷键(补全代码补全引用中文乱码tab转空格)

    Hello亲爱的观众朋友们大家好,我是09. vs支持各种插件,一般推荐用vs.不过总有人(例如我)由于各种原因用MonoDeveloper.苦于每次上网找各种设置,此处集中写下我用MonoDevel ...

  3. ahjesus Unity3D界面快捷键

    F Frame selection Tab Shift focus between first column and second column (Two columns) Ctrl/Cmd + F ...

  4. Unity3D默认的快捷键

    shift +方向键             向“向方向键前进” Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl   N New Scene 新建场景 Ctrl ...

  5. unity3d快捷键大全

    Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面 整合的专业游戏引擎.Unit ...

  6. 【转】unity3d的常用快捷键

    Unity3D默认的快捷键. shift +方向键             向“向方向键前进” Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl   N New ...

  7. 从零开始Unity3D游戏开发【1 常用快捷键】

    Unity3D近两年起来的很快.自己对游戏一直很有兴趣,所以想找机会转游戏开发.目的之一是赚钱,目的之二是完成自己的小梦想. Unity3D的人才还是紧缺的,招聘网站上各个公司真敢拿着钱砸.让.NET ...

  8. Windows系统Unity3D中的快捷键

    Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl   N New Scene 新建场景 Ctrl   O Open Scene 打开场景 Ctrl   S Sav ...

  9. Unity3d 快捷键

    Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl   N New Scene 新建场景 Ctrl   O Open Scene 打开场景 Ctrl   S Sav ...

随机推荐

  1. C++11特性(模板类 initializer_list)

    [1]initializer_list模板类 C++primer 原文如下: 通读原文相关篇幅,分析解读内容如下: 提供initializer_list类的初衷,为了便于将有限个同一类型(或可转换为同 ...

  2. ScrollView

    在程序设计中,有时我们需要实现自动滚屏或根据选择直接滚动到指定的位置的功能.这里用到的主要组件就是滚动视图(ScrollView). ---------- 那么使用ScrollView如何实现布局自动 ...

  3. PhpStorm提高效率的使用方法及设置

    快捷键: CTRL + D  复制当前行到下一行 或 复制选中内容到选中内容之后 CTRL + Y  删除当前行或选中内容所涉及的行 CTRL + R  替换 CTRL + F  查找 ALT + 上 ...

  4. Spring实现IOC

    目录 一.使用XML配置的方式实现IOC 二.使用Spring注解配置IOC 三.自动装配 四.零配置实现IOC 五.示例下载 控制反转IoC(Inversion of Control),是一种设计思 ...

  5. 基于ThinkPHP开发的PHPExcel导出

    首先我们需要去PHPExcel官网下载开源包 下载好了以后只需要把里面的classes文件夹解压出来就可以用了! 在ThinkPHP中,文件的命名空间还是很重要的,我试着按照其他的第三方命名写name ...

  6. SQL 对时间的处理

    --获取当前日期(如:yyyy-mm-dd)Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day ...

  7. Android Studio 自定义debug签名文件keystore

    Android Studio 自定义debug签名文件keystore

  8. 【前端】CommonJS的模块加载机制

    CommonJS的模块加载机制 CommonJS模块的加载机制是,输入的是被输出的值的拷贝.也就是说,一旦输出一个值,模块内部的变化就影响不到这个值. 例如: // lib.js var counte ...

  9. python学习之深入

    一.迭代器和生成器 1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. ...

  10. 系统hosts文件的作用

    host是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会 ...