Skip to main content
 首页 » 资源教程 » Unity3D教程

【Unity工具篇】创建Unity工具提升工作流量

2017年01月16日 17:55:2011870蛮牛网

我们都认为Unity编辑工具是非常了不起的,是Uniy真正有用的部分。使用工具允许我们快速创建原型,构建原型也非常方便,增加物体更简单,还可以指定变量。

极大的提升了我们的工作流程,随着Immortal Redneck(一个Unity游戏)越来越大,我们需要有自己的工具,我们使用Unity编辑器快速构建它。

之前,我们已经写过了,我们购买的一些让我们的开发更直接一些的Unity asssets资源,但是有时候,你找不到你需要的,所以,为什么我们不自己做一个呢?

这并不是我们第一次构建自己的工具来提高我们的流程,如果不是这些工具,ImmortalRedneck这个项目可能也会不同,我们来看看我们有些什么工具

游戏设计工具

至少对于我们来说,ImmortalRedneck是一个很大的游戏。除了花了大量的时间来开发,它还要求很多平衡,游戏中有枪支,敌人,技能,所以我们希望这个任务尽可能容易和简单些。

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第1张

 

这就是我们构建工具的原因,可以在过程中修改东西。现在,我们可以修改:

  • 全局变量,像掉落几率,生成敌人的间隙时间

  • 每个类的统计数据(HP,攻击,防御,等等)

  • 敌人的状态。后面,我们想修改他们的全局动作,攻击时动作更改状态,保持状态,在什么距离时他们可以移动……

  • 武器伤害,伤害范围,扩散,弹药,后坐力……

  • 技能树等级,全局几率,统计他的改变……


【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第2张

 

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第3张

 

Room Utils 房间工具

我们的游戏有许多房间,所以我们需要有一个容器可以快而好的创建它们。我们在这部分写了几个工具。

首先,我们创建了一个类似于ProGrids(的一个插件,网络设置)的菜单,便于我们整合所有东西。在每个轴上我们都可以复用对象,这是我们在开发的第一天花费时间最多的事情,是整个团队要做的非常枯燥和重复的事情。

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第4张

 

另一个工具,以目录的方式查看每个我们创建的资源,复制我们想的资源到场景中去。这个工具十分自动,又好用。我们可以把资源放在我们正在看的地方,或者选中场景中的东西,用目录中的东西替换它。这是个非常非常快的方式替换整个地板和墙。

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第5张

 

RoomScene Inspector

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

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第6张

 

我们决定采用一种方法,创建先多个场景,然后用一个ScriptableObject引用每一个场景。ScriptableObject 有每个场景的数据,我们可以用它来打开场景,把场景加入构建列表(BuildSettings),或是做其他事情。

因为这个原因,我们不断地向Unity中加入自定义的检查面板。这也是为什么我们要扩展默认的编辑,增加一些选项的原因。我们需要快速识别我们在场景中做了些什么改变,但Unity不允许这样做,我们甚至增加了一个房间预览。

创建物理渲染材质

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第7张

 

我们对资源进行基于物体渲染时——基本上我们游戏每个资源都这样做——每次要求三个纹理(Albedo, Mask1 andNormal)。这意味着每次我们导入东西到Unity时,我们需要一次性创建有三个纹理的材质。这并不是一个费力的过程,但是当你开始增加纹理时,它会消耗时间,比较无聊。我们写小工具,选中三个纹理,自动创建材质。它最终成为我们开发中最有用的工具之一。

多机相屏幕截图

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

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第8张

 

有了这个工具之后,我们可以做更好的覆盖设置。我们可以添加我们的LOGO,也可以在任何需要的时候,不需要打开Photoshop,增加‘pre-alpha’标题。

你看到的每个广告截屏,都是使用多相机屏幕截图产生的。

组合工具

使用相同材质的网格(Mesh)在Unity中可以整合,以便提高性能。有很多这样的插件,但我们做了一个更好的。

我们采用了ProGrid的风格,创建我们自己的窗口,看起来不错,有很多选项:创建一 组对象集合,删除一个集合,整合集合,解散集合。

对象随机

在建ImmortalRedneck的三个金字塔时,我们的美术人员做了一些不同的石块,堆积起来,创建金字塔的边沿。

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第9张

 

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

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第10张

 

Gizmos

Unity有一个非常有趣的特性,它可以在脚本中使用 gizmos,把Gizmos放到场景中显示,有些小东西可以很容易看到。

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第11张

 

例如,在房间里,我们用gizmos 显示AI的据点和间隔位置。红色的球体显示人形敌人,所以,我们可以看到,敌人在哪里产生。红色的方块功能一样,产生行走的生物。类似,蓝色的球体代码飞行敌人的据点,地面上的橙色方块则是行走的敌人的据点。开始的时候,可能看起来有点杂乱,但当你学会使用它之后,真的可以提供很多帮助。

剪切板组件

【Unity工具篇】创建Unity工具提升工作流量 Unity3D教程 第12张

任何使用Unity的人都有这样的体验:测试游戏,修改了一些东西,你停掉游戏之后,什么也没有保存下来。有时候,你需要在执行游戏的时候,调试一些值,你需要在时实看到它对游戏的影响。我们写了一个脚本,你可以有COPY你的值,停止游戏之后,再粘贴回去。它使用方便简单,节约了美术人员很多时间。

原文标题:Building tools for Unity to improve your workflow 

评论列表暂无评论
发表评论