【Unity项目实战】手把手教学:飞翔的小鸟(6)添加障碍

news/2024/11/15 3:54:24/

        承接上一篇:【Unity项目实战】手把手教学:飞翔的小鸟(5)背景滚动,我们已经让主角在停止不动的情况下,移动背景图,使得主角小鸟像是自己往前移动了一样,接下来我们将继续往下,讲解如何添加障碍。

一.添加障碍物柱子

        将障碍物素材(拉两个)拖拉到主界面中去,然后调整这两个障碍物的位置:

        我的两个障碍物的位置如下:

        下面的柱子位置参数如下:

 

        上面的柱子位置参数如下:

        当然,你也可以自己调整柱子之间的空隙,以免过窄导致小鸟过不去,或者太宽没有挑战性,调整好位置之后,再分别在两个柱子里添加一个碰撞检测器(绿色边为检测器范围),用以检测小鸟是否碰撞到柱子:

 

         碰撞器的范围也是按照自己的喜好进行设定,注意范围要适中,两个柱子都要添加碰撞检测器,这里就举例其中一个例子:

 

         添加完成后,新建一个空对象(命名为Columns),把这两个柱子障碍物全部拉到这个对象里面,作为一个整体,如此,一个简单的障碍物就完成了。

        需要注意的是,空对象也有自己的坐标,所以在拉柱子障碍物进来之前,需要把空对象的最表全部修改为0,再把柱子障碍物拉进来,不然就会发生位置偏移!!(你可以试试不改空对象的坐标位置拉入柱子障碍物后再看看两个柱子的坐标)

 

二.添加计分检测器

         因为小鸟安全通过两个柱子之间后,就需要计算分数,所以需要在两个柱子之间添加一个碰撞器,用来检测小鸟是否已经经过了柱子,我们直接选中Columns对象,在配置里面添加一个盒型碰撞器(设置为触发器):

        位置和大小按照自己的喜好来,我的设置如上 。设置完成后,为了测试柱子的合理性,我们可以将柱子拖拉到右边去,然后点击运行,查看柱子的反应:

         当游戏运行起来后,你就会发现,柱子和小鸟一起“静止”在当前界面了,所以我们还需要在Columns对象中添加一个物理特性,使得柱子对于小鸟来说是“运动”的:

        然后再添加一个固定脚本:

 

 三.障碍物脚本编写

        首先我们来编写游戏得分函数,每当小鸟越过柱子之后,游戏控制就应该自动加上一分,并且在下方的“SCORE”文本中更新分数,所以我们先在以前的脚本“GameControl”中添加一个得分函数,新建一个全局变量用来计算分数:

         紧接着我们加个判断,游戏一旦结束,就不要计算分数了,否则将继续计算分数:

        下一步,因为我们要让界面的分数及时更新,所以需要用到Unity的UI库,并且定义一个全局变量用以更新界面文本:

         得分函数完成后,我们就得让柱子对象来判断,小鸟如果经过了柱子,就调用这边的得分函数,所以我们需要在Columns对象下新建一个脚本(命名为columns):

        在脚本中,当碰撞器检测到有小鸟刚体触碰到触发器时,立马调用得分函数更新界面分数:

 

         下一步,我们保存下脚本,并且切换回unity主界面,将主界面上的分数文本拖拉到GameControl脚本里面,形成部内连接,让GameControl脚本里面的SoreText全局变量与主界面上的分数文本绑定:

         全部都搞完后,我们保存下,直接点击运行,你就会发现,小鸟在经过柱子之后,分数真的更新了一分!恭喜你!你已经完成了整个项目的80%的内容,在最后一章里面,我将讲解最后一点内容,也是最最复杂的一个部分,就是怎么才能让柱子障碍物在随机无限刷新,并且销毁物体。


http://www.ppmy.cn/news/62202.html

相关文章

Netty基础(三)

1.Netty模型 1.1.工作原理示意图1-简单版 Netty主要基于主从Reactors多线程模型(如图)做了一定的改进,其中主从Reactor多线程模型有多个Reactor; 说明: ①.BossGroup线程池中的线程维护了Selector,只关注Accecpt事件; ②.当接收到Accept事件,获取到连接对应的SocketChannel…

【Linux下】进程间通信

文章目录 进程间通信进程间通信的目的进程间通信的分类进程间通信的本质 管道初识管道匿名管道创建匿名管道理解协同机制和原子性写入 命名管道命名管道创建的俩种方式使用命名管道实现俩个不同进程之间通信 **管道实现进程间通信的本质**匿名管道vs命名管道 system Vsystem V共…

电子招标采购系统源码之什么是电子招投标系统?

随着互联网时代的到来,各行业都受到不同的影响,其中招投标行业也不例外。为了顺应互联网潮流的发展,电子招投标逐渐取代传统的纸质的招投标方式,给招标方、投标方、招标代理等各方也带来了前所未有的机遇与挑战。那么什么是电子招…

Ceph入门到精通-OSD 故障排除

OSD 故障排除 在对 OSD 进行故障排除之前,请先检查您的显示器和网络。如果你在命令行上 执行or并且 Ceph 显示,这意味着监视器有法定人数。如果您没有监视器法定人数或者如果监视器状态有错误,请首先解决监视器问题。检查您的网络以确保它们正常运行,因为网络可能会对 O…

【ArcGIS Pro二次开发】(25):属性映射

属性映射经常用于属性表或Excel表的赋值,比如按用地用海表对规划用地的用地编码或用地名称赋值,将汇总好的用地指标表赋值给已经制好的Excel模板等。 下面试着在ArcGIS Pro SDK中实现功能上述这两个功能。 一、Excel表格映射到属性表Table 1、要实现的…

JavaScript:字符串

文章目录 字符串344. 反转字符串reverse() 方法(打基础的时候,不要太迷恋库函数)代码及思路 541. 反转字符串 IIJavaScript String split() 方法JavaScript Array join() 方法代码分析见注释 剑指 Offer 05. 替换空格思路注意:上面…

k8s搭建教程

1、简介 这里就不赘述,想要了解的朋友直接去这里深入了解什么是K8S。 2、环境要求 2台以上机器,操作系统 CentOS7.7-64位系统 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 集群中所有机器之间网络互通 可以…

系统分析师论文---论软件需求获取技术以及应用

前言: 按照论文题目写相关内容。这一块是自己要提前准备的重点,并且一定要针对自己的项目构造几个真实的例子,不能只列举理论。回应子题目。这一块一般是写过程,有可能会问其他的,需要针对性点题 ,但是不会…