创建项目

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

更多unity2018的功能介绍请到paws3d爪爪学院查找。

Unity制作即时战略游戏毕设的更多相关文章

  1. D3D游戏编程系列(三):自己动手编写即时战略游戏之寻路

    说起即时战略游戏,不得不提的一个问题是如何把一个物体从一个位置移动到另一个位置,当然,我说的不是瞬移,而是一个移动的过程,那么在这个移动的过程中我们如何来规划路线呢,这就不得不提到寻路了. 我所了解到 ...

  2. D3D游戏编程系列(四):自己动手编写即时战略游戏之网络同步

    说到网络同步,这真是一个网络游戏的重中之重,一个好的网络同步机制,可以让玩家的用户体验感飙升,至少,我玩过的魔兽争霸在网络同步方面做得非常好,即便是网络状况很不稳定,依然可以保证用户数据不会出现意想不 ...

  3. 使用Unity制作游戏关卡的教程(三)

    转自:http://gamerboom.com/archives/75593 作者:Matthias Zarzecki 本文是“使用Unity制作<The Fork Of Truth>的关 ...

  4. 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转

    今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...

  5. Unity制作游戏中的场景

    Unity制作游戏中的场景 1.2.3  场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...

  6. 使用Unity制作游戏关卡的教程(二)

    转自:http://gamerboom.com/archives/75554 作者:by Matthias Zarzecki 本文是“使用Unity制作<The Fork Of Truth> ...

  7. 使用Unity制作游戏关卡的教程(一)

    转自: http://gamerboom.com/archives/74131 作者:Matthias Zarzecki 我正在制作<Looking For Group – The Fork O ...

  8. Unity制作FPS Demo

    等到把这个Unity FPS Demo[僵尸杀手]完成后再详细补充一下,使用Unity制作FPS游戏的经历,今天做个标识.

  9. 使用Unity创建塔防游戏(Part1)

    How to Create a Tower Defense Game in Unity - Part1 原文作者:Barbara Reichart 文章原译:http://www.cnblogs.co ...

随机推荐

  1. 杨校老师课堂之JavaScript右下角广告弹框教程

    案例制作思路: 1.先制作界面 添加一个盒子包含一个按钮,使盒子绝对定位在右上角 添加一个大盒子,同理,将盒子居于左下角:其中内部包含一个顶端盒子和底部盒子 顶端盒子因为是属于大盒子内部的存在,所以宽 ...

  2. 在mac OX10.11.6上安装MySQL

    一.之前失败情况 官网下载dmg文件安装.源码安装,下过5.6  5.7  8.0 版本,都可以安装成功,但是在电脑设置界面无法启动,每次点启动输入密码后,均闪一下绿色然后变红色,既然不能界面启动,那 ...

  3. 实现pc端信纸留言板

    效果如图: 我好像在哪里见过这样的形式,但却从来没有想过怎么实现,有种莫名的兴奋感.怎么控制什么时候换行,怎么控制中间的线条,这些视乎都是CSS无法实现的,我陷入了死局.寻找JS的做法,JS的挺复杂的 ...

  4. Spring MVC温故而知新-从零开始

    Spring MVC简介 Spring MVC是一款基于MVC架构模式的轻量级Web框架,目的是将Web开发模块化,对整体架构进行解耦. Spring MVC有一下优点: 作为Spring框架的一部分 ...

  5. MySQL复制入门

    Ⅰ.复制类型 1.1 逻辑复制 记录每次逻辑操作 主从数据库可以不一致 1.2 物理逻辑复制 记录每次对于数据页的操作 主从数据物理严格一致 基于重做日志 说明: 如果一个块(页)修改了,就把这个修改 ...

  6. win7 telnet命令无法开启的解决方案(不是内部命令或外部命令)

    如果你想在win 7上直接使用 telnet命令,却不能开启那怎么办呢?记得在Wingdows XP上telnet都是已经安装好的,直接就可用,但是Win7是没有这个功能的,都需要后来自己安装的,下面 ...

  7. HSLA色相饱和透明度

    H:Hue(色调),取值为:0 - 360.将色相值想成一个圆环中的度数,随着在圆环上移动,得到不同的颜色. S:Saturation(饱和度),取值为:0.0% - 100.0%.数值越低(降低饱和 ...

  8. Nginx从听说到学会

    第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一 ...

  9. 解决jQuery的$符号的冲突问题

    强大的jQuery框架在设计的时候不仅考虑到自己的符号定义问题,还想到了与其他框架的和平共处问题,(给别人留条路也是写在给自己留路),设计者以博大的胸怀和包罗万象的设计理念赋予了jq顽强的生命力. 废 ...

  10. 【Richard 的刷(水)题记录】

    大概想了想,还是有个记录比较好. 9/24 网络流一日游: 最大流:bzoj1711[Usaco2007 Open]Dining 拆点 BZOJ 3993 Sdoi2015 星际战争 二分 P.S.这 ...