iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0
Software Development

從零開始了解Unity或Unreal Engine應用於VR軟體開發系列 第 16

Day 16. Unity: 來學Implement data persistence between sessions

  • 分享至 

  • xImage
  •  

:D
 
 
這個部分的概念,其實跟把訓練好的模型還有過程的Loss value、Metrics value儲存下來很像呢,只是我現在要學習的是在Unity這個軟體中,要怎麼實現它才比較好呢?

會學到:

  • 在啟動時載入資料
  • 適用的資料結構
  • 在結束時儲存資料

在開始之前,我對這些問題的回答是:

What do you need to implement, and where will you implement it ? Write down your thoughts now, to compare them with the approach we take.

因為是要儲存使用者最後所選的顏色,可以建立一個檔案,所以我猜是在MainManager.cs裡新增一個Start(),在開始時即從檔案載入資料,然後應該也可以新增一個End(),讓他在結束時寫入資料。
 
 

Where have you encountered similar functionality before, in Create with Code or other learning experiences? Even if you can’t access the code, think about examples of data persistence between sessions that you’re familiar with.

嘛,我也只有在訓練模型時,要在epoch結束時儲存模型資訊之類的東西做過而已。
 
 

Beyond Unity Learn, what resources could help you do this? Think about options within the Unity ecosystem and beyond it.

Unity ecosystem??? 不知道這個是什麼,跳過。

 
 
 

好的,開始上課做筆記

OK,這次要用來儲存的資料格式是JSON,就是副檔名是.json的那個。

using JsonUtility;

所以今天新學了JsonUtility的用法啦,他是可以把程式中的class instance,快速轉成對應的json檔案。

 
 
...
 
 
比我想像的複雜許多:

把要打包的資料寫成一個class,然後針對這個class寫save()跟load() method(這裡是用JsonUtility完成)。

然後不需要在MainManager新增Start(),在原本的Awake()底下load()就好。
 
 

此外,為了讓使用者能具體看到儲存的資料,所以在畫面上也要顯示之前儲存的顏色是什麼,以及目前切換的顏色是什麼。這裡就需要一起調整Menu場景中UIHandler.cs的程式,讓他在目前使用的顏色打勾。

這邊的話,就是調用MainManager下的save()跟load()。

 
 
Yes

參考:
https://learn.unity.com/tutorial/implement-data-persistence-between-sessions?uv=2020.3&missionId=5f751af7edbc2a0022cdbbb6#60b747c4edbc2a5532d133d2


上一篇
Day 15. 來了解Data Persistence in Unity
下一篇
Day 17. 來摸摸Unreal Engine吧!
系列文
從零開始了解Unity或Unreal Engine應用於VR軟體開發31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言