德国 网站 后缀/市场调研公司

德国 网站 后缀,市场调研公司,租空间做网站需要多少钱,免费广告网一、引言 游玩测试: Football 游玩测试 1.项目背景与动机 背景:在学习 Unity 的过程中,希望通过实际项目来巩固所学知识,同时出于对休闲小游戏的喜爱,决定开发一款简单有趣的小游戏加深自己的所学知识点。 动机&#…

一、引言

游玩测试:

Football 游玩测试


1.项目背景与动机

        背景:在学习 Unity 的过程中,希望通过实际项目来巩固所学知识,同时出于对休闲小游戏的喜爱,决定开发一款简单有趣的小游戏加深自己的所学知识点。

        动机:希望能让玩家在轻松的氛围中体验游戏的乐趣,缓解日常学习和工作的压力,同时希望在学习unity的道路上留下点脚印。


2.预期效果与目标

        预期效果:实现一个画面简洁、操作流畅的球体控制游戏,玩家操控球在场景中移动,收集食物得分,达到一定分数获胜

        目标:完成一个功能完整的小游戏,并通过测试和发布,让更多人体验到游戏的乐趣,同时提升自己在 Unity 开发方面的技能。

(1)游戏开始(伴有吃道具的音效,UI得分界面,贴图,视野跟随,物品旋转)

(2)游戏结束(伴有结束背景音效)


二、前期准备

1.开发环境搭建

(1)操作系统选择Windows 系统软件兼容性好,Unity 开发相关工具和插件容易获取和安装,且有大量的开发教程资源;

(2)硬件配置需求:CPU 建议选择 Intel i5 及以上或 AMD 同级别处理器,以保证代码编译和游戏运行的流畅性;GPU 方面,NVIDIA GeForce GTX 1050 及以上或 AMD 同性能显卡,有助于处理游戏中的图形渲染。


2.软件工具介绍以及安装包
                                                                                 

(1)Unity 版本选择与下载安装:选择了 Unity 2023.版本,该版本功能较新且稳定性较好。

                                                                                          

(2)VS2022:使用 Visual Studio2022 作为脚本代码编辑器。

(3)其他辅助软件:

Inno Setup Compiler:用于将Unity打包的软件,进行再加工,形成可供别人游玩的安装包

Bandicam:用于录制视频和音效素材(可有可无);

(4)安装TIPS:

Unity制作游戏——前期准备:Unity2023和VS2022下载和安装配置——附安装包-CSDN博客

        通过网盘分享的文件:Inno Setup 6.zip等2个文件
链接: https://pan.baidu.com/s/11ljj4FaZJh4DI1riwyOo8w?pwd=4399 提取码: 4399 
--来自百度网盘超级会员v5的分享


三、游戏策划

1.游戏创意构思

(1)灵感来源:受到经典的吃豆人游戏启发,结合足球元素,想打造一个新的休闲玩法,让玩家操控足球在充满食物的场景中收集得分。

(2)游戏类型定位:属于休闲益智类游戏,规则简单易上手,适合各个年龄段的玩家在碎片化时间内进行娱乐。


2.核心玩法设计

(1)玩法规则详细描述:玩家操控球在限定的场景中移动,场景中分布着食物,足球与食物碰撞后可收集食物得分,当收集的食物数量达到 8 个时,游戏胜利。

(2)玩家交互方式规划:玩家通过键盘的方向键控制足球的(wsad)前后左右移动按下 Escape 键可退出游戏。游戏过程中,通过 UI 界面实时显示当前得分,胜利时显示胜利文本。


3.游戏美术风格确定

(1)色彩搭配构思:采用明亮活泼的色彩,以黄色作为食物和主要场景元素的底色,搭配蓝色、粉色等对比色,使画面更加醒目和吸引人。

 


(2)角色、场景风格设定参考:角色(足球)和场景元素采用简洁的卡通风格,参考一些低多边形风格的游戏,让画面看起来清新可爱,符合休闲游戏的定位。


四、Unity 开发流程

1.项目创建与设置

