创建项目
双击Unity,选择New Project:
我们将它命名为rts,悬着其他本地磁盘例如C:,选择3D然后点击Create Project:
然后我们通过File->Save Scene,保存当前的场景为“scene”(不需要“”)
摄像机
Unity会自动添加相机到工程中。如下图所示,我们在Hierarchy中选择摄像机,在Inspector分别修改Position和Rotation的值,让摄像机看向地面。
注意:我们还看不到任何东西,因为我们的场景还是空的。
灯光
Unity已经在我们创建场景的时候自动添加了Directional Light。让我们在Hierarchy直接选中它。然后分别如下图所示调整角度和灯光的设置:
注意:我们可以根据我们自己的需要设置这些属性,但上面这种设置在我们后面的游戏里看起来好些。
开始装满这个世界
现在所有的事情都准备就绪了,我们可以在场景里添加多种多样很酷的东西了。
地面
地面是一个简单的Unity Plane。我们可以通过在顶部菜单中选择GameObject->3DObject->Plane来创建它。我们将其命名为Ground并且在Inspector中调整它的缩放比例。
注意:取一个恰当的名字“Ground”是很重要的。
让我们给地面添加些颜色。首先我们可以通过我们选择的工具(例如Paint.NET)创建一个简单40x40的材质。
然后我们将其从Project区域中拖动到我们的Ground上:
展现给我们的效果是这样的:
这看起来相当的光滑,但是我们需要进一步的将其像素化,好让它能表现出一种更独特的风格。因此我们想要在Project区域里选择我们的材质,并且在Inspector中修改它的Import Settings:
现在的结果是这样的:
这种平滑的效果叫做插值法。通常情况下这是一种好的效果,但是对我们的像素游戏来说我们需要将Filter Mode设置值成Point,再将Format设置成Turecolor。
注意:我们需要为游戏里所有的材质进行这些设置。
建立3D模型
现在是时候为我们的游戏创建3D模型了。别担心,这里并不会用到CAD。我们通过Unity实现这一切。
技巧
在Unity的GameObject->3D Object菜单中我们可以创建一些基础的几何模型,例如球,立方体,平面和圆柱体等等:
我们将这些都放入一个空的GameObject中,命名并且将它保持为预制件(Prefab),只需要简单的将它拖到Project区域中就可以实现了(最好新建一个文件夹名为“Prefabs”)。
创建一个箭头
我们创建一个箭头用来射击,首先我们需要新建第一个空的GameObject来将所有的东西装入里面,点击GameObject->CreateEmpty创建,并将它命名为Arrow。然后点击GameObject->3DObject->Cube创建三个新的Cube把它放入Arrow中如图所示:
注意:Arrow被称为根节点,Cubes被称为子节点。
现在需要做的就是通过移动位置,调整角度,缩放大小这些操作,直到它看起来像一根箭头
现在我们要为它添加一个简单材质:
注意:右击图片,选择Save As...将它保持到Assets/Textures文件夹中。
然后将它从Project区域中拖拽到每一个Cube上。最终的结果如下:
我们不需要在场景中总是显示箭头。所以我们需要将箭头GameObject保存成一个箭头预制件(Prefab)。更多有关于预制件的知识可以阅读相关预制件的教程。
为了创建预制件,我们可以在Project中创建一个Prefabs目录,将Arrow从Hierarchy中拖拽到文件夹:
现在我们可以将Arrow从Hierarchy中删除了。
城堡和弓箭射击物体
我们使用之前的方法统一创建我们的3d游戏模型。
有一件我们需要牢记的事情是所有的子GameObjects的坐标在某种程度上都要接近于(0,0,0),因为当一个GameObject为子节点时,它的坐标都是相对于父节点的。换句话说:如果子节点的x轴坐标是1,这就意味着它位于父节点x轴方向上1米远的地方,不论父节点现在身在何处。不管父节点如何移动,子节点总是跟随移动。
好的,让我们来用Cube创建一个城堡
用Cube创建作战单位每个Cube的坐标:
我们将城堡复制一份,并将它们分别命名为“CastlePlayer”和“CastleNpc”。同样的把作战单位也复制一份,分别命名为“ArrowShootingThingPlayer”和“ArrowShootingThingNpc”。随意给他们上一些颜色
注意:所有玩家的模型我们使用橙色和白色,所有Npc模型我们使用黑色和白色。