利用Unity提升工作效率 VR开发心得

setup 2017-02-22 17:26:44
我们都认为Unity编辑工具是非常了不起的,是Uniy真正有用的部分。使用工具允许我们快速创建原型,构建原型也非常方便,增加物体更简单,还可以指定变量。
 
极大的提升了我们的工作流程,随着Immortal Redneck(一个Unity游戏)越来越大,我们需要有自己的工具,我们使用Unity编辑器快速构建它。
 
之前,我们已经写过了,我们购买的一些让我们的开发更直接一些的Unity asssets资源,但是有时候,你找不到你需要的,所以,为什么我们不自己做一个呢?
 
这并不是我们第一次构建自己的工具来提高我们的流程,如果不是这些工具,ImmortalRedneck这个项目可能也会不同,我们来看看我们有些什么工具
 
 
游戏设计工具
 
至少对于我们来说,ImmortalRedneck是一个很大的游戏。除了花了大量的时间来开发,它还要求很多平衡,游戏中有枪支,敌人,技能,所以我们希望这个任务尽可能容易和简单些。
 
 
这就是我们构建工具的原因,可以在过程中修改东西。现在,我们可以修改:
 
  • 全局变量,像掉落几率,生成敌人的间隙时间
  • 每个类的统计数据(HP,攻击,防御,等等)
  • 敌人的状态。后面,我们想修改他们的全局动作,攻击时动作更改状态,保持状态,在什么距离时他们可以移动……
  • 武器伤害,伤害范围,扩散,弹药,后坐力……
  • 技能树等级,全局几率,统计他的改变……
     
 
 
 
 

Room Utils 房间工具

我们的游戏有许多房间,所以我们需要有一个容器可以快而好的创建它们。我们在这部分写了几个工具。
 
首先,我们创建了一个类似于ProGrids(UNity的一个插件,网络设置)的菜单,便于我们整合所有东西。在每个轴上我们都可以复用对象,这是我们在开发的第一天花费时间最多的事情,是整个团队要做的非常枯燥和重复的事情。
 
另一个工具,以目录的方式查看每个我们创建的资源,复制我们想的资源到场景中去。这个工具十分自动,又好用。我们可以把资源放在我们正在看的地方,或者选中场景中的东西,用目录中的东西替换它。这是个非常非常快的方式替换整个地板和墙。
 
 
 

RoomScene Inspector
 
为了好优化,我们每个房间就是一个场景。虽然Unity 5.3已经有了很大的进步,但比起使用预制,这个工作依然不好做。
 

我们决定采用一种方法,创建先多个场景,然后用一个ScriptableObject引用每一个场景。ScriptableObject 有每个场景的数据,我们可以用它来打开场景,把场景加入构建列表(BuildSettings),或是做其他事情。
 
因为这个原因,我们不断地向Unity中加入自定义的检查面板。这也是为什么我们要扩展默认的编辑,增加一些选项的原因。我们需要快速识别我们在场景中做了些什么改变,但Unity不允许这样做,我们甚至增加了一个房间预览。
 
 
 
创建物理渲染材质
 
我们对资源进行基于物体渲染时——基本上我们游戏每个资源都这样做——每次要求三个纹理(Albedo, Mask1 andNormal)。这意味着每次我们导入东西到Unity时,我们需要一次性创建有三个纹理的材质。
 
这并不是一个费力的过程,但是当你开始增加纹理时,它会消耗时间,比较无聊。我们写小工具,选中三个纹理,自动创建材质。它最终成为我们开发中最有用的工具之一。
 
 
多机相屏幕截图

多大数屏幕截图插件都用一个相机。ImmortalRedneck用了两个,一个给玩家,一个给武器,我们创建了我们的工具,来捕获我们想的要相机。
 

有了这个工具之后,我们可以做更好的覆盖设置。我们可以添加我们的LOGO,也可以在任何需要的时候,不需要打开Photoshop,增加‘pre-alpha’标题。
 
你看到的每个广告截屏,都是使用多相机屏幕截图产生的。
 
 
组合工具

使用相同材质的网格(Mesh)在Unity中可以整合,以便提高性能。有很多这样的插件,但我们做了一个更好的。
 
我们采用了ProGrid的风格,创建我们自己的窗口,看起来不错,有很多选项:创建一 组对象集合,删除一个集合,整合集合,解散集合。
 
 
对象随机

在建ImmortalRedneck的三个金字塔时,我们的美术人员做了一些不同的石块,堆积起来,创建金字塔的边沿。
 
手动做它肯定很费力,我做写一个小工具,用一些变量来让石块组成线。用这种办法,美术人员就可以创建许多条线,而不是重复使用这些模型,从而快速建立金字塔。最后,他们做了一些小的修改,金字塔可以很快就做好。
 
 

Gizmos
Unity有一个非常有趣的特性,它可以在脚本中使用 gizmos,把Gizmos放到场景中显示,有些小东西可以很容易看到。
 
 
例如,在房间里,我们用gizmos 显示AI的据点和间隔位置。
 
红色的球体显示人形敌人,所以,我们可以看到,敌人在哪里产生。红色的方块功能一样,产生行走的生物。
 
类似,蓝色的球体代码飞行敌人的据点,地面上的橙色方块则是行走的敌人的据点。
 
开始的时候,可能看起来有点杂乱,但当你学会使用它之后,真的可以提供很多帮助。
 
 
剪切板组件
 
任何使用Unity的人都有这样的体验:测试游戏,修改了一些东西,你停掉游戏之后,什么也没有保存下来。
 
有时候,你需要在执行游戏的时候,调试一些值,你需要在时实看到它对游戏的影响。我们写了一个脚本,你可以有COPY你的值,停止游戏之后,再粘贴回去。它使用方便简单,节约了美术人员很多时间。
 
 
99VR视界二维码
热门推荐
Hot Recommended
在线客服