当前位置: 首页 > news >正文

Unity 三维场景的搭建 软件构造实验报告

实验2:仿真系统功能实现

1.实验目的

(1)熟悉在Unity中设置仿真场景;

(2)熟悉在Unity中C#语言的使用;

(3)熟悉仿真功能的实现。

2.实验内容

新建一个仿真场景,完成下列功能:

(1)使用Unity的基本建模功能设置一些三维场景(自行发挥想象,进行建模设计)

(2)实现漫游功能,可以在场景中键盘控制前后左右移动,鼠标控制旋转,完成基本的场景漫游功能。(自行设计)

(3)使用射线,实现获取鼠标的点击功能。(自行设计)

(4)制作内部动画,配合鼠标点击,实现播放动画。(自行设计)

(5)设置触发器,当漫游相机进到入触发器中时,执行动画的播放。(自行设计)

(6)添加背景音乐和鼠标点击的音效(自行设计)

(7)添加UI按钮设计,要求可以返回主控界面。(自行设计)

(8)打包,生成可执行文件,要求可执行文件脱离Unity环境后,能够自行运行。

3.实验步骤

第一步:构建三维向量

创建一个新的场景用来构建三维场景

接着添加地面

接着,可以通过对象中自带的组件去改变地形

通过组件中自带的功能 可以调整地形,构建出自己需要的地势

接着,通过增加树木花草等,构建出基本的三维场景

这里我使用的是另一种方法,可以去素材商城中添加一下免费的素材,可以方便搭建场景。

第二步:实现漫游功能

