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

news2024/12/24 22:12:43

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

一.添加障碍物柱子

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

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

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

 

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

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

 

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

 

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

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

 

二.添加计分检测器

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

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

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

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

 

 三.障碍物脚本编写

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

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

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

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

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

 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【王道·计算机网络】第二章 物理层

一、通信基础 1. 基本概念 1.1 物理层接口特性 物理层解决如何在连接各种计算机的传输媒体上传输比特流,不指定具体的传输媒体主要任务:确定与传输媒体接口有关的一些特性 → 定义标准接口特性: 机械特性:定义物理连接的特性&a…

区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测。QRDNN模型…

linux 超过4个G的文件传不上去的解决办法

服务器是内网的要挂载镜像 哎呀。。。。超过4个G还挂载不上。。。 解决先分卷压缩,然后上传 上传文件 单个上传再把文件合并成一个 cat Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.zip* >ky.zip 再次解压就好了 unzip ky.zip

Opencv+Python图像基本操作

目录 图像的读取、显示和保存 获取图像属性 图像截取 绘图功能 画线 画矩形 画圆圈 画椭圆 画多边形 向图像添加文本 图像的读取、显示和保存 # 导入 OpenCV import cv2 # 读取图片-与python文件相同目录 img cv2.imread("image.png", cv2.NORM_HAMMING) …

Java版本工程项目管理系统源码,助力工程企业实现数字化管理

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…

实验10 人工神经网络(1)

1. 实验目的 ①理解并掌握误差反向传播算法; ②能够使用单层和多层神经网络,完成多分类任务; ③了解常用的激活函数。 2. 实验内容 ①设计单层和多层神经网络结构,并使用TensorFlow建立模型,完成多分类任务&#xf…

第四范式AIGC的野心,改变软件行业游戏规则

图片AI算法提供:Midjourney 在国内众多发布大模型的科技企业中,第四范式入局的方式与众不同。 “我们并不需要完整地对标OpenAI,也并不需要OpenAI能做什么就一定要做什么……我们不去参与一场全面的竞争,而是专注于其中一场比赛。…

关联分割点云中的实例和语义<论文>

题目:Associatively Segmenting Instances and Semantics in Point Clouds 代码:https://github.com/WXinlong/ASIS 文章讨论: Instances Segmentation 和 Semantics Segmentation 实例Instances Segmentation:分辨出每个单独事…

帮助中心对企业有用吗?要不要做帮助中心页面

对绝大部分企业来说,打造站点帮助中心平台已是当下势不可挡的发展趋势。本文小编将告诉大家企业是否有必要做帮助中心,如何制作帮助中心。 什么是帮助中心: 帮助中心定位:帮助用户更好的解决问题;给新手用户好的第一…

详解c++---模拟实现stack和queue

目录标题 设计模式stack的模拟实现准备工作各种函数的实现 queue的模拟实现准备工作queue的接口实现 deque的介绍为什么会有dequedeque的原理deque的迭代器为什么使用deque 设计模式 设计模式分为两个:迭代器模式和适配器模式 第一个:迭代器模式 迭代器…

vector、deque、list相关知识点

vector erase返回迭代器指向删除元素后的元素insert返回迭代器指插入的元素reserve只给容器底层开指定大小内存空间,并不添加新元素 deque 底层数据结构 动态开辟的二维数组,一维数组从2开始,以2倍方式扩容,每次扩容和&#x…

【STM32CubeMX】F103独立看门狗

前言 本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了独立看门狗的使用配置。要学习的话,注意流程一说的,省略的内容。 基础 独立看门狗(WWDG)开启后,复位自动开启。独立看…

Linux shell编程 函数

shell函数的定义 function 函数名 {命令序列 } 函数名() {命令序列 } 函数的返回值 return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值 使用原则 1.函数一退出就取返回值,英文$?变量只会返回执行的最后一条指令的退出状态码 2…

基于Redis的Stream结构作为消息队列,实现异步秒杀下单

文章目录 1 认识消息队列2 基于List实现消息队列3 基于PubSub的消息队列4 基于Stream的消息队列5 基于Stream的消息队列-消费者组6 基于Redis的Stream结构作为消息队列,实现异步秒杀下单 1 认识消息队列 什么是消息队列:字面意思就是存放消息的队列。最…

2.4G无线麦克风无线音频传输模块

模块概述 M01主要是一个2.4G无线音频传输模块,模组RF电路设计配合独有的软件跳频机制,有效提高了RF的抗干扰能力及传输距离。模组内置高性能的音频转换器,支持48K/24bit高品质的音频采样、支持麦克风的主动降噪,实现了无压缩的数字…

设计模式:SOLID原则

单一职责原则 Single Responsibility Principle(SRP) 接口职责应该单一,不要承担过多的职责。 开放封闭原则 Open Closed Principle(OCP) 添加一个新的功能应该是,在已有代码基础上扩展代码(…

mysql——索引,一篇说清!

直观感受——数据准备 建表与插入数据 CREATE TABLE user (uid int(11) NOT NULL AUTO_INCREMENT,name varchar(50) DEFAULT NULL,pwd varchar(50) DEFAULT NULL,create_time datetime DEFAULT NULL,modify_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT…

VSCode For Web 深入浅出 -- 插件加载机制

最近我在浏览 VSCode for web 的 repo,在最近更新的一些 commit 中发现了一个新的 VSCode 插件特性支持,名为 webOpener,它的作用是什么呢?又是如何影响插件加载的呢?在这一篇中我们结合 VSCode For Web 的插件加载机制…

大项目准备(2)

目录 中国十大最具发展潜力城市 docker是什么?能介绍一下吗? 中国十大最具发展潜力城市 按照人随产业走、产业决定城市兴衰、规模经济和交通成本等区位因素决定产业布局的基本逻辑,我们在《中国城市发展潜力排名:2022》研究报告…

uniapp和小程序如何分包,详细步骤手把手(图解)

一、小程序分包 每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。 在小程序启动时,默认会下载主包并启动主包…