(1)在 Unity 中新建项目流程:打开 Unity Hub,点击 “新建”,选择 3D 模板,设置项目名称和存储路径,点击创建,等待项目初始化完成。(第一次创建等待时间有点长

步骤一:


步骤二:


(2)项目基本设置
步骤一:改变窗口布局方式


步骤二:改变游戏界面的窗口分辨率


2.资源导入与管理

        美术资源导入方法将准备好的图片、模型等美术资源直接拖放到 Unity 的 Project 视图中,或者使用 Assets - Import New Asset 菜单导入,选择你要导入的资源即可。


        资源文件夹结构规划在 Project 视图中创建 Materials(材质)、Scripts(脚本)、Scenes(场景)、Prefabs(预制体)等文件夹,将对应资源分类存放,方便管理和查找。


3.场景搭建

        创建与布局场景:使用 Unity 的基本几何体创建地面墙壁等场景元素,通过调整位置旋转缩放来布局场景。

步骤一:地面的搭建(在Hierarchy窗口——右击——3D Obiect——Plane)

步骤二:对地面进行基础设置(大家可以自己多试试,不一定非要和我的一样)

步骤三:创建材质,命名为地面材质(如:floor_material),便于后期区分材质

步骤四:选中材质,对材质进行基础设置。

步骤五:将修改好的材质直接 拖放到 创建的平面上

步骤六:墙壁的搭建(在Hierarchy窗口——右击——3D Obiect——Cube)

步骤七:选中创建的Cube,复制三个Ctrl+D,分别命名为前后左右墙

步骤八:进行变形移动等操作使之围绕地面

TIPS:放到场景视图,会发现有网格,每个网格大小为1m。

步骤九:创建材质,命名为墙壁材质(如:wall_material),然后进行个性化设置

步骤十:记得材质要  拖放 到物体本身 才可以起作用


4.角色与对象创建

        创建角色:足球模型和添加材质以及增加刚体碰撞器
主角:

墙壁和地面:都得确保有:Collider

Tips:添加 Rigidbody 组件用于物理模拟,添加 Box Collider 或 Sphere Collider 作为碰撞体;给墙壁等障碍物添加 Collider 组件,确保碰撞效果正常。


五、脚本编写与代码实现

1. FootBalll_Control 脚本:该脚本主要负责控制足球的移动、计分、处理碰撞事件以及实现游戏的退出功能。
using UnityEngine;
using TMPro;public class FootBalll_Control : MonoBehaviour
{public Rigidbody R1;public TextMeshProUGUI TextScore;public int score = 0;public GameObject Wintext;public AudioSource victoryMusic; public AudioSource eatSound; public GameObject tanhuang;void Start(){if (victoryMusic != null){victoryMusic.Stop();}}void Update(){float h = Input.GetAxisRaw("Horizontal");// 接受左右输入float v = Input.GetAxisRaw("Vertical");// 接受前后输入R1.AddForce(new Vector3(h, 0, v));if (Input.GetKeyDown(KeyCode.Escape)){QuitGame();}}private void OnTriggerEnter(Collider other){if (other.gameObject.tag == "Food"){eatSound.Play();score++;TextScore.text = score.ToString();Destroy(other.gameObject);if (score == 8){Wintext.SetActive(true);victoryMusic.Play();}}}// 退出游戏的方法void QuitGame(){
#if UNITY_EDITORUnityEditor.EditorApplication.isPlaying = false;
#else// 在发布后的应用程序中,使用Application.Quit()来退出游戏Application.Quit();
#endif}
}

R1:用于引用足球的刚体组件,以便对足球进行物理控制。

TextScore:用于显示当前的游戏分数。

score:存储当前的游戏分数,初始值为 0。

Wintext:代表胜利文本的游戏对象,当分数达到一定条件时显示。

victoryMusic 和 eatSound:分别为胜利音乐和吃食物的音效,通过 AudioSource 组件播放。

tanhuang:代表弹簧的游戏对象,后续可能用于实现特殊的物理效果。

Start 方法:在游戏开始时调用,确保胜利音乐一开始不会播放。

Update 方法:通过 Input.GetAxisRaw 方法获取玩家的水平和垂直输入,然后使用 R1.AddForce 方法给足球施加力,从而实现足球的移动。

检测玩家是否按下 Escape 键,如果按下则调用 QuitGame 方法退出游戏。

OnTriggerEnter 方法:当足球触发具有 “Food” 标签的游戏对象时,播放吃食物的音效,增加分数,更新分数显示,并销毁该食物对象。

当分数达到 8 时,显示胜利文本并播放胜利音乐。

QuitGame 方法:根据游戏运行的环境,在编辑器中使用 UnityEditor.EditorApplication.isPlaying = false 退出播放模式,在发布后的应用程序中使用 Application.Quit() 退出游戏。


2. Follow_Camera_Scripts 脚本:该脚本用于实现相机跟随足球的功能,确保相机始终保持与足球的相对位置。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Follow_Camera_Scripts : MonoBehaviour
{public Transform Tf_Camera;public GameObject Football;Vector3 distance=new Vector3();// Start is called before the first frame updatevoid Start(){distance= Tf_Camera.position-Football.transform.position;}// Update is called once per framevoid Update(){Tf_Camera.position= distance+Football.transform.position;}
}

Tf_Camera:相机的 Transform 组件,用于控制相机的位置。

Football:足球的游戏对象,相机将跟随该对象移动。

distance:存储相机与足球的初始相对位置。

Start 方法:在游戏开始时,计算相机与足球的初始相对位置。

Update 方法:在每一帧中,根据足球的当前位置和初始相对位置,更新相机的位置,从而实现相机跟随足球的效果。


3. Food_Rotate 脚本:该脚本用于实现食物的旋转效果,使游戏中的食物看起来更加生动。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Food_Rotate : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){transform.Rotate(new Vector3(0, 0.5f, 0), Space.World);}
}

