网站公告 | 泰斗网校全新上线了,可以和论坛用户登录同步,如果遇到登录问题联系管理员解决
查看: 4514|回复: 11
收起左侧

[慕容小匹夫] 有趣而又被忽略的Unity技巧

[复制链接]

[慕容小匹夫] 有趣而又被忽略的Unity技巧[复制链接]

慕容小匹夫 发表于 2017-6-14 11:49:37 [显示全部楼层] 回帖奖励 |倒序浏览 |阅读模式 回复:  11 浏览:  4514
前言


本文的内容主要来自YouTube播主Brackeys的视频TOP 10 UNITY TIPS 和TOP 10 UNITY TIPS #2。在此基础上经过自己的实践和筛选之后,选择了几个自己觉得还算有趣而平时又有所忽略的小技巧记录在此和各位分享。
编辑器染色


这也是这两段视频的第一个小技巧,我自己也觉得很有趣。一个常见的工作情景是我们在调整场景内的某些组件参数时,没有注意到自己是在Play Mode的模式下进行的,从而导致修改没有被保存下来。
这个问题的关键在于是我们没有意识到自己已经处在Play Mode,如果我们能够在修改参数的时候,清楚的意识到自己处于Play Mode,那么我们自然可以通过Copy Component来保存数据或者是选择在Editor Mode进行修改。因此,我们可以通过对编辑器染色来醒目的提醒自己,自己是否已经处于Play Mode了。
一个简单的方法就是在Play Mode给编辑器染上不同的颜色:
[AppleScript] 纯文本查看 复制代码
Edit->Preference->Color->Playmode tint
在这里,我们就可以修改Play Mode的编辑器颜色了,当然还有很多别的染色可以修改。


修改完之后,在Play Mode的编辑器大概效果是下面这样的:


这样,我们就能时刻意识到自己是否已经在Play Mode了。
锁定对象的Inspector视窗


这是第一段视频的第三个小技巧,我觉得有趣的同时也很实用。还是一个实际的工作情景,场景中有很多对象,我们想创建一个管理器来容纳这些对象,最简单的方法就是在Hierarchy视窗中选择那些对象,将它们拖入管理器的容器中。


但是,我们立马就会发现一个问题,那就是我先选中管理器之后,再去多选所有需要被拖入管理器的对象时,Inspector视窗会变为此时所选中的被管理对象,而非管理器。这时,我们就用到了这条小技巧,我们可以锁定管理器的Inspector视窗,选中多个被管理对象之后将它们拖入管理器的数组中。我们要做的只是勾选这个小锁子图标,之后就可以同时将多个对象通过锁定的Inspector视窗拖入管理器的数组中了:


Inspector视窗的Debug Mode模式


这是第一段视频的第四个小技巧,同样是一个和Inspector视窗相关的技巧。我相信有一些朋友已经经常会用到了,但是我觉得这条也很实用,因此也在此和各位朋友分享。
这个常见的工作场景是这样的:我有一些字段不想通过外部修改,因此声明为private,但是又有在运行时观察这些字段实时值的需求。


这时我们就可以点击Inspector视窗右上角的下拉菜单,可以看到它和一般视窗的下拉菜单相比多了几个选项。


默认状况下,它处于Normal模式,我们这里就可以选择Debug模式了。更换模式之后,之前的Inspector视窗就变成了下面这样子:


这样,我们就可以既限制字段的访问权限又观察这些私有成员的变化了。
利用Scene视窗设置相机数据


这是第一段视频中的第五个小技巧,我觉得这条技巧很受用。这次我们的工作情景变成了这样:对很多人来说,在场景视图中调整观察的角度、位置等等是一件十分简单的事情,但是如果真的要游戏中达到同样的效果,则必须去调整场景中的相机。


(左侧是Scene视图,右侧是Game视图)
相对来说,调整相机的过程更复杂,那么有没有什么方法能够直接让摄像机应用和Scene视图一样的设置呢?这条技巧就是关于这个的。
首先选中场景中的摄像机,之后使用快捷键:shift + ctrl + f
就可以把Scene视图中的数据复制给选中的摄像机了。
当然,除了使用快捷键,我们还可以在菜单中选择相应的操作。
GameObject->Align With View
也可以达到相同的效果。


拓展编辑器
这一部分并非来自某一个技巧,而是和拓展编辑器相关的小技巧的集合。
在Unity中拓展编辑器,往往需要用到C#的各种特性(attribute)。
例如,我们可以使用[RangeAttribute]在Inspector视窗上显示一个滑动条。
[AppleScript] 纯文本查看 复制代码
[Range(0, 10)]
public int publicInt;


