Unity3D Layout 快捷键
我的需求是开发的时候一种布局,运行的时候一种布局,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 快捷键的更多相关文章
- unity3D 常用快捷键
http://blog.csdn.net/ganlijianstyle/article/details/7985509 此页面提供了Unity3D默认的快捷键. shift +方向键 ...
- [Unity3D]MonoDeveloper快捷键(补全代码补全引用中文乱码tab转空格)
Hello亲爱的观众朋友们大家好,我是09. vs支持各种插件,一般推荐用vs.不过总有人(例如我)由于各种原因用MonoDeveloper.苦于每次上网找各种设置,此处集中写下我用MonoDevel ...
- ahjesus Unity3D界面快捷键
F Frame selection Tab Shift focus between first column and second column (Two columns) Ctrl/Cmd + F ...
- Unity3D默认的快捷键
shift +方向键 向“向方向键前进” Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl N New Scene 新建场景 Ctrl ...
- unity3d快捷键大全
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面 整合的专业游戏引擎.Unit ...
- 【转】unity3d的常用快捷键
Unity3D默认的快捷键. shift +方向键 向“向方向键前进” Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl N New ...
- 从零开始Unity3D游戏开发【1 常用快捷键】
Unity3D近两年起来的很快.自己对游戏一直很有兴趣,所以想找机会转游戏开发.目的之一是赚钱,目的之二是完成自己的小梦想. Unity3D的人才还是紧缺的,招聘网站上各个公司真敢拿着钱砸.让.NET ...
- Windows系统Unity3D中的快捷键
Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl N New Scene 新建场景 Ctrl O Open Scene 打开场景 Ctrl S Sav ...
- Unity3d 快捷键
Windows系统Unity3D中的快捷键 组合键 键 功能 File 文件 Ctrl N New Scene 新建场景 Ctrl O Open Scene 打开场景 Ctrl S Sav ...
随机推荐
- IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容
IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容 UIAlertController *alertVC = [UIAlertController alertControl ...
- Base:-用数组赋值实现while和shift功能
3列数组,arrayA,arrayB,arrayC:分别一一对应主机及其主机所能创建的资源数,还有arrayC表示需要创建的资源数:arrayA=("192.168.1.1" &q ...
- 使用netty4.x客户端接收较大数据量报文时发生的读取不完整bug修复记录
1.先说问题 背景:服务是运行在Linux上的安全网关提供的,TCP协议发送 通过二进制编码的xml字符串 报文,报文头的第一个字段是int类型的表示字节序标记,第二个字段是int类型的表示整个报文长 ...
- 实时发布到tomcat
当我们在运用eclipse进行web项目的文件编写的时候,希望编写的东西可以实时的发布在tomcat的webapps文件夹之中,那么我们应该怎么做呢!下面就是操作方法: 1. 首先你的eclips ...
- redis 相关命令
/etc/init.d/redis-serveredis-cli 进入redis/etc/init.d/redis-server stop /etc/init.d/redis-server start ...
- TWebBrowser 调用最新版的Ie Internet Feature Controls (B..C)
Internet Feature Controls (B..C) Updated: July 2012 This article describes feature controls with n ...
- canvas中save()和restore()方法
save()和restore()方法是绘制复杂图形不可缺少的方法它们是分别用来保存和恢复canvas状态的,都没有参数 save():用来保存Canvas的状态.save之后,可以调用Canvas的平 ...
- 介绍MFSideMenu左右滑动控件的使用
昨天刚写完侧滑菜单的实例,今天在CocoaChina网站上看到一篇非常好的侧滑菜单设计案例文章,分享给大家.http://www.cocoachina.com/macdev/uiue/2013/071 ...
- bash中使用mysql中的update命令
mysql -uroot -ppasswd -e "update tbadmin set sPassword ='************' where sUserName='admin'& ...
- rewrite规则中参数多于9个的处理方式 apache nginx
RewriteRule ^index-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)(.*)$ $9&a ...