将该代码附加加需要控制的物体上,即可实现控制物体移动。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Component1 : MonoBehaviour
{GameObject obj;public float floSpeed = 10;public float floRotate = 100;void Start(){//第三人称视角跟随Camera.main.transform.SetParent(this.transform);Camera.main.transform.localPosition = new Vector3(0, 3, -4);Camera.main.transform.localEulerAngles = new Vector3(6, 0, 0);}     }void Update(){move();look();}private void look(){float y = Input.GetAxis("Mouse X") * floRotate * Time.deltaTime;transform.Rotate(transform.up, y);}private void move(){   float x =Input.GetAxis("Horizontal") *floSpeed* Time.deltaTime;float z =Input.GetAxis("Vertical") *floSpeed* Time.deltaTime;transform.Translate(x, 0, z);}
}

第三步:使用射线,获得鼠标点击功能

当点击地面时候,返回地面的坐标。

第四步:制作内部动画,配合鼠标点击,实现播放动画

可以通过右键--->Create创建一个Animation

为了方便后面的动画设计,我们这里导入一个素材

 通过设置动画执行顺序 和条件,完成捡东西动画的制作

第五步:添加背景音乐

右键--->Audio  添加一个音乐组件

导入音乐素材,拖入Audio组件中

通过按B去设置背景音乐的播放private void playMusic(){if (Input.GetKey(KeyCode.B)){if(ads.isPlaying){ads.Pause();}else{ads.Play();}}}
通过ZX去调节音量大小private void changeVolume(){if (Input.GetKey(KeyCode.Z)){ads.volume--;}else if (Input.GetKey(KeyCode.X)){ads.volume++;}}

第六步:添加UI按钮设计,要求可以返回主控界面。

添加UI button按钮,设计一个返回按钮

编辑代码,当点击按钮时候 跳转到登录的场景

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;             //新版
using UnityEngine.UI;    //旧版GUI命名空间
using System;
using UnityEngine.SceneManagement;public class Component11 : MonoBehaviour
{public Button button;// Start is called before the first frame updatevoid Start(){button.onClick.AddListener(ClickButton);}// Update is called once per framevoid ClickButton(){SceneManager.LoadScene(0);}
}

相关文章:

Unity 三维场景的搭建 软件构造实验报告

实验2:仿真系统功能实现 1.实验目的 (1)熟悉在Unity中设置仿真场景; (2)熟悉在Unity中C#语言的使用; (3)熟悉仿真功能的实现。 2.实验内容 新建一个仿真场景&#x…...

2024贵州大学计算机考研分析

24计算机考研|上岸指南 贵州大学 贵州大学计算机科学与技术学院(贵州大学省级示范性软件学院)位于贵州省贵阳市花溪区贵州大学东校区。 计算机科学与技术学院(软件学院)自1972年创办计算机软件本科专业开始,至今已有…...

Spring高级bean的实例化方法

bean的实例化方法 构造方法 实例化bean第一种:使用默认无参构造函数(常用) 第二种创建bean实例:静态工厂实例化(了解) 第三种:实例工厂(了解)与FactoryBean(实用)...

Vue2系列 — 渲染函数 (render + createElement)

官网文档&#xff1a;https://v2.cn.vuejs.org/v2/guide/render-function.html 1 render 函数 render 函数 不使用模板&#xff0c;使用 js 生成虚拟 dom 2 createElement() 接受的参数&#xff1a; 参数1 节点类型参数2 attribute参数3 子节点 3 DEMO <template>&…...

加载SSL证书

使用JDK1.8 开发工具包bin目录下的keytool.exe工具生成ssl密钥&#xff1a; keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.p -genkey&#xff1a; 表示创建密钥。-alias&#xff1a; 保存时的别名。-keyalg&#xff1a;加密算…...

redis 非关系型数据库

redis 非关系型数据库 redis 非关系型数据库&#xff0c;缓存型数据库 关系型数据库和非关系型数据库的区别&#xff1a; 关系型数据库是一个结构化的数据库&#xff0c;行和列 列&#xff1a;声明对象 行&#xff1a;记录对象的属性 表与表之间是有关联的&#xff0c;使用…...

Python配置与测试利器:Hydra + pytest的完美结合

简介&#xff1a;Hydra 和 pytest 可以一起使用&#xff0c;基于 Hydra Pytest 的应用可以轻松地管理复杂配置&#xff0c;并编写参数化的单元测试&#xff0c;使得Python开发和测试将变得更为高效。 安装&#xff1a; pip install hydra-core pytest案例源码&#xff1a;my…...

5.基于飞蛾扑火算法(MFO)优化的VMD参数(MFO-VMD)

代码的使用说明 基于飞蛾扑火算法优化的VMD参数 优化算法代码原理 飞蛾扑火优化算法&#xff08;Moth-Flame Optimization&#xff0c;MFO&#xff09;是一种新型元启发式优化算法&#xff0c;该算法是受飞蛾围绕火焰飞行启发而提出的&#xff0c;具有搜索速度快、寻优能力强的…...

爱创科技总裁谢朝晖荣获“推动医药健康产业高质量发展人物”

中国医药市场规模已经成为全球第二大医药市场&#xff0c;仅次于美国。近年来&#xff0c;随着中国经济的持续增长和人民生活水平的提高&#xff0c;医药市场需求不断扩大。政府对医疗卫生事业的投入也在不断加大&#xff0c;为医药行业的发展创造了良好的政策环境。为推动医药…...

055-第三代软件开发-控制台输出彩虹日志

第三代软件开发-控制台输出彩虹日志 文章目录 第三代软件开发-控制台输出彩虹日志项目介绍控制台输出彩虹日志实现原理真实代码 总结 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QM…...

Os-hackNos-3

Os-hackNos-3 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.145 arp-scan -l端口扫描&#xff0c;开放了22和80端口 nmap -P -sV 192.168.80.145二、信息收集 访问80端口 find the Bug You need extra WebSec翻译 找到Bug 你需要额外的网络安全路径扫描 d…...

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测 目录 时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机时间序列预测 1.data为数据集…...

LeetCode:307. 区域和检索 - 数组可修改(树状数组 C++)

目录 307. 区域和检索 - 数组可修改 题目描述&#xff1a; 实现代码与解析&#xff1a; 树状数组&#xff1a; 原理思路&#xff1a; 307. 区域和检索 - 数组可修改 题目描述&#xff1a; 给你一个数组 nums &#xff0c;请你完成两类查询。 其中一类查询要求 更新 数组…...

909-2015-T3

文章目录 1.原题2.算法思想2.1.求树的高度2.2.求路径 3.关键代码4.完整代码5.输出结果 1.原题 试编写算法&#xff0c;求给定二叉树上从根节点到叶子节点的一条路径长度等于树的深度减一的路径&#xff08;即列出从根节点到该叶子节点的节点序列&#xff09;&#xff0c;若这样…...

【云原生】初识 Service Mesh

目录 一、什么是Service Mesh 二、微服务发展历程 2.1 微服务架构演进历史 2.1.1 单体架构 2.1.2 SOA阶段 2.1.3 微服务阶段 2.2 微服务治理中的问题 2.2.1 技术栈庞杂 2.2.2 版本升级碎片化 2.2.3 侵入性强 2.2.4 中间件多&#xff0c;学习成本高 2.2.5 服务治理功…...

常见的8个JMeter压测问题

为什么在JMeter中执行压力测试时&#xff0c;出现连接异常或连接重置错误&#xff1f; 答案&#xff1a;连接异常或连接重置错误通常是由于服务器在处理请求时出现问题引起的。这可能是由于服务器过载、网络故障或配置错误等原因导致的。 解决方法&#xff1a; 确定服务器的…...

深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序 计算机竞赛

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…...

羊大师教你如何有效解决工作中的挑战与压力?

在现代社会&#xff0c;工作问题一直是许多人头疼的难题。无论是从工作压力到职业发展&#xff0c;工作问题不仅会影响个人的心理健康&#xff0c;还可能对整个工作团队的效率和和谐产生负面影响。因此&#xff0c;如何有效解决工作问题成为了每个职场人士都需要面对的挑战。 …...

【性能测试】稳定性/并发压力测试的TPS计算+5W并发场景设计...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、稳定性测试TPS…...

人工智能的时代---AI的影响

人工智能&#xff08;AI&#xff09;是当前科技领域的一个热门话题&#xff0c;它正在以前所未有的速度改变着我们的生活方式和工作方式。从智能家居到自动驾驶&#xff0c;从智能医疗到智能金融&#xff0c;人工智能正在渗透到我们生活的方方面面。在这篇文章中&#xff0c;我…...

别再让大模型加载卡脖子:实测对比device_map的四种策略,教你选对‘balanced_low_0’

多GPU环境下大模型加载优化实战&#xff1a;深度解析device_map策略选择 当你在多GPU服务器上加载一个数十亿参数的大语言模型时&#xff0c;是否经历过漫长的等待时间&#xff1f;或是遇到显存不足的报错&#xff1f;这些痛点往往源于对device_map策略的不当选择。本文将带你深…...

飞书日历API实战:基于Node.js与OAuth构建自动化日程助手

1. 项目概述&#xff1a;一个能听懂人话的飞书日历助手 最近在折腾自动化流程&#xff0c;发现一个挺高频的需求&#xff1a;把那些零散的日程安排&#xff0c;从聊天对话里直接同步到日历。比如同事在飞书群里说“下周三下午三点开个会”&#xff0c;或者自己随手记的“周五记…...

GBase 8c数据库idle会话占用内存过高故障处理指南

本文档针对南大通用 GBase 8c 数据库在运行过程中&#xff0c;因连接池配置不合理、大量 idle 空闲会话导致内存占用过高、服务器内存耗尽的典型问题&#xff0c;提供完整的排查思路、定位方法与标准化处理步骤&#xff0c;分布式数据库和集中式数据库场景均适用。1. 检查当前机…...

B站缓存视频合并工具:零基础3步将碎片视频变完整MP4

B站缓存视频合并工具&#xff1a;零基础3步将碎片视频变完整MP4 【免费下载链接】BilibiliCacheVideoMerge &#x1f525;&#x1f525;Android上将bilibili缓存视频合并导出为mp4&#xff0c;支持安卓5.0 ~ 13&#xff0c;视频挂载弹幕播放(Android consolidates and exports …...

【2026】新大纲普通话考试真题题库50套(PDF电子版)

2026年国家普通话水平测试 依据《国家普通话水平测试大纲&#xff08;2024修订版&#xff09;》&#xff0c;新版考试标准自2024年1月1日起实施&#xff0c;2026年考试将全面执行新大纲要求。 核心测试内容调整 测试项目数量考察重点朗读短文50篇声调准确性、语流音变规范性…...

5个步骤扩展Cookiecutter项目模板功能:打造专属插件系统

5个步骤扩展Cookiecutter项目模板功能&#xff1a;打造专属插件系统 【免费下载链接】cookiecutter A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects. 项目地址: https://g…...

中兴光猫终极管理指南:zteOnu一键开启工厂模式与永久Telnet的完整教程

中兴光猫终极管理指南&#xff1a;zteOnu一键开启工厂模式与永久Telnet的完整教程 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 中兴光猫是许多家庭和企业网络的核心设备&#xff0c…...

2026年免费在线抠图工具有哪些?我用过10+款后的真实对比

最近有个朋友问我&#xff0c;说她做电商需要大量处理商品图片&#xff0c;问有没有不花钱又好用的在线抠图工具。我一下子给她推荐了一堆&#xff0c;她反而更迷茫了。确实&#xff0c;现在免费在线抠图工具太多了&#xff0c;但真正好用、不坑人的没几个。今天就来和大家分享…...

FITC标记的GUCY2C His标签蛋白在实体瘤免疫治疗研究中的应用

一、GUCY2C蛋白的结构特征与肿瘤表达分布鸟苷酸环化酶C是属于受体鸟苷酸环化酶家族的一种跨膜蛋白&#xff0c;被大肠杆菌热稳定肠毒素、鸟苷素和尿鸟苷素激活后&#xff0c;将胞外信息传送至胞内&#xff0c;参与调节肠道功能。GUCY2C表达于原发性结直肠癌细胞中&#xff0c;在…...

银河麒麟V10开机卡Logo?别慌,手把手教你进单用户模式修复(附详细命令)

银河麒麟V10开机卡Logo&#xff1f;三步进入单用户模式完成系统急救 当银河麒麟V10的启动画面定格在蓝色麒麟Logo&#xff0c;键盘鼠标全部失灵时&#xff0c;这种"假死"状态往往让使用者手足无措。作为国产操作系统的典型代表&#xff0c;银河麒麟V10虽然以稳定性著…...