zoukankan      html  css  js  c++  java
  • assetbundle和ScriptableObject的使用

     1 using System.Collections;
     2 using System;
     3 
     4 [Serializable]
     5 public class ExcelData : ScriptableObject {
     6 
     7     public string excelName;
     8     public string Data;
     9     public string ItemName;
    10 }
     1 using UnityEngine;
     2 using System.Collections;
     3 using UnityEditor;
     4 using System.Collections.Generic;
     5 
     6 
     7 public class BuildExcelEditor : Editor {
     8 
     9     [MenuItem("Build AssetsBundle/CreateAssets")]
    10     public static void CreateAssets() {
    11         ExcelData excelData = ScriptableObject.CreateInstance<ExcelData>();
    12         excelData.excelName = "CharacterConfig";
    13         excelData.ItemName = "superman";
    14         excelData.Data = "1";
    15         string path= "Assets/CharacterConfig.asset";
    16         AssetDatabase.CreateAsset(excelData , path);
    17         
    18         //AssetDatabase.DeleteAsset(path);
    19         AssetDatabase.Refresh();
    20 
    21     }
    22 
    23     [MenuItem("Build AssetsBundle/BuildExcel")]
    24     public static void BuildAssets()
    25     {
    26         string path = "Assets/CharacterConfig.asset";
    27         UnityEngine.Object o = AssetDatabase.LoadAssetAtPath(path, typeof(ExcelData));
    28         if (BuildPipeline.BuildAssetBundle(o, null, "Assets/joi.assetbundle"))
    29         {
    30             
    31 
    32             Debug.Log("打包成功!");
    33         }
    34         else
    35         {
    36             Debug.Log("打包失败");
    37         }
    38 
    39         AssetDatabase.Refresh();
    40 
    41         
    42     }
    43 }
     1 using UnityEngine;
     2 using System.Collections;
     3 using System;
     4 public class TestMono : MonoBehaviour {
     5   [SerializeField]
     6   TestSeriels MyData;
     7   public MyTeam TeamData;
     8   [Serializable]
     9   public class MyTeam {
    10       public string Name;
    11       public string HelloText;
    12   }
    13   IEnumerator LoadData() {
    14       string DataPath =  "file://"+Application.dataPath + "/joi.assetbundle";
    15       WWW dataLoad = new WWW(DataPath);
    16       yield return dataLoad;
    17       //byte[] decryptedBytes = dataLoad.bytes;
    18       //AssetBundle assetBundle = AssetBundle.LoadFromMemory(decryptedBytes);   //从内存中同步加载资源资源包
    19       //yield return assetBundle;
    20       //if (assetBundle != null)
    21       //{
    22 
    23       //}
    24       UnityEngine.Object[] objs = dataLoad.assetBundle.LoadAllAssets(typeof(ExcelData));
    25       foreach (UnityEngine.Object obj in objs)
    26       {
    27           Debug.LogError(obj.name);
    28 
    29       }
    30       //ExcelData excelData = dataLoad.assetBundle.mainAsset as ExcelData;
    31       //Debug.LogError( "excelData"+excelData.name);
    32      
    33       
    34   }
    35     // Use this for initialization
    36     void Start () {
    37         StartCoroutine("LoadData");
    38     }
    39     
    40     // Update is called once per frame
    41     void Update () {
    42     
    43     }
    44 }
    喜欢unity 和酷炫的效果。欢迎留言交流。
  • 相关阅读:
    数据库 mysql 语句
    document对象
    javascript
    css样式表及属性
    css格式布局
    html 标签
    html 标签
    第四章
    第三章
    第二章
  • 原文地址:https://www.cnblogs.com/smilejoi/p/7048886.html
Copyright © 2011-2022 走看看