使用Unity制作3D游戏前期准备
Unity是最流行的iOS游戏开发工具,原因有很多,比如:发展迅速。用Unity做游戏比用你自己的3D引擎或低级3D框架快得多。
可视的场景布局。Unity带有强大的3D场景编辑器,游戏很大一部分都可以用它完成——通常不需要写代码!
跨平台。如果你的游戏是用Unity制做的,那么它就可以移植到iOS、Android、Windows、Mac和甚至网页!
容易学习。Unity比OpenGL或低级框架更容易学习,这对新手特别有利!
本系列文章将分为三个部分。如果你想学习得更多,不妨将三个部分都学习一下。
设计游戏
无论是什么应用,在你开始写代码以前,你都应该先决定你要把它做成什么样子——以及为什么这么做。你必须考虑到你的目标受众,你的概念是什么及它为什么吸引受众,你的应用具有什么功能特性。
在这个教程中,我们假设你的目标受众是年龄介于12-35岁的男性——假设有这么一位玩家玩家名叫Bryan,他是:
*33岁的资深会计师
*有一部iPhone
*对运动有兴趣
*是办公室白领,每天坐公共交通工具上下班,平均用时20分钟。
*与大部分智能手机用户一样,Bryan经常在通勤时间段用iPhone作为娱乐工具,通常不放过任何一点空闲独自的时间,甚至有时候在吃饭时也要玩上一把,他的妻子因此很恼火!
你的目标是针对Bryan这样的玩家制作一款游戏,供他在每天的几分钟空闲时间内玩。你的游戏应该非常简单(但是有趣),有且仅有一个容易学会的机制。这样,玩家在嘈杂混乱的环境,如通勤时段中才能很快上手这款游戏。
因为你的目标受众是年龄介于12-35岁的男性,你的游戏主题最好与运动有关。手机休闲游戏的玩法长度通常是4-8分钟——包含载入和开始部分,完整的游戏环节持续5分钟。
所以,你的游戏应该与一种简单而快速的运动有关。射击或者篮球怎么样?下图是一个篮球游戏的草图:
现在可以开始设计功能和相关组件了!
机制/互动元素:
目标:在一次游戏环节内,尽可能获得高分
投球时,玩家的手指应该按在屏幕上;手指停留的时间越长,球越难投出。并且把球留住的时间太长就算犯规。
特征:
*视觉效果丰富,以吸引玩家眼球
*简单的菜单(在游戏画面的上一层,带有开始游戏的选项)
*仿真物理,允许球反弹
玩家角色在球场上的移动会越来越快,从而增加游戏难度;但玩家会慢慢适应游戏节奏。
游戏资源及其特征:
*环境
篮框
响铃
球场
背景
*计分栏
*玩家角色
停止动画
投球动画
移动动画
现在你已经有了游戏的基本设计,可以开始制作了!
Unity 3D简介,在上一篇文章中我们已经介绍了,这里就不重复说了。在你正式操作以前,先快速浏览一下Unity的用户界面,这是你制作所有Unity项目的控制中心!
Unity界面
我们先快速浏览一下Unity界面。如果你已经熟悉了,那么不妨跳过这一部分。
Unity的用户界面由五个独立的面板组成,各个面板都紧密相关,可以让你从不同的视角察看项目。
第一个是Project panel(项目面板),你可以通过它概览项目,并快速获得游戏的所有资源。这里的“资源”是指游戏将使用到的所有材料,如脚本、材质、声音和数据文件等。
注意,在这个面板中会出现某些文件夹名称,与特定的任务有关。例如,当使用“Gizmos”的图像元素时,就是设计时间图标,你必须将它们放在“Gizmos”文件夹下,这样Unity才能搜索到。
第二个是Hierarchy panel(层级面板),显示的是当场场景中的所有资源。你可以通过它快速选择物品,而不必通过3D视图或执行多重选择。一个小技巧:聚焦某个资源,将鼠标悬浮于你想在场景面板中聚焦的物品上,然后按下“F”键。
接下来是Camera panel(摄像面板)!它提供了场景的摄像机视点。注意右上角有三个按钮。Maximize onPlay就是当你选择游戏时最大化窗口。当你准备优化游戏时,Stats非常管用,因为它显示了drawcalls和其他有用的数值。Gizmos用于将Gizmos显示或隐藏在游戏场景中。
位于摄像面板之上的是Scene panel(场景面板),这是你可视化设计游戏关卡的主要面板。如果你熟悉3D建模工具,那么你应该会使用得相当得心应手。否则,也别着急——Unity是非常直观又容易学会的软件。
选择物品,包括摄像机,可以在窗口顶部的操作工具中执行。
hand工具是用来移动场景的。translation工具会显示被选中物品的其他操作,如在场景中移动或转换物品。Rotation和scale可以用来旋或缩放被选中物品。
注:你应该熟悉这些工作的快捷操作方式。非常容易记住:键盘上最前面的四个字母分别对应这四个工具:hand是Q、translation是W,Rotation是E,scale是R。不要忘记你的好朋友F是用来聚焦被选中物品的——你会经常用到F!
关于scale的一个小提醒:最好不要手动缩放物品,除非你在观察它的视觉效果。通过导入选项缩放模型会更方便,而且效率更高。
最后一个面板是Inspector panel(检查面板),可以借它访问被选中对象的所有公开可获得的属性。这是一个重要的概念,所以花点时间理解它的含意吧。
你游戏中的所用元素都是从GameObject(游戏对象)继承来的。不同的Components(组件)(来自名为MonoBehaviour的组件)与各个游戏对象联系在一起。这些Components决定了GameObject在场景中的行为。
这些Components可以通过Inspectorpanel看到,你可以在这个面板中调整它们的属性。Components各不相同,可以是从你写的简单脚本中产生的东西,也可以是摄像机、物理属性等。本质上,组件为你提供了一个模块化构建游戏元素的灵活方法。值得注意的是,所有GameObject都有Transformcomponent——它决定了GameObject在3D空间中的位置。
注:如果你熟悉iOS的开发,那就把你的GameObject当作NSObject。不是继承功能,而是将对象归为专门类别——使其具有不同的功能,但作为一个单元捆绑在一起。
下图是Inspector panel的截图,其中摄像机被选中。
这里的组件包括:Transform (所有游戏对象都有)、 GUILayer、Flare Layer和Audio Listener。这些都是什么?不要着急——我只是想让你看看一个对象具有的组件和设置。
除了这些面板,通过Unity的工具栏还可以用到许多功能。你最感兴趣的两个东西应该是Game Object和Component选项。
Game Object菜单中有一个物品列表,你可以添加到当前场景中。你可能有兴趣的下位菜单选项是Create Empty和CreateOther -> GUI Texture。Create Empty就是将一个新的(空的)GameObject放到场景中。CreateOther——GUITexture就是制作一个带有UGI材质组件的游戏对象,且当前选中的材质作为它的纹理,如果没有选中材质,软件就会默认。
页:
[1]