本文介紹方案:文本內容由外部Excel表格讀入Unity轉化爲ScriptableObject對象
01.ScriptableObject簡介
ScriptableObject是一個數據容器,可用於保存大量數據,而與類實例無關。ScriptableObject存儲的數據可通過引用直接使用不會在項目中產生數據副本。ScriptableObject不能附加到GameObject上,它是作爲項目的Assets存在的。所以ScriptableObject主要用於存儲那些不會改動的數據。
簡單使用方法
在腳本中創建類時使其繼承於ScriptableObject,由於是作爲項目資源存在,所以只能在項目的資源面板中去創建。
[CreateAssetMenu()]
public class TestClass : ScriptableObject
{
//具體內容
}
02.Excel導入
導入Excel表格需要用到一個工具:Unity-QuickSheet
下載地址:https://github.com/L1247/Unity-QuickSheet-ByEXCEL
將工具導入項目後,新建一個文件夾(名字隨意)用於存放文本資源,在這個文件夾下新建“Editor”、“Runtime”兩個文件夾(爲導入工具需要)。
然後,在此文件夾內右鍵打開面板創建一個工具文件
得到如下的一個文件
設置導入文件的信息
導入後進行文件生成的設置
注意:在Editor中有個腳本會報錯,需要手動改一下
文件生成完後需要導入產生最後的ScriptableObject文件
注意:如果excel文件中表格有空的,編輯器會報錯,但可以不用管。
最後得到的ScriptableObject文件可在面板中查看
如此就將Excel文件轉換爲項目中使用的ScriptableObject文件