在这第一章中,你可以得到一些非常基础的信息:首先,下载并安装Unity,接着,准备游戏的第一个场景。
我们从简单开始:下载/设置Unity。
下载最新发布版本:官方网站。
启动可执行文件即可。
Unity绑定了MonoDevelop(最新4.0.1)编辑器
译者注:从Unity 2018.1开始,Unity将不在绑定MonoDevelop,MacOS和Windows的安装程序会已经将它移除。Visual Studio将作为默认编辑器
如果你使用Windows,你可以也应该使用替换方案:
- Visual Studio Community 2013
同样:下载,安装,非常简单,它会花一点时间,之后,进入Unity偏好设置,将默认编辑器设置为Visual Studio。
译者注:目前版本默认Visual Studio Community 2017,并且并不需要额外设置
MonoDevelop (或者它的兄弟Xamarin Studio)已经跟着Unity一起安装,而且是默认编辑器。同Visual Studio和Xcode一样,它是一个完整的IDE。好吧,它至少尝试了。
老实说,MonoDevelop不太好,我没有试过最近几个版本,所以,可能我是错的,但你或许最好试试其它的,见下
如果你准备做一点小小的调整,使用有Omnisharp的Sublime Text或者最新的Visual Studio Code。
译者注:在MACOS里MonoDevelop也已经取消了绑定安装,建议使用Visual Studio做为默认编辑器
Unity允许你使用3种语言编码:JavaScript(UnityScript),C#和Boo。
我们强烈建议使用C#,它非常强大而且更少的错误,而且,本教程使用的是C#。
译者注:最新的Unity已经移除了对JavaScript(UnityScript)的支持,只使用C#
对于Unity,如果你是一个绝对的新手,在本教程中,我们尽可能做最好的说明。
学习使用Unity主界面相对容易,第一次打开的时候你可能有点害怕,但是用不了多久你就会适应的。
这里有些我们找到的有趣资源:
- Unity官方编辑器教程:官方视频非常棒,你应该花一下午的时间把它们看完 -- 我们保证你不会浪费你的时间。
打开Unity,首先,你会看到项目管理对话框
使用你想用的名称和位置创建一个新项目
选择2D,之后,你可以在项目设置里修改它。
不要担心名称,最后的名称在选项里定义(“Player Settings”)
如Damien在another tutorial说的那样,如果你计划使用Git或是SVN,首先,你得为团队协作启动一些模糊的设置。
如果你感兴趣,你可以看看tutorial,而不是写他之前写过的内容。
你现在面对着一个漂亮的场景,这是我们正在使用的布局,但你可以花点时间,按你的需要个性化一些。我(Damien)个人非常喜欢有一个控制吧,在game视图的旁边,但是,如果你的屏幕比较小,你可以使用tabs代替panels。
在进入游戏创作之前,花点时间组织你的项目和场景。
我们建议创建一些文件夹在Unity的"Project"面板里,以于组织你的素材,从技术上讲,这些文件夹将在项目的Assets文件夹里创建。
注:"Assets"文件夹是一个根目录,它包含了你添加到"Project"面板里的所有东西,它可能在Unity内部不可见,具体取决于面板的布局 (一行或两行),但是,如果你打开文件浏览器,你会看到的。
这里有个示例结构,是我们在Pixelnest项目里的,你可以改动一下,满足你的喜好。
在你的"Project"面板里,你可以找到不同类型的资源:
可复用的游戏对象 (如:子弹,敌人,奖励)。
预制件可以被看做是编辑语言里的class
,可以被游戏对象实例化,它是一个模具,你可以在场景或游戏运行期间复制和修改它。
场景是一个基础的关卡或是菜单。
不同于你在"Project"面板里创建的对象,场景由"File"菜单创建,如果你想创建一个场景,单击"New Scene"的子菜单,然后不要忘了将它保存到"Scenes"文件夹里。
场景需要手动保存,在Unity里,一个经典的错误就是,对场景及元素做了一些修改,但是忘了保存,你的版本控制工具无法在场景保存前发现任何改变。
我想它是很清楚的,看看你是否想在另一个文件一夹中拆分音乐。
所有代码都在这里,这个目录等同于C#项目的根目录。
精灵在游戏中就是图片,在2D项目里,精灵是可以被2D工具使用的纹理。
**关于"Resources"文件夹:如果你之前已经有试过Unity,你应该知道"Resources"是非常有用且唯一的文件夹,它允许你加载一个对象或者一个文件,在脚本里(使用静态类
Resources
)。我们到现在还没有用到…直到要结束的时候 (在关于菜单的章节里),所以,非常简单,我们决定现在不包含它。
"Hierarchy"面板包含所有的在场景里的可用对象,这是你运行游戏时操作的东西。
在Unity,每个在场景里的对象,都是"game object",你可以在场景的根下创建对象,或者做为另一个对象的子对象,你可以在任何时候移动一个对象来改变它的父对象。
如你看到的,在这里我们有3个子对象在Level
对象里。
Unity中的一个技巧是,创建一个空的游戏对象,并将其作为其它对象的文件夹,它将简化你场景的层次结构。
确保它们都在(0, 0, 0)
的坐标上,这样你可以更轻松的跟踪它们!坐标对于这些不用的空对象来说并不是太重要。
注:改变坐标,会影响子对象的相对坐标,我们不会在教程里讲这个主题,所以,将空对象的坐标设置为
(0, 0, 0)
将这些空对象视为纯逻辑对象。
默认情况,一个新创建会有一个默认的Main Camera
,保留它。
现在,你需要创建这些空对象:
Scripts
:我们将把全局的脚本放在这里,我们使用此对象附加与对象无关的脚本,举个例子,我们将会有一个"Game"管理脚本附加到它上面Level
在Level
对象里,添加3个空的子对象:
Background
Middleground
Foreground
在"Scenes"文件夹保存场景,取个你想要的名字 ("Stage1"怎么样?)。
如下:
小巧门:游戏对象是绑定在它父对象的坐标上的。
此行为为镜头游戏创建了一个很好的副作用:如果镜头是一个对象的子对象,它将会自动跟随它父对象的坐标,如果镜头在场景的根上或是一个空对象里面,画面将是固定的。然而,如果你把镜头放到一个运动的对象上,镜头将会在场景里跟随这个对象。
这将让镜头跟随玩家变得简单。
我们离一个游戏还很远,是不是?
我们刚刚为游戏创建了一些基础结构,下一步,我们将开始做些有趣的事情:背景和一些元素!