---
# System prepended metadata

title: 2022/11/09專題報告主要除錯項目
tags: [專題會議]

---

# 2022/11/09專題報告主要除錯項目
###### tags: `專題會議`

[TOC]

# 主要完成/更改事項
## 天氣系統測試

### 原天空樣子
![](https://i.imgur.com/AgnAU86.png)
問題點
* 雲及天空不真實
* 光源不一致，亦導致真實性大幅降低

### 新增天氣系統與後處理的樣子(可能效果還會再調)
![](https://i.imgur.com/d27YIFp.jpg)

* 目前有的疑慮
    * 如果美術的真實度要在上升，那要換模組的Material(學習物理色彩學)才能辦到，但有點超出學程式的能力範圍了
![](https://i.imgur.com/iOJjOHd.png)
    * 真實度在上升可能會有增加3D暈機率的疑慮，這點要再跟老師確認

## 語音系統測試
* NuGet的使用
![](https://i.imgur.com/WGOJNHe.png)
* 完成
    * 利用Google cloud服務來製作相關功能，並成功與Unity串接測試
    * 影片有需要再補
* 下階段
    * 與Yarn spinner接在一起


## 程式資料整理
### 場景
#### 原貌
![](https://i.imgur.com/EpK0iAL.png)
![](https://i.imgur.com/aomJc0f.png)
![](https://i.imgur.com/2ZBAB9W.png)
* 問題點
    * 內容與分類混亂
    * 名稱不夠清楚
    * 重複物件在場景，會讓電腦的記憶體承載過大。

#### 修改後
![](https://i.imgur.com/jfAvzfE.png)

### 資料夾分類
#### 原貌
![](https://i.imgur.com/JNV0SAc.png)
![](https://i.imgur.com/UMU6bPz.png)
問題點
* 分類混亂
* 沒用到的資料未刪除，會佔用儲存空間
* 中文名稱易引發Bug

#### 修改後
![](https://i.imgur.com/CTb73no.png)

## 程式碼重構
* 不是重新寫一個程式。
* 是將程式碼整理，刪除不必要程式，或整理出架構。這樣有利於後續功能新增。
* 打個比方，一間很混亂的教室。我們先整理出這教室有需要用到的桌子椅子黑板等，將其他不需要或多餘的部分丟掉。此外，將課桌椅重新規劃、排列整齊。之後如果有需要增加其他東西，比如書櫃或電腦等，就能一目了然。
### 物件呼叫方式
這邊只舉其中一個例子，其他30幾個重複的就不一一舉例
![](https://i.imgur.com/5FiIrqC.png)

以上的程式有以下幾個問題
* 沒有刪除不需要程式碼
    * 灰色的程式碼為未使用的部分，應刪除。
    * Update未使用，應刪除。
* 取名模糊不清or不符C#命名規則
    * 物件名稱Wow，無法看出這是什麼。
* 物件全都留在場景裡，記憶體會過滿
    * 上面的程式碼會執行物件顯示消失，但不會真的從電腦上消失，只是使用者看不到而已。
* 以上程式重複了至少有30多個
    * 每個物件都有寫顯示消失，沒有使用繼承。

#### 處理方式
1. 用OOP和Design pattern的方式重構程式碼
2. 用ScriptableObject製作儲存資料
3. 用Unity的Resource讀取部分場景3D資料
4. 用Object Pool技術來保留資料、但能維持在只有一個物件，必要時消除不在被需要的物件
5. 用Yarn Spinner的Commands功能來做相關物件的呼叫與消除

### 對話製作方式
#### 對話文字與UI製作的部分
![](https://i.imgur.com/a2o8noh.png)
* 問題點
    * 沒重複利用UI
        * 比如原程式碼的對話框，是每個場景附近放置一個，總共有20, 30個。這樣會佔滿記憶體。
    * 一些應該永久顯示的UI(Ex:糖果的資料)不會一直顯示
    * 選項要點的才能選擇
* 但是以上這些，因為這次專案變動，這些UI都不能使用，所以基本上這部分程式要重新撰寫。
#### 更改後的版本
![文本示例](https://i.imgur.com/BaQZ9na.png)

[UI顯示影片範例](https://youtu.be/goJ7qHf2xFw)

處理方式
* 用Yarn spinner的文本讀取文字
* 用Yarn spinner的UI處理去做程式上的更動，UI顯示為Debugger功能
* 之後Yarn spinner會被改成靠讀取對話內容來選擇選項

### 語音的處理方式
#### 原處理方式
![](https://i.imgur.com/BD0qwBl.png)
* 錄音檔，而非用程式內建的
* 這些無法說出小孩等需要人工設定的資料
* 無法新增、選擇語音

#### 解法
* 用Google Cloud的Speech to text 跟 Text to Speech服務來處理語音方面的技術問題
* 用Yarn spinner+自己改動的程式處理文本上的語音資料

## 其他雜項
* 其餘3D模型優化的部分
    * 使用可愛的角色
    * 物件材質更動

![](https://i.imgur.com/i7XtckD.png)
![](https://i.imgur.com/62dxw94.png)
![](https://i.imgur.com/CPxmkq7.png)
![](https://i.imgur.com/t4pfSX3.png)
![](https://i.imgur.com/VWcWlM5.png)
![](https://i.imgur.com/OFk06ul.png)
![](https://i.imgur.com/76VNmlO.png)
![](https://i.imgur.com/l7dV631.png)


# 待辦事項
* 音樂/音效提示的增加
* 用Asset Hunter Pro處理多餘的資料
* 原有程式bug修復
* Prototype製作完畢後會開始用Github來做版控的動作

# 系上建議
* 詳細列點。
    * 比如要說明做了些什麼，不要只有寫解bug。
    * 也不要只有列幾項，有做的就全部都寫出來。
* 內容要準確。
    * 「google無法辨識中文」改成「特殊文字google會辨識錯誤」。