文档介绍:Unity3d中创建工具来优化工作流程
Unity3d中创建工具来优化工作流程?我们普遍认为Unity3d强大而有用的便是它的编辑器,有了编辑器,便使我们能够很快的创建原型(预制物体),并且更加容易创建原型,包括添加新物体,赋值都变得容易多了。编辑器对我们的工作流程起到了飞跃式的提升。重点是,当Immortal Redneck(游戏名)越来越庞大,我们就需要创建我们自己的工具,以便编辑器更加快捷。
我们已经写了需要买哪些资源才能使我们的开发更加直接快捷,但有时候确实没有我们想要的。那么我们何不自己造一个呢?这也不是我们第一次创建工具来提高工作流程了,对于Immortal Redneck也一样。让我们进入正题。
游戏设计工具
Immortal Redneck是个大型游戏---至少对于我们是。除了开发时间,我们还需要大量的平衡因素:枪,敌人和技能等。因此,我们希望这个任务能够尽量简单。
这就是为什么我们建立这个工具,改变几乎所有在飞行中的东西。现在,我们可以改变:
全局参数:敌人的下降率以及产生时间;
类统计:HP,攻击,防御;
敌人的属性。在未来,我们要改变当他们攻击时的全局行为和变化,在
么距离时他们开始移动…
武器的伤害,范围,蔓延,弹药,后坐力…
技能树的级别,爆金率,变化的数据…
房间的工具
我们希望我们的游戏有很多的房间,所以我们需要有能力更快更好地创建他们。我们编写了一些工具来达到这个目的。
首先,我们创建一个看起来就像ProGrids 的菜单,这样我们就能组合其他东西了。因为我们花费了大部分时间在前期工作上,因此我们可以在每个Axys快速复制物体。同时,这对于团队来说也是件很无聊重复的事情。
我们可以把资产放在我们正在寻找的地方或在场景中选择东西,并用目录中的东西代替它。这是一个真的,真的很快的方式,以取代一整层或墙壁。
还有另外一个工具,它让我们能够检测我们所创建在目录上的每一项资源,并能够放在我们指定的场景中去。这些工作几乎都是自动完成的,并且执行得很好。我们可以把资源放在想放的地方或场景,并且还能够用目录下的东西替代它。这种方法对于取代整个地板或者墙都非常方便快捷。
▲房间场景视图
由于一个优化的要求,我们的每一个房间都是一个场景。,但是它仍然没有使用预设来的简单。
我们决定采取这样的方式:创建不同的场景,使用一个ScriptableObject 作为每个房间的引用。这个ScriptableObject虽然拥有每个场景的数据,但是我们还是能够使用它打开房间,将他们添加到Build Settings 。我们需要不断的使用Custom Inspectors进行工作,这也是我们需要扩展默认编辑器,添加更多功能的原因。我们之所以需要添加一个房间的预览,就是因为当时Unity并不具备这个功能,并且我们需要快速确定我们正在改变的场景。
创建PBR材质
工作与PBR(基于物理的渲染),我们在每个资产我们的游戏做的,需要三个纹理(反照率,提示和正常)每次。这意味着,每一次我们导入到统一的东西,我们必须为该对象创建一个材料,并分配一个三个纹理每一个。
使用PBR工作的时候,对于我们所做的游戏资源来说,每次我们都需要三种贴图(Albedo(反照率贴图), Mask1(遮罩贴图)