如果,我们嫌Inspector视窗上显示的各个字段太混乱没有章法,那么我们可以使用另外两个特性来帮助我们对显示在Inspector上的字段进行整理:[SpaceAttribute]和[HeaderAttribute]。
#region 字段

[Header("测试数据1")]
[Range(0, 10)]
public int publicInt;
public bool publicBool;
public float publicFloat;
public GameObject publicObj;
[Header("测试数据2")]
[Space(10)]
public List<GameObject> objsArray;

这样,我们就可以为一堆字段分类显示了。


如果,我们既想保证类的某个字段不被其他的类访问修改,又想在Inspector视窗中修改这个字段的值的话,就可以采用private +
[SerializeField]属性的方案。
[AppleScript] 纯文本查看 复制代码
[SerializeField]
private int privateInt;


快速设置视图最大化



这也是一个我感觉很有趣的小技巧,来自第二段视频的第一个技巧。
利用这个技巧,我们可以快速的在不同的视图中设置视图的最大化。
比如场景视图和游戏视图同时显示,我们想要将场景视图放到最大,只需要将鼠标悬停在场景视图上,并同时按下快捷键:shift + 空格
就可以将场景视图设置为最大化。




如果调整动画的话,Animator视图是必不可少的,如果要将
Animator视图最大化也只需要把鼠标停在Animator视图上,同时按shift+空格快捷键。
不过在我的使用中,Game视图不能在运行时进行这种操作,必须在暂停状态或不在Play Mode时才起作用。
更好的预览模型


这条技巧来自第二段视频的第十条,我相信它能够提供给我们在Editor中观察模型的更好的体验。一个可能的工作情景是这样的,我们导入了一个模型,并希望在模型的Inspector视窗上预览该模型时,常常只能拘泥于这个角落。


想要看的更清楚、更大似乎只能拖动整个Inspector视窗。
其实,我们可以轻松的将模型预览的小窗口单独拖出来。只需要鼠标右键单击预览窗口的上沿。


不信?你看是不是放大了很多?


小结
以上,就是这次和大家分享的内容。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
+1
4518°C
11
  • 有楼我就跳了
  • 幸福的小道
  • 740919820@qq.co
  • 雨落随风
  • yangdongfeng
过: 他们
因分享而快乐,学习以自强!
有楼我就跳了 发表于 2017-6-17 08:47:39 显示全部楼层
有些小技巧确实很棒。
因分享而快乐,学习以自强!
幸福的小道 发表于 2017-6-21 08:18:51 显示全部楼层
很实用的东西,确实有几个是不知道的。谢谢分享。
因分享而快乐,学习以自强!
740919820@qq.co 发表于 2017-6-21 13:12:13 显示全部楼层
厉害,有空看下
因分享而快乐,学习以自强!
雨落随风 发表于 2017-6-21 18:08:42 显示全部楼层
有新增了几个技巧,很棒极了
因分享而快乐,学习以自强!
yangdongfeng 发表于 2017-6-22 09:52:27 显示全部楼层
非常感謝
因分享而快乐,学习以自强!
dslwz2018 发表于 2017-6-22 16:11:23 显示全部楼层
shift+空格没有成功过,不知道什么原因?
因分享而快乐,学习以自强!
lqccfn001 发表于 2017-6-22 22:55:41 显示全部楼层
都是些很不错的技巧,能提高不少的效率啊,学习下先!!
因分享而快乐,学习以自强!
蛋蛋呵呵 发表于 2017-6-28 13:50:33 显示全部楼层
很好 很强大  学习了
因分享而快乐,学习以自强!
lcyusi 发表于 2017-11-29 10:41:51 显示全部楼层
有些还是很实用的
因分享而快乐,学习以自强!
NTM123 发表于 2017-12-4 16:14:02 显示全部楼层
有些小技巧确实很棒。
因分享而快乐,学习以自强!
kingtopchina 发表于 2018-8-15 10:52:01 显示全部楼层
不错!!谢谢分享!
因分享而快乐,学习以自强!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

VR/AR版块|Unity3d|Unreal4|新手报道|小黑屋|站点地图|沪ICP备14023207号-9|【泰斗社区】-专注互联网游戏和应用的开发者平台 ( 浙ICP 备 13006852号-15 )|网站地图

© 2001-2013 Comsenz Inc.  Powered by Discuz! X3.4

1
QQ