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);}
}

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

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

相关文章

SpringBoot_websocket实战

SpringBoot_websocket实战 前言1.websocket入门1.1 websocket最小化配置1.1.1 后端配置1.1.2 前端配置 1.2 websocket使用sockjs1.2.1 后端配置1.2.2 前端配置 1.3 websocket使用stomp协议1.3.1 后端配置1.3.2 前端配置 2.websocket进阶2.1 websocket与stomp有什么区别2.2 webs…

思维模型 重叠效应

本系列文章 主要是 分享 思维模型 ,涉及各个领域,重在提升认知。相似内容易被混淆或遗忘。 1 重叠效应的应用 1.1 重叠效应在教育中的应用 1 通过避免重叠效应提升学习效率 为了避免重叠效应,通过对比、归纳等方法来帮助学生更好地理解和掌…

黑马React18: Redux

黑马React: Redux Date: November 19, 2023 Sum: Redux基础、Redux工具、调试、美团案例 Redux介绍 Redux 是React最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行 作用:通过集中管理的方式管…

VPS配置了swap没发挥作用怎么办

1 swap配置了但没用上 我的服务器内存是2G,装多一点东西就不够用,于是我给他分配了2G的swap,等了几小时,swap还是一点都没有使用 Linux中Swap(即:交换分区),类似于Windows的虚拟内存…

MongoDB的常用操作以及python连接MongoDB

一,MongoDB的启动 mongod --dbpath..\data\db mongodb注意同时开两个窗口,不要关! 二, MongoDB的简单使用 简单介绍一下mongoDB中一些操作 show dbs: 显示所有数据库 show databases: 显示所有数据库 use xxxx: 使用指定数据库/创建数据库&#xff08…

Linux 与大型机 z/OS

大型机 国际商业机器公司(International Business Machine Corporation),简称为 IBM,实际上是当今大型机的代名词。作为大型企业技术解决方案提供商,IBM 在其漫长的生命周期中生产了各种产品。 他们的前身是计算、制表…

时序预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于BiLSTM-AdaBoost双向长短期记忆网络结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现BiLSTM-Adaboost…

【精选】Ajax技术知识点合集

Ajax技术详解 Ajax简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建 交互式、快速动态应用的网页开发技术,无需重新加载整个网页的情况下,能够更新页面局 部数据的技术。通过在…

Scala如何写一个通用的游戏数据爬虫程序

以前想要获取一些网站数据的时候,都是通过人工手动复制粘贴,这样的效率及其低下。数据少无所谓,如果需要采集大量数据,手动就显得乏力了。半夜睡不着,爬起来写一段有关游戏商品数据的爬虫通用模板,希望能帮…

专业pdf编辑工具PDF Expert mac中文版特点介绍

PDF Expert mac是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 PDF Expert mac软件特点 PDF编辑:PDF Expert提供了丰富的PDF编辑功能,包括添加、删除、移动、旋转、缩放、裁剪等操作…

基于顺序表实现通讯录

1.功能实现 功能要求 1)至少能够存储100个人的通讯信息 2)能够保存用户信息:名字、性别、年龄、电话、地址等 3)增加联系人信息 4)删除指定联系人 5)查找制定联系人 6)修改指定联系人 7&#xf…

Hutool HttpRequest 首次请求正常 第二次被系统拦截

Hutool HttpRequest 首次请求正常 第二次被系统拦截 功能描述异常现象错误代码 异常排查问题跟踪问题总结处理方案最终修改后的代码 功能描述 需要请求第三方某个接口,获取接口中的数据。 异常现象 使用main 方法 通过Hutool 工具类发出请求,获取数据…

网络运维与网络安全 学习笔记2023.11.22

网络运维与网络安全 学习笔记 第二十三天 今日目标 VLAN间通信之交换机、VLAN间通信综合案例、浮动路由 VRRP原理与配置、VRRP链路跟踪、VRRP安全认证 VLAN间通信之交换机 单臂路由的缺陷 在内网的VLAN数量增多时,单臂链路容易成为网络瓶颈 三层交换机 具备…

react中模块化样式中:global的作用

在react中如果是通过import styles from ./index.less这种方式模块化引入样式的话,那么编译后的less文件里的样式名都会自动添加后缀。而:global的作用就是不让类名添加后缀

利用 Apache Ranger 管理 Amazon EMR 中的数据权限

需求背景简介 系统安全通常包括两个核心主题:身份验证和授权。一个解决“用户是谁”的问题,另一个解决“用户允许执行什么操作”的问题。在大数据领域,Apache Ranger 是最受欢迎的授权选择之一,它支持所有主流大数据组件&#xff…

微机原理_1

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 1,下列8086CPU标志寄存器的标志位中,不属于状态标志位的是() A. OF B. IF C. AF D. PF 8086微处理器可寻址访问的最大…

面试中vue-router的一些知识点

Vue Router Vue Router使用举例说明 vue-router 中 route和router的区别与联系 route和router的区别与联系 vue3 路由使用vue2 路由与vue3 路由的区别与联系 Vue Router Vue Router是Vue.js官方的路由管理器,用于实现单页面应用中的路由功能。它允许我们在Vue应用程…

万界星空科技SMT行业生产管理MES系统解决方案

一、SMT行业特点: SMT(Surface Mounted Technology)作为电子组装行业里首先的技术和工艺,选择合适的MES解决方案来保障SMT生产的成功至关重要。 电子行业涉及的范围非常广,包含了汽车、电脑、电视、手机等产品上&…

HCIA-Datacom跟官方路线学习

通过两次更换策略。最后找到最终的学习方案,华为ICT官网有对这个路线的学习,hcia基础有这个学习路线,hcip也有目录路线。所以,最后制定学习路线,是根据这个认证的路线进行学习了: 官网课程:课程…

scala 实现表达式解析

表达式解析 import org.junit.Testimport scala.collection.mutableclass ExprTestCase {private val orderSource "source_1"private val saleChannel "saleChannel"val datas new mutable.HashMap[String, String]();// p1, source1, sale1, source…