项目01——《3D滚球跑酷》

news2024/11/30 10:27:42

布局通常2 by 3

接下来我们布置场景,我们的预期结果(功能分析)是:

        游戏中中的小球会以恒定速度向前移动,而玩家控制着小球左右移动来躲避跑道中的红色障碍物,如果玩家能控制小球在跑到上移动一定距离则视为玩家通过关卡,触碰到障碍物或从跑道上掉落视为失败。

        分析:我们需要实现的功能概括来说有,主角的移动,摄像机的移动,过关与失败的检测等

首先我们开始场景搭建:

首先创建一个Cube(长方体)作为跑道

修改它的Transform与命名

创建一个小球(玩家)

修改Transofrm与命名

创建一个材质包文件夹

接着创建若干Cube作为遮挡物并设为红色

接下来创建一个Scripts文件夹用来存放脚本

创建一个脚本

命名为Run

将代码挂载玩家Player上

运行即可通过方向键左右控制小球移动躲避红色障碍物

虽然我们控制了小球移动但是主摄像机一直停留原地,接下来我们需要设置主摄像机的移动

实现主摄像机的移动方法有两种,我们可以通过以上同样方法设置与小球同样速度并保持一定距离来实现,另一种就是将主摄像机设置成小球的子物体,建立父子关系,我们采取第二种方案,

将Main Camera拖拽至Player的下方成为子物体,即完成

再次运行,可见摄像机也随之移动了。

我们最后设置游戏机制,

一般有两种情况会导致游戏失败,一种是碰到了障碍物,另一种是小球从跑到边缘掉落

实现这个功能只需要将障碍物上的Is Trigger选项勾选,然后再障碍物的脚本里的OnTriggerEnter()函数中检测碰撞即可。

我们需要先创建一个完备的障碍物,变成预制体,随后拖拽预制体设置场景障碍。

我们先创建一个预制体文件夹

再创建一个障碍物需要挂载的Stop脚本

将场景中的一个Cube障碍物的Is Trigger打开

删除其余障碍物

将Cube改名为Barrier(障碍物)

我们在运行测试小球与障碍物相撞的结果之前,需要将小球挂载Rigidbody

障碍物挂载停止脚本Stop.cs

运行相撞即停止

可见Stop.cs代码中的Time.timeScale表示游戏的运行时间倍率,设置为0即表示游戏里的时间停滞,1即正常的时间流逝速度,2即翻倍,以此类推。

我们将障碍物Brrier放进预制体中,再从预制体设置场景布满障碍物

注意:wasd + 鼠标右键可移动编辑场景视角

注意:

Hierarchy中的放置预制体为蓝色

虽然撞到障碍物停止的功能实现了,但小球掉落后的功能却没与实现

所以我们继续编写Player中的代码,

运行掉落即暂停

当游戏失败结束时应该允许玩家重新开始游戏,这里设置键盘上的R键为重置游戏的按键,在按R键后即可重新加载当前场景。继续在Player脚本里添加代码:

修改脚本后运行即可按R键复位重置游戏

注意:SceneManager这个类型属于using UnityEngine.SceneManagement的,因此要添加头文件才能调用SceneManager.LoadScene(0)方法,这里参数0表示场景的序号,由于游戏现在只有一个场景,因此表示加载当前场景。

接着设置终点,

在过了所有障碍之后不远处创建一个物体作为终点

设置终点

新建挂载在终点物体的Win代码

检查Player是否添加了组件Rigidbody

代码挂载

最后取消终点物体End的Mesh Renderer(渲染器)的勾选让物体消失但触发器还在

即实现全部功能

最后我们进行完善游戏,

首先加入一个通关UI界面

UI界面设置好之后,接下来要做的是在游戏开始时隐藏UI,在小球触发终点物体时再显示,修改End终点物体的Win.cs代码

注意这里一定要把Panel命名为EndUI,不然在代码中会找不到EndUI我们设置的UI显示界面

运行即可实现UI功能

最后扩展一个3D数学知识,简单思路为:在Player脚本中使用获取的横向输入,以此控制摄像机的倾斜角度。在Player物体的Run.cs脚本中添加以下代码即可

运行实现

End

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

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

相关文章

从CISC到RISC-V:揭开指令集的面纱

对于大多数同学来说,计算机或智能手机的运行似乎就像魔法一样神奇。你可能知道它们内部都是一些复杂的电子组件,比如CPU、内存等等,但这些组件是如何协同工作,让我们可以在电脑上打字,或者在手机上看视频呢&#xff1f…

基于SSM的在线宠物商城设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

Tide Quencher 7.1WS azide,TQ7.1WS N3,适用于多种荧光物质的分析

您好,欢迎来到新研之家 文章关键词:Tide Quencher 7.1WS 叠氮,TQ7.1WS 叠氮,Tide Quencher 7.1WS azide,TQ7.1WS N3,TQ7.1WS azide,Tide Quencher 7.1WS N3 一、基本信息 产品简介&#xff1…

java SECS管理系统 将逐步推出 SECS 客户端(Passive) 管理系统 SECS快速开发平台 springboot secs开发平台

SECS管理系统 这是一套SECS客户端(Passive),可以直接连接PLC设备,支持Modbus、三菱MC、欧姆龙Fine、OPC-UA、西门子S7设备等通信。 企业已经有了EAP软件,但是设备没有SECS通信功能,这时候可以使用这套框架,直接连接设备&#xff…

springboot集成shiro+前端vue,前后端分离项目遇到跨域以及sessionid拿不到等问题

