1. 序列化需要继承?ScriptableObject。 具体代码如下:
[Serializable]
public struct ExcelItemData
{
public int ItemID;
public string ItemPath;
public int ItemColorID;
}
public class ExeclItemConfig : ScriptableObject
{
public ExcelItemData[] excelItemDatas;
}
结构体标注[Serializable] 可以让这个脚本实例化到本地时,能够在属性面板看到数值信息。
2. 使用Editor脚本实例化
[MenuItem("LoadExcelData/LoadItemData")]
static void LoadItemData()
{
ExcelItemInfo excelItemInfo = new ExcelItemInfo(GlobalData.Excel_ItemPath);
ExeclItemConfig execlItemConfig = ScriptableObject.CreateInstance<ExeclItemConfig>();
execlItemConfig.excelItemDatas = excelItemInfo.Data;
string SavePath = "Assets/Resources/" + ".asset";
Debug.Log(SavePath);
AssetDatabase.CreateAsset(execlItemConfig, SavePath);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
这里需要注意? ?保存路径需要从 AssetDatabase 保存资源 的路径需要从Assets开始
3. 读取方式?
ExeclItemConfig execlItemConfig = Resources.Load<ExeclItemConfig>(GlobalData.Excel_SaveLocalPath);
4. 在安卓使用时有碰到Resources.load读不到文件。 最后通过VS? 的Logcat收集到问题。。
得到为Null.? 最后发现
?
?这个位置有时候会为空,,如果这时候打包到安卓,,就会 遇到无法读取的情况。
那么为啥会这样哩。。??
莫名其妙的很。。
最后发现需要把继承ScriptableObject的这个类,,单独写在一个脚本文件中,,需要有这个脚本文件。生成之后就不会为null..? ?(ˉ▽ˉ;)...
|