1、ScriptableObject 資料打包Asset請看博文:http://blog.csdn.net/u014076894/article/details/39935787
2、建立ScriptableObject資料腳本(注意初始化方法反射的簡單使用)
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
public class TestData : ScriptableObject {
// 注意變量名的命名對應關系(變量名命名規範可自行定義),後面反射會用到
[RangeAttribute(0,1)]
public float longth;
public AudioClip clip;
public List<int> datas;
public static float Longth;
public static AudioClip Clip;
public static List<int> Datas;
public static void Init() {
TestData data = Resources.Load<TestData>("TestAssets");
if(data != null) {
Type t = typeof(TestData);
foreach(var v in t.GetFields(BindingFlags.Public|BindingFlags.Static)) {
string fileName = char.ToLower(v.Name[0]) + v.Name.Substring(1);
var f = t.InvokeMember(fileName,BindingFlags.GetField,null,data,null);
t.InvokeMember(v.Name, BindingFlags.SetField, null, null, new System.Object[] { f});
}
}
}
}
這裡備注一下Unity版本5.3.4
3、簡單用例;
調用這個資料類型時,可直接調用靜态變量使用
TestData.Init();
Debug.Log(TestData.Longth);
如有雷同,純屬巧合!
如有不足,歡迎指正!