金湖有哪里做网站的,做软件项目的网站,大学软件开发专业,新注册的公司在哪里可以查到实验2#xff1a;仿真系统功能实现 1.实验目的
#xff08;1#xff09;熟悉在Unity中设置仿真场景#xff1b;
#xff08;2#xff09;熟悉在Unity中C#语言的使用#xff1b;
#xff08;3#xff09;熟悉仿真功能的实现。
2.实验内容
新建一个仿真场景#x…实验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);}
}