unity 配置表 Excel讀取

 一般的,策劃給到的表格即配置表unity是無法直接使用的,需要我們程序做進一步處理,並讀取和序列化。做配置表大多是將表格數據讀取後序列化到一個bin文件即二進制文件裏,然後在unity運行時去解析,反序列化。當然,這是相對高端技術,爲了方便,和小型遊戲使用,個人採用另外一種方式,即將Excel表在外部讀取,然後json成序列化字符串存入一個文本txt。然後unity裏頭在運行前進行解析,存儲到asset文件。對於編輯器擴展或者 asset 文件不懂點的可以去充下電。

上面是大致的思路,接下來開始實現。

首先要有一個能度表格的工具,經過篩選,我決定使用spire類庫,相對易於使用,工具 這裏是一個研究spire時候做的一個excel工具,可以下載看看,因爲接下來的所有都是基於該工具。

接下來說一下這個工具。由於是unity外部,所以採用窗體程序,排版如下(簡陋,勿噴):

 運行後要先選擇文件,點擊後會彈窗選擇Excel文件,這裏支持的Excel爲07,10,13,如果你安裝了其他版本,你可以更改代碼,增加支持你安裝的版本。具體代碼就不在說了,因爲代碼很簡單(……-……)

選定後會有你選擇 的文件的路徑信息,這時點擊序列化,當左側出現成功,和文件存儲位置時,表明成功。(路徑默認爲你打開的文件的目錄下的serlizeFIle文件夾內,會自動創建)。打開文件夾,就可以發現有你表格序列化好的json格式的txt文本。

因爲每個表格都會有一個對應的類用於接收數據,爲了統一和安全起見,這個數據類我們做到unity外部,作爲dll導入unity使用,這時,該工具項目的內容大致如下:

其中data就是最終的類庫dll。當然有更改要右鍵重新生成一下的。class1裏邊就是對應表格的類。

接下來簡單介紹一下解析:

由於沒有找到如何動態去獲取某一個單元格的數據,只知道指定的方式,所以這裏將獲取列的數據列表,和行的數據列表,然後自己計算每個數據格子的座標如【“C3”】等,然後使用座標值來讀取,並存入對應的類,最後將所有的類的鏈表進行json序列化存入txt

就基本上工具就okl了,接下來講解反序列化,unity使用。

em ,首先我們需要創建一個asset文件去接受數據,這個不做介紹。但是我們會發現一個問題,就是在編輯器模式下asset文件類沒辦法調用,即使做成單例,所以要作爲資源文件去加載使用,然後解析,存儲,如下;

當然,這個方法要想在非運行狀態下執行,要使用編輯器擴展,這個也不做介紹,基本功,不會的去充下電***

然後,在你的主控制器裏頭定義一個public的變量來接受這個asset文件,這樣運行時就可以訪問了,到這,基本上功能就實現了。經過測試,完美運行,數據獲取成功!!

但是注意,打包的時候要把反序列化的哪個腳本和編輯器的東西都刪除,否則大不了包。

好了,歡迎各位提出指導性意見和建議!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章