Unity制作即时战略游戏毕设

简介: 创建项目 双击Unity,选择New Project:我们将它命名为rts,悬着其他本地磁盘例如C:,选择3D然后点击Create Project: 然后我们通过File->Save Scene,保存当前的场景为“scene”(不需要“”) 摄像机 Unity会自动添加相机到工程中。

创建项目

双击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模型我们使用黑色和白色。

相关文章
|
5月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
4月前
|
定位技术 C# 图形学
Unity和C#游戏编程入门:创建迷宫小球游戏示例
Unity和C#游戏编程入门:创建迷宫小球游戏示例
75 2
|
9月前
|
开发框架 Java .NET
《unity游戏优化》第8章内存优化
《unity游戏优化》第8章内存优化
|
5月前
|
运维 API C#
【Unity游戏破解】外挂原理分析
【Unity游戏破解】外挂原理分析
166 0
【Unity游戏破解】外挂原理分析
|
5月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
56 0
|
5月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
186 0
|
5月前
|
C# 图形学
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
176 1
|
5月前
|
C# 图形学
【Unity 3D】游戏对象、添加删除获取组件、预制体Prefabs简介
【Unity 3D】游戏对象、添加删除获取组件、预制体Prefabs简介
82 0
|
5月前
|
人工智能 图形学
Unity——游戏AI实例
Unity——游戏AI实例
|
8月前
|
vr&ar 开发工具 图形学
Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢
Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