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.pswp.cn/news/161305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161305.shtml
英文地址,請注明出處:http://en.pswp.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…