【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

这篇具有很好参考价值的文章主要介绍了【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要内容:

1.Unity3D引擎中的基础设置。

2.2D场景的搭建,预制体制作。

3.2D动画的制作。

4.图片图集的有关知识。

5.碰撞器,触发器,碰撞检测与触发检测。

6.2D游戏渲染的一些知识。

7.敌人AI的编写。

8.UGUI有关内容,场景切换等。

所需资源包链接:https://pan.baidu.com/s/199wuwMiucKDQfZR54Skwxg?pwd=a6pa 
提取码:a6pa

————————————————————开始———————————————————

一、新建项目、导入资源

新建个2D项目,将所有的图片贴图模式改为2D ANDUI

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 二、场景搭建

1.设置主摄像机:size(离屏幕位置)设置为8.5

2.Background设置为黑色游戏显示

3.窗口设置为 5:4

4.图集的加工:导入素材的Texture调整为Sprite(2D and UI),点击apply。

5.Sprite Mode:Multiple(图片的默认属性是single,这代表此图片在这里视为一个单独的精灵来处理)。

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

5.Sprite Mode:Multiple(图片的默认属性是single,这代表此图片在这里视为一个单独的精灵来处理)

切割图集(需要切割):点击Sprite Editor——Slice——Automatic ——点击Slice(调整大小,获得尺寸)——Grid By Size(按照固定大小切割)——点击Slice——自行切割找到合适尺寸,W28H28,将大小填入切割的尺寸即可。

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

三、游戏中预制体的制作,2D动画的制作

1.Play1拖入Hierarchy面板下

2.Unity开发以米为单位,将坦克Scale调整为3,3,3。改名为Player

3.在Project面板下,新建文件夹Prefabs存放预制体,拖入Player

4.再把Map下的石头、墙、水、草等拖入Hierachy面板下

5.解决每个图片都要调整大小问题:Sprite Render组件下的Sprite控制显示的图片,Ctrl+D复制几个一样的物体,再拖入图片到Sprite下。

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 

6.创建存放动画和存放动画控制器的文件夹Animation和AnimatorControllerBorn

2D动画:鼠标单击选择第一张图片按住Shift选择最后一张图片,拖入Hierarchy面板下,弹出窗口命名动画名字,命名为Born,Hierarchy面板下改名为Born。大小调整为3,3 ,3

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

7.创建存放动画和存放动画控制器的文件夹Animation和AnimatorControllerBorn

2D动画:鼠标单击选择第一张图片按住Shift选择最后一张图片,拖入Hierarchy面板下,弹出窗口命名动画名字,命名为Born,Hierarchy面板下改名为Born。大小调整为3,3 ,3。控制器改名为BornController,与动画分别拖入相应文件夹下。

在预制体Prefabs文件夹下创建Map文件夹存放地图和Effect特效文件夹

同理,创建爆炸特效Boom和无敌效果Born2,河流Water取消显示摄像机Gizmos,叉掉Camera旁边的摄像机

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 四、控制玩家的移动(Player脚本)

 1.创建新的文件夹Script,存放所有的脚本。

 2.创建(Player)脚本,添加在玩家坦克身上

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

3.控制游戏物体移动,在Update函数中后面因碰撞抖动问题需要改在FixedUpdate函数中,

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 四、控制玩家的移动-不同方向移动的图片切换(Player脚本)

1.拿到Sprite组件,更改它的属性值【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2.拿到渲染器的引用:【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 3.在Awake函数中(一开始就拿到),Start函数之前【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

4.拿到切换图片的引用:【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)并在Unity中分别把对应图片拖入

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 五、碰撞器的添加,解决坦克旋转、抖动问题

1.发生碰撞的物体身上都应该有碰撞器,其中一方(最好是运动的一方)身上要有刚体。

给Player游戏物体添加Box Collider 2D(2D游戏碰撞器)和刚体Rigibody 2D,将重力改为0【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 2.Map里所有的物体添加Box Collider 2D(2D游戏碰撞器),草不用,因为草可以通过

3.解决旋转问题:选择Player游戏物体,在Rigibody 2D下的Constraints勾选上z轴

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

4.解决抖动问题:Unity内置的生命周期函数(固定物理帧)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程) 

六、移动优先级的添加,2D渲染层级问题(Player脚本)