Update 方法:在每一帧中,使用 transform.Rotate 方法让食物绕 Y 轴旋转,旋转速度为 0.5 度,旋转空间为世界空间


六、游戏测试与发布

        内部测试流程与方法:在 Unity 编辑器中进行多次测试,检查游戏功能是否正常,如移动、得分、胜利条件等。

        打包设置:在 Build Settings 中选择目标平台(如 Windows、Mac、Android 等),根据不同平台的特点进行设置,如分辨率适配、权限设置等。

        整合成安装包:利用Inno Setup Compiler,教程见如下博客(后续发布)
 


七、总结与展望

        在开发过程中,深入学习了 Unity 的各项功能和 C# 语言的应用,提高了自己的编程和问题解决能力。同时,也体会到游戏开发需要耐心和细心,从策划到实现每个环节都至关重要。

八.结语

        通过这三个脚本的协同工作,我们实现了一个简单的足球小游戏。玩家可以通过键盘控制足球的移动,收集场景中的食物来增加分数,当分数达到 8 时获得胜利。同时,相机跟随足球移动,并且食物会不断旋转,增强了游戏的视觉效果。这个小游戏虽然简单,但涵盖了 Unity 中基本的物理控制、输入处理、碰撞检测、音效播放以及相机跟随等功能,为进一步开发更复杂的游戏奠定了基础。

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

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

相关文章

QQ登录测试用例报告

QQ登录测试用例思维导图 一、安全性测试用例 1. 加密传输与存储验证 测试场景:输入账号密码并提交登录请求。预期结果:账号密码通过加密传输(如HTTPS)与存储(如哈希加盐),无明文暴露。 2. 二…

无人机实战系列(三)本地摄像头+远程GPU转换深度图

