Android
public class BaseClass : ScriptableObject { public string Name; public int Age; }
public class BuildBundle { [MenuItem("Private Menu/BuildScriptBundle")] static void Build() { BaseClass bClass = ScriptableObject.CreateInstance<BaseClass>(); bClass.Name = "LadyGaga"; bClass.Age = 18; AssetDatabase.CreateAsset(bClass, "Assets/BaseClass.asset"); Object obj = AssetDatabase.LoadAssetAtPath("Assets/BaseClass.asset", typeof(BaseClass)); BuildPipeline.BuildAssetBundle(obj, null, "Assets/BaseClass.assetbundle", BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, BuildTarget.Android); } }
using UnityEngine; using System.Collections; using System.IO; public class Load : MonoBehaviour { string name; int age; bool isClick; string streamingPath;void OnGUI() { if (GUI.Button(new Rect(0, 0, 100, 50), "Load")) { StartCoroutine(DowmBundle()); } if (GUI.Button(new Rect(0, 55, 100, 50), "Load")) { StartCoroutine(LoadBundle()); } } IEnumerator DowmBundle() { string url = Application.streamingAssetsPath + "/BaseClass.assetbundle"; WWW www = new WWW(url); yield return www; byte[] downBytes = www.bytes; System.IO.Directory.CreateDirectory("/sdcard/Android/data/ZJL/Write"); File.WriteAllBytes("/sdcard/Android/data/ZJL/Write/BaseClass.assetBundle", downBytes); } IEnumerator LoadBundle() { string url = "file://" + "/sdcard/Android/data/ZJL/Write/BaseClass.assetBundle"; WWW www = new WWW(url); yield return www; BaseClass bClass = www.assetBundle.mainAsset as BaseClass; name = bClass.Name; age = bClass.Age; Debug.Log(name); Debug.Log(age); isClick = true; } }