程序丨如何用简单的方式让工作变轻松?Unity优化清单(一)
翻译:龚斌涛(建筑学概论 )
审核:徐明刚(日月青争)
关于Unity的优化清单
多少次你因为一些Unity中不得不反复重做的东西而感到郁闷烦躁?也许数都数不清…但是现在起不用再担忧了!
BillGates曾经说过“我会选一个懒惰的人来做一件困难的事。因为懒惰的人会用简单的方法去解决它。”。
你也许会问我为什么要把他的话搬到这儿来?因为现在起我会开始教你如何用简单的方式让你在Unity上的工作变得轻松…
开始
提出这个优化清单想法的主要原因是因为我们(作为人类)对于设计的懒惰性以及不喜欢在日常事务上重复自我。以此带来的结果就是,我们会制造工具、提炼技巧,将其用到我们的生活当中,提升便利性。我们也希望它也能给你带来方便!
Unity优化清单TOP5:
1.改变play模式编辑器颜色
曾经多少次你将游戏画面调整到一个完美的角度?然后突然你意识到刚刚点的是暂停(pause)按钮,之后所有调整的参数都丢失了?Unity这么做是没错,但是多少次你又忘记了?也许不止一次吧。
那么,提醒你最简单的解决方式就是在play模式下,改变编辑器的play模式颜色!只要选择Unity>Preferences>Colors,改变Playmodetint颜色,让其看起来更加明显。
效果就像下面这样
2. 自动完成代码编写
市面上有许多工具可以扩展你的IDE,并且对你的编程技巧提供一点点的帮助。其中有种扩展工具是JetBrainsReSharper,一旦你用了,以后编程的时候就再也不想离开它了。
这个工具不但会为你分析代码,为你编写代码,还会帮你找bug。甚至,这个工具还能为你修复bug!也许并不是所有的bug都能全部修复,但是它能够修复那些特定类型的bug,而不引发任何问题。当然,如果你是程序员,你也能清楚地找到。
下面是一些例子:
将其他代码转换为Linq:
将Linq转换为其他代码:
添加缺失的using:
生成类中的方法:
ReSharper主页:https://www.jetbrains.com/resharper/
3.优化编译流程
当你正在开发你的下一个app或游戏的时候,每天你都可能要进行多次编译工作。每次编译都要花费几十分钟甚至一个小时来完成。更糟的是,你还要等编译工作完成后才能继续你的工作。
那么让我来统计下因为这个流程而浪费掉的时间。假设是个中等项目,在Android上编译需要花大约20分钟,在IOS上编译需要花大约1小时。此外,每天最少编译1次。现在,统计下一个月(20个工作日)内花费在编译上的总时长:Android编译方面——至少6小时40分钟,IOS方面——至少40小时。这比1959年第一艘航天器(Luna1)近飞探测月球花费的时间还要长!近飞探测也只花了36小时!那么如何节省掉如此多的时间呢?使用外部工具帮助你完成编译工作!
很长一段时间,最流行使用的外部工具是Jenkins,它能提供给你非常多的灵活性。同时,它不限制你根据自己的需求去配置编译流程。举个例子:
1. 查看版本库中最新上传的数据
2. 分析代码
3. 组织编译
4. 完成后,将编译文件上传到FTP服务器
5. 发送含有编译报告以及编译文件链接的邮件
当然,你还有更多的选择,如果你需要的话,接着向里面添加即可。啊,我差点忘了!它允许你免费使用!所以你只需进入到他们的网站上,下载安装到你的编译机器中。
更多关于Jenkins的信息:https://jenkins.io
另外一个编译工具是由Unity自己提供的,叫Unity Cloud Builds。当然它能够更好地和编辑器集成,这样你基本上在用着工具的时候就能配置好所有你需要的东西。跟Jenkins一样,也能免费使用,但因为Unity订阅的关系,编译(build)过程优先级提得更高并且能够得到更快地处理。此外,每次编译过程完成以后,Unity都会给你的编译(build)生成一个链接,供你下载或者分享给你的朋友。
更多关于Unity Cloud Builds的信息:http://unity3d.com/services/cloud-build
那么,这两个工具之间的不同点又有哪些?Jenkins开源,拥有大量插件供你安装。比如你可以将它与像Slack这样的第三方API进行结合。Jenkins还允许按照你自己喜欢的方式去配置它,并且提供给你配置自己独有的编译流程的可能。另一方面,Unity Clouds只服务于Unity,同时你还不能向其中添加任何东西。当然你可以通过配置Slack,从Cloud中获取通知消息,或者使用Unity提供的Webhooks,但也只能如此。但是,Clouds优势在于它简单易配置,使用起来也方便。
那么你应该使用哪一种呢?想简单一点的话,就使用Unity Cloud Builds。如果需要更加高级一点的,附带很多配置选项的,就选用Jenkins。
4.以便捷的形式存储数据
许多人会将数据存入场景里的对象中,或者在某个其他的地方写死。这么做的话,一旦你在后期开发,为了得到预期的结果而不得不去调整参数数据,就经常性地难以找到这些数据…
但是,这里我给出了两种更好的方式去存储数据:
1. 文本数据存储,可以是json文件、Excel文件或者任何其他文本形式的文件。这种方式的问题在于这些文件中只能存放文本数据,需要通过读取文件并进行解析,来获取里面的数据。
2. 另外一种更加便捷的方式就是创建脚本对象(ScriptableObject)。你可以向其存放任何你想要的东西(文本、数字、纹理、材质、模型等等)。而且最重要的是,你可以像项目中的其他资源一样去使用它,并且从中读取数据时,跟获取变量一样简单。
下面是一个脚本对象(ScriptableObject)代码的例子:
而且,有了以上的代码,你可以轻松创建任意多你想要的WeaponData对象。
5.自动生成引用
UI创建工作并不好做,最主要是因为涉及到太多脚本,从而甚至需要更多的引用,而这些引用需要进行手动分配。可是,让所有的这些引用进行自动填充分配,不是更好吗?
当然更好!下面提供了一个实现的样例:(点击下图,可放大查看代码)
下面是使用上述实现而创建的一个类的例子:
下面是Unity中显示的结果:
这样就实现了自动添加这些引用!
总结
本文提供了5条优化建议,希望能够帮助你从Unity开发过程中脱离其中的日常琐碎部分,提高生产力。
【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。
今日推荐
添加小编微信,可享双重福利
1.加入GAD程序猿交流基地
获取行业干货资讯,观看大牛分享直播
2.直接领取60G独家程序资料库,地址在小编朋友圈
包括腾讯内部分享、文章教程、视频教程等全套资料
↓长按添加小编GAD苏苏↓