近期在写前后端分离的项目,由于前后端分离导致原来使用的shiro配置无法满足现有系统要求。同时在前后端分离项目中存在的一些问题。例如,一些用户信息需要存储在后端方便进行安全性判断,但这些存储在后端的session前端却获取不到(…

专业140+总410+哈尔滨工业大学803信号与系统和数字逻辑电路考研经验哈工大电子信息(信息与通信工程-信通)

一年的努力付出终于有了收获,今年专业课140,总分410顺利上岸哈工大803电子信息(信息与通信-信通),回顾总结了自己这一年的复习,有得有失,希望对大家复习有所帮助。 数学 时间安排:…

C++力扣题目40--组合总和II

力扣题目链接(opens new window) 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是…

linux pxe高效批量网络装机

系统装机的三种方式 U盘(pe) 光驱 网络启动(pxe) pxe PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像&#…

252:vue+openlayers 绘制锥形渐变填充色的圆形

第252个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中绘制带有锥形渐变填充色的圆形。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共131行)相关API参考专栏目标示例效果 </

【论文阅读】Speech Driven Video Editing via an Audio-Conditioned Diffusion Model

DiffusionVideoEditing&#xff1a;基于音频条件扩散模型的语音驱动视频编辑 code&#xff1a;GitHub - DanBigioi/DiffusionVideoEditing: Official project repo for paper "Speech Driven Video Editing via an Audio-Conditioned Diffusion Model" paper&#…

IOS-高德地图SDK接入-Swift

申请key 这个要前往高德开发平台注册成为个人开发者然后在控制台创建一个应用&#xff1a; 高德开发平台 注册步骤就不写了&#xff0c;写一下创建应用的步骤&#xff1a; 1、点击应用管理——>我的应用 2、点击右上角的创建新应用 3、输入内容&#xff1a; 4、点击添加ke…

计算机视觉丨基于OpenCV的人脸识别打卡系统

文章目录 写在前面项目分析需求分析1.数据模型2.打卡功能3.数据维护4.考勤报表 系统设计项目设计1.文件系统2.数据模块3.工具模块4.服务模块5.人脸识别6.主函数 运行结果写在后面 写在前面 本期内容&#xff1a;基于OpenCV的WANT公司人脸识别打卡系统。 项目需求&#xff1a;…

Flink(十三)【Flink SQL(上)】

前言 最近在假期实训&#xff0c;但是实在水的不行&#xff0c;三天要学完SSM&#xff0c;实在一言难尽&#xff0c;浪费那时间干什么呢。SSM 之前学了一半&#xff0c;等后面忙完了&#xff0c;再去好好重学一遍&#xff0c;毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…

阿里云 linux Centos7 安装 Miniconda3 + 创建Python环境

1.下载miniconda &#xff08;1&#xff09;法一&#xff1a;可以去下载清华源的miniconda镜像源&#xff0c;选择自己需要的版本&#xff0c;然后上传到Linux服务器上&#xff0c;linux上使用请选择linux版本&#xff0c;如下&#xff1a; &#xff08;2&#xff09;法二&…

在Excel中如何打开VBA,这里提供两种方法

想在Excel中创建或添加自己的自定义Visual Basic脚本吗&#xff1f;第一步是了解如何在Excel中打开VBA编辑器。 在易用性和整体功能方面&#xff0c;没有其他电子表格应用程序能与Excel相提并论。无论你想做什么&#xff0c;只要你能深入挖掘Excel的深层菜单&#xff0c;就有很…

Ubuntu 22.04 Cron使用

需要定时处理的场景还是比较多的&#xff0c;比如信息推送、日志清理等。 这篇文章我们来说说如何使用cron来实现定时处理&#xff0c;以及监控任务的执行。 使用 Ubuntu中使用cron&#xff0c;要用到的命令是crontab。不加sudo时&#xff0c;处理的是个人的定时任务。当加上…

HarmonyOS应用开发者高级认证试题库(鸿蒙)

目录 考试链接&#xff1a; 流程&#xff1a; 选择&#xff1a; 判断 单选 多选 考试链接&#xff1a; 华为开发者学堂华为开发者学堂https://developer.huawei.com/consumer/cn/training/dev-certification/a617e0d3bc144624864a04edb951f6c4 流程&#xff1a; 先进行…

支持华为GaussDB数据库的免费开源ERP:人力资源管理解决方案概述

开源智造所推出的Odoo SuperPeople数字化解决方案将HR和薪资数据与财务、项目规划、预算和采购流程连接起来&#xff0c;消除了多套系统给企业带来的信息孤岛问题。 ——复星集团 人力资源中心 高经理 一种更具吸引力、更有洞察力的人员管理方式 什么是开源智造Odoo的人力资源…

找不到mfc100.dll的解决方法,怎么修复mfc100.dll文件

当我们在使用电脑时&#xff0c;时常可能会遇到各类系统提示的错误信息。"找不到mfc100.dll" 就是这些错误之一&#xff0c;该错误提示会妨碍我们执行一些应用程序或特定代码。为了帮助读者克服这个技术障碍&#xff0c;本篇文章将详尽阐明导致该问题的根本原因&…

SQL进阶3

二、多表连结 1、什么叫联结 下面&#xff0c;我们举个例子来说明&#xff1a; 学校的安排的课程信息&#xff0c;我们平时都会为主要人员负责的对应课程信息创建表格&#xff0c;让其更好地检索得到对应数据信息。学生可以查到自己本身的课程信息&#xff0c;而老师也可以查…