1.解决同时按两个键,斜着走的问题。垂直优先。先确定V

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 2.然后把控制移动的代码封装成一个方法,在FixedUpdate中调用

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 

3.渲染的优先级:Order in Layer层级越大,越后渲染。Born、Grass设置为1

4. 添加子弹,层级设置为1,拖入Tank文件夹下做成预制体。爆炸特效层级也设置为1

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 七、坦克的攻击方法及子弹朝向(Player脚本)

1.拿到子弹预制体的引用,定义子弹旋转角度

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2.当按下空格的时候实例化一个子弹

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

3.弹朝向问题的解决,移动方法的编写。旋转图片——旋转Z轴

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

八、子弹移动脚本,攻击CD的加入

1.创建子弹的脚本(BulletFly),在Update里面设置子弹移动

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 

2.设置子弹CD(Player脚本)
设置计时器 同时将子弹实例化的方法中加入【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)使得每次射击后时间归零

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

3.给子弹添加触发器,给子弹添加Rigidbody2D,重力设置为0。

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 九、空气墙的制作,标签的添加

1.找到不可通过及消灭的岩石,将其贴图删除即可成为空气墙

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2.给每个预制体添加对应的Tag(标签)【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

3.在(BulletFly脚本)添加完善碰撞检测

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 十、玩家无敌方法与死亡方法的编写(Player脚本)

1.声明爆炸特效、保护特效、是否复活、无敌时间【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2. 坦克死亡方法

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 3. 坦克无敌方法

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 4.将无敌特效放置为坦克的子物体,并将其渲染层级改为-1【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 十一、区别玩家的子弹与敌人的子弹

 1.在(BulletFly脚本)中加入判断语句,是否为玩家子弹

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2.为玩家坦克生成子弹的时候添加一条语句(Player脚本)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

十二、制作玩家出生特效(Born脚本)

1.新增Born脚本用于玩家的初始生成

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2.在Unity中将玩家坦克预制体拖入【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 十三、敌人出生特效(Born脚本)

用同样的产生特效随机生成两种敌人,改写Born脚本代码,并在Unity中拖入制作好的两种敌人预制体

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 十四、敌人AI的编写(Enemy脚本)

1.新建(Enemy脚本)编写敌人自动攻击和移动的代码,将Player脚本复制进去,并进行修改。

修改攻击方法,不需要摁下空格键攻击,会自动攻击

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

2.修改移动方法 

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 十五、在地图上生成不同元素(MapCreation脚本)

1.新建个空物体命名“MapController”,赋予新脚本“MapCreation”.

2.使用数组存放所有元素,在Unity中拖放好

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程) 

3. 写一个实例化物体的方法(可以将实例化出的物体作为子物体放置在脚本所在物体下)

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 4.找好老家的位置,空气墙的位置,通过封装好的实例化物体的方法进行实例化【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 5.在随机产生墙、水、敌人、障碍、草的物体时,需要采用数组来记录已经使用过的位置,防止一个位置上实例化两个物体【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

6.写一个随机产生位置的方法

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

7.判断位置列表中是否有与产生位置重复【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 8.实例化游戏中的元素、玩家、敌人【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

十六、玩家重生、得分(PlayerController脚本)

 1.新建脚本“PlayerController”,实例化instance

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 2.Ctrl+R+E可快速部署【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 3.实例化单例【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 4.声明生命值、得分、是否死亡【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 5.重生的方法(若生命值0返回开始界面)【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 6.在Update中调用重生方法【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 7.若玩家死亡在“Player脚本”中,找到死亡方法,添加调用isDead的属性值

 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 8.若敌方死亡在“Enemy脚本”中,找到死亡方法,添加调用Score的属性值【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 十七、UI制作

1.将资源中的 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)作为5:4背景底色,将主摄像机的颜色调为灰色

2.游戏窗口比例设为16:10

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

3.使用Image、Text制作得分和生命值【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

4.(PlayerManager脚本)公开两个文本属性,在Unity中赋值【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 5.在Update中让文本随得分和生命值变化【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 6.在Unity中制作游戏失败的图片并赋值 【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 7.在Update中显示游戏失败,并暂停运行【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)

 ————————————————具体开发流程结束——————————————————

游戏内图

【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)文章来源地址https://www.toymoban.com/news/detail-458937.html

到了这里,关于【经典游戏】坦克大战 Unity2D项目实战(保姆级教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包