这篇文章将结合之前写的两篇文章 无人机实战系列(一)在局域网内传输数据 和 无人机实战系列(二)本地摄像头 Depth-Anything V2 实现了以下功能: 本地笔记本摄像头发布图像 远程GPU实时处理(无回传&#…

读取罗克韦尔AllenBradley Micro-Logix1400 罗克韦尔 CIP PCCC通信协议

通信协议实例下载 <-----实例下载 MicroLogix 1400的通信能力 MicroLogix 1400支持多种通信协议&#xff0c;包括CIP&#xff08;通过EtherNet/IP实现&#xff09;、Modbus RTU/TCP、DF1等4812。其硬件集成以太网端口&#xff0c;便于通过EtherNet/IP进行CIP通信15。 CIP…

Python游戏编程之赛车游戏6-5

1 碰撞检测 在显示了玩家汽车和“敌人”汽车之后&#xff0c;接下来就要实现玩家与“敌人”的碰撞检测了。 代码如图1所示。 图1 碰撞检测代码 第72行代码通过pygame.sprite.spritecollideany()函数判断P1和enemies是否发生了碰撞&#xff0c;如果发生碰撞&#xff0c;该函数…

保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek

要在Postman中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java通过api 调用 具体的代码实现参考我这个博…

网络空间安全(2)应用程序安全

前言 应用程序安全&#xff08;Application Security&#xff0c;简称AppSec&#xff09;是一个综合性的概念&#xff0c;它涵盖了应用程序从开发到部署&#xff0c;再到后续维护的整个过程中的安全措施。 一、定义与重要性 定义&#xff1a;应用程序安全是指识别和修复应用程序…

Plantsimulation中机器人怎么通过阻塞角度设置旋转135°

创建一个这样的简单模型。 检查PickAndPlace的角度表。源位于180的角位置&#xff0c;而物料终结位于90的角位置。“返回默认位置”选项未被勾选。源每分钟生成一个零件。启动模拟时&#xff0c;Plant Simulation会选择两个位置之间的最短路径。示例中的机器人无法绕135的角位…

Spring Boot集成Swagger API文档:傻瓜式零基础教程

Springfox Swagger 是一个用于构建基于 Spring Boot 的 RESTful API 文档的开源工具。它通过使用注解来描述 API 端点&#xff0c;自动生成易于阅读和理解的 API 文档。Springfox 通过在运行时检查应用程序&#xff0c;基于 Spring 配置、类结构和各种编译时 Java 注释来推断 A…

接口测试基础 --- 什么是接口测试及其测试流程?

接口测试是软件测试中的一个重要部分&#xff0c;它主要用于验证和评估不同软件组件之间的通信和交互。接口测试的目标是确保不同的系统、模块或组件能够相互连接并正常工作。 接口测试流程可以分为以下几个步骤&#xff1a; 1.需求分析&#xff1a;首先&#xff0c;需要仔细…

kafka-集群缩容

一. 简述&#xff1a; 当业务增加时&#xff0c;服务瓶颈&#xff0c;我们需要进行扩容。当业务量下降时&#xff0c;为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器&#xff0c;预计缩到 10 台机器&#xff0c;那么需要做 5 次缩容操作&#xff0c;每次将一个节点下线…

Spring Boot 概要(官网文档解读)

Spring Boot 概述 Spring Boot 是一个高效构建 Spring 生产级应用的脚手架工具&#xff0c;它简化了基于 Spring 框架的开发过程。 Spring Boot 也是一个“构件组装门户”&#xff0c;何为构件组装门户呢&#xff1f;所谓的“构件组装门户”指的是一个对外提供的Web平台&#x…

java递归求自然数列的前n项和

概述 实现 /*** 数列 1 2 3 ... n ...* 递归求数列的前n项和* param n* return*/private static long calSum(long n){if (n1) return 1;else {return ncalSum(n-1); // 前n项的和 即第n项的值前n-1项的和}}测试用例 public static void main(String[] args) {long res1 cal…

【Godot4.3】题目与答案解析合并器

免责申明 本文和工具截图中涉及题库和题目&#xff0c;均为本人自学使用&#xff0c;并未有商业和传播企图。如有侵害&#xff0c;联系删改。 概述 笔者本人医学专业从业人员&#xff0c;编程只是业余爱好。在自己的专业应考学习过程当中&#xff1a; 有时候不太喜欢纸质题库…

Lm studio本地部署DeepSeek

为什么用Lm studio Ollama官网下载过慢或失败&#xff08;Lm默认下载源无法下载&#xff0c;但可以更换下载源&#xff09;Ollama默认安装至C盘一部分Nivida显卡无法吃满显存资源一部分AMD显卡替换rocm文件后无法启动 Lm studio安装 官网下载&#xff1a;LM Studio - Discov…

基于Qlearning强化学习的2DoF机械臂运动控制系统matlab仿真

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 2DoF机械臂运动学模型 2.2 Q-learning强化学习算法原理 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 仿真操作步骤可参…

Unity贴图与模型相关知识

一、贴图 1.贴图的类型与形状 贴图类型 贴图形状 2.在Unity中可使用一张普通贴图来生成对应的法线贴图&#xff08;但并不规范&#xff09; 复制一张该贴图将复制后的贴图类型改为Normal Map 3.贴图的sRGB与Alpha sRGB&#xff1a;勾选此选项代表此贴图存储于Gamma空间中…

pyecharts介绍

文章目录 介绍安装pyecharts基本使用全局配置选项 折线图相关配置地图模块使用柱状图使用 介绍 echarts虑是个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到了众多开发者的认可&#xff0c;而Pyhon是门富有表达力的语言&a…

vllm部署LLM(qwen2.5,llama,deepseek)

目录 环境 qwen2.5-1.5b-instruct 模型下载 vllm 安装 验证安装 vllm 启动 查看当前模型列表 OpenAI Completions API&#xff08;文本生成&#xff09; OpenAI Chat Completions API&#xff08;chat 对话&#xff09; vllm 进程查看&#xff0c;kill llama3 deep…

Python NumPy库使用指南:从入门到精通

1. 引言 NumPy(Numerical Python)是 Python 中用于科学计算的核心库之一。它提供了强大的多维数组对象(ndarray),以及一系列高效的数学函数,能够轻松处理大规模的数值数据。NumPy 是许多其他科学计算库(如 Pandas、Matplotlib、Scikit-learn 等)的基础。 本文将详细介…

用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解

DeepSeek R1 的完整训练流程核心在于&#xff0c;在其基础模型 DeepSeek V3 之上&#xff0c;运用了多种强化学习策略。 本文将从一个可本地运行的基础模型起步&#xff0c;并参照其技术报告&#xff0c;完全从零开始构建 DeepSeek R1&#xff0c;理论结合实践&#xff0c;逐步…