unity項目中數據配置的簡單解決方案

unity項目中保存數據的簡單解決方案

一、 Unity 提供的ScriptableObject
它可以將數據存儲在資源文件中,可以直接在unity面板中進行配置,裏面可以存儲預製體、圖片、音效、材質等多種格式資源,當然也支持自定義的Class配置,當數據量不是很大或者只是配置一些固定常用的數據參數時,是很高效便捷的存儲實現方式。
(想詳細瞭解的話可以參考https://blog.csdn.net/candycat1992/article/details/52181814,介紹的很好)
舉例:

/// <summary>
/// 場景環境光設置
/// </summary>
[Serializable]  //備註:自定義類前必須有[Serializable]標識,否則配置無法識別。
public class SceneLightSettings	
{
    public int id;
    public string name;
    public GameObject scenePrefab;
    public Material skyboxMat;
    public Color ambientColor;
    public Color fogColor;
}
		
/// <summary>
/// 創建配置文件
/// </summary>
/// <typeparam name="T"></typeparam>
[CreateAssetMenu(fileName = "Config", menuName = "Tools/Config")]
//添加此標籤就能在資源窗口右鍵創建Config資源文件
public class GameConfig : ScriptableObject
{
	   /// <summary>
	   /// 旋轉參數	
	   /// </summary>
	   [Tooltip("旋轉參數")]    	//此標籤方便在編輯器內查看參數含義,編輯器內鼠標停留在參數名上即可
	   public float rotateParam = 100f;

	   /// <summary>
	   /// 場景列表
	   /// </summary>	
	  [Tooltip("場景列表")]
	   public List< SceneLightSettings > sceneList = new List< SceneLightSettings>();

	   /// <summary>
	   /// 背景音樂	
	   /// </summary>
	   [Tooltip("背景音樂")]	
	   public AudioClip bgAudioClip;
}

備註:資源窗口右鍵找到"Tools/Config",創建Config文件哦誒之即可。配置好的文件可放於Resources目錄下,方便調用。

GameConfig gameInfoConfig = Resources.Load<GameConfig>("Config");

二、 UnityAssetStore插件EasyExcel

當數據量較大,編輯器內配置繁瑣且易出錯時,EasyExcel可以更好的解決配置問題。傳統的配置Excel表格也是策劃最熟悉方便的方式。EasyExcel可以在unity中導入使用excel數據,對每一個文件內sheet自動轉換導出,使用前建議打開例子文件,熟悉表格配置規則、導出設置和代碼讀取使用規則,上手不難。(詳情可參考https://assetstore.unity.com/packages/tools/integration/easyexcel-99352?locale=zh-CN)
在這裏插入圖片描述
在這裏插入圖片描述
代碼舉例:

public class ConfigMgr
{
    private readonly EEDataManager _eeDataManager = new EEDataManager();
    public List<EasyExcelGenerated.name> nameList = new List<EasyExcelGenerated.name>();
    private ConfigMgr()
    {
        _eeDataManager.Load();
        nameList = _eeDataManager.GetList<EasyExcelGenerated.name>();
    }
}

以上兩種簡單的數據存儲方式基本上滿足項目需求了。

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