切換
舊版
前往
大廳
主題

【Unity自製遊戲:Recall程式集#1】 UI與其他小功能 程式分享

%%鼠 拒收病婿 | 2019-02-16 20:49:21 | 巴幣 16 | 人氣 639


先聲明這不是教學,只是分享(學習筆記成分居多),想藉此機會拋磚引玉,學習並改善自己的程式能力,歡迎提出建意與想法。

不免俗的,遊戲連結在此: 連結
想看下面介紹的程式運作的情形,歡迎載來看看。



1.讀取手機/電腦資料夾與音樂檔案,並動態列出清單作法:
可以看到手機的sdcard的位置寫法是:/sdcard

打開資料夾:
unity Audio clip支援的檔案格式有mp3,aif, wav , ogg
前面幾行是從FolderPath這個路徑底下抓出特定格式的檔案路徑

content是Unity UI的scroll view其中一個物件,其預設名稱是content

Btn_prefab是要產生的按鈕的prefab物件,在上面宣告public了。

此作法需要注意的是,content和Btn_prefab的Anchor(錨點)位置要在top

"我的最愛歌單"的作法:
先讀檔,之後產生按鈕的程式和上面的差不多。



"搜尋歌曲"的作法:
比較需要學習的是: 從list裡面找出所有包含搜尋字元的物件寫法
searchResult = FolderList.FindAll(s=>s.Contains(_searchText));



2.接下來看Btn_prefab的主要程式:
按下時就前往對應的資料夾或讀取音樂
ShowFolder_Window()的功能大概就是依照FolderPath重整並產生一排資料夾按鈕
(在創造按鈕的時候,我把按鈕的名字設程該對應的路徑)
注意要用while (!www.isDone) { } 等他讀完,不然讀到的音檔有可能壞掉。
好像有sync(?之類的同步讀取方法??,只是看了文獻我也不太會用,所以用簡單的。希望各位前輩能給點指導。

按鈕的構造非常簡單:


按下左邊的愛心按鈕的話,會執行:
GM是我的gameMamager,除了基本的方法外,裡面有很多static變數,可以想像是在存檔前的資料暫存箱,其中FavoritePath是用來記錄"我的最愛"的歌單路徑

注意:transform.name是這個按鈕的名字,在創建按鈕時就設定是該對應的路徑全名

再來看一下成果:
在editor上是是讀取我電腦的資料夾,所以會顯示出幾排被系統隱藏的資料夾,你也點不進不去。手機到沒這問題。

按下我的最愛就會刷新面板:




3. (2進位) SAVE AND LOAD
優點就是出來的檔案是2進位的,所以和以往Json存檔不同,不易由外部更改。
我是看Barckeys的教學才會的,這程式的模式幾乎是跟他學的。

就以上面的"我的最愛"為例好了:
副檔名亂取沒關係,只要save和load的檔案名稱是一樣的就好

注意:
我照著教學影片做有點ERROR,所以我有改一點,最明顯的是:
FileStream stream = new FileStream(path, FileMode.Open,
                          FileAccess.Read,
                          FileShare.Read);

其實我對FileStream不怎麼了解,一直找不到適當的主題開始學

還有很多資料要存,只是程式幾乎一樣,只要改類別就好
在舉1例:(SongClass是我自己的類別)





呼呼! 還有很多想筆記起來的。
但看了這文章有點長,所以我們下次再見XD

如果你們喜歡這系列的程式分享的話,歡迎告知 >//<
看能不能把我覺得重要的程式貼出來

覺得下次可能會分享的
  • 抓取線上的時間 (防時間作弊)
  • 產生和判斷任務
  • 進階邊譜那一頁的功能
  • 判斷多個手指的位置
  • 歡迎提問(?


順便在尾聲附上我這一兩天做的遊戲基本移動影片
(效果玩一玩覺得氣氛很喜歡)
WASD操作女的,上下左右操作男的 按下TAB鍵會切換攝影機追隨的人物



一起前進吧~
祝各位愉快
送禮物贊助創作者 !
0
留言

創作回應

Naght²
做遊戲感覺好難qq
尤其程式碼的部分Orz((打擊
2019-02-16 21:20:51
%%鼠 拒收病婿
主要是培養興趣吧XD
試著把程式碼當成小說來看
2019-02-16 22:04:03
追蹤 創作集

作者相關創作

更多創作