Beispiel #1
0
 /// <summary>
 ///  通用的以同步方式获取一个资源  封装了编辑器 和 ab 两种加载方法
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="packageName"></param>
 /// <param name="assetName"></param>
 /// <returns></returns>
 public T GetAsset <T>(string packageName, string assetName) where T : UnityEngine.Object
 {
     if (GameEnvironment.Instance.config.LoadAssetPathType == LoadAssetPathType.Editor)
     {
         return(EditorLoadAsset <T>(packageName, assetName));
     }
     else
     {
         AssetPackage ab     = LoadAssetBundle(packageName);
         T            result = ab?.LoadAsset <T>(assetName);
         ReleaseAssetBundle(ab?.name);
         return(result);
     }
 }
Beispiel #2
0
 public void LoadHotFixAssembly(string packageName, string dllName, Action <byte[], byte[]> callback)
 {
     //代码 在编辑器 里默认走streamingAssets 生成dll 运行即可
     if (GameEnvironment.Instance.config.LoadAssetPathType == LoadAssetPathType.Editor)
     {
         EditorLoadHotFixAssembly(packageName, dllName, callback);
     }
     else
     {
         AssetPackage ab   = LoadAssetBundle(packageName);
         TextAsset    text = ab?.LoadAsset <TextAsset>(dllName + ".dll");
         if (callback != null)
         {
             callback(text.bytes, null);
         }
         UnloadAssetBundle(ab, true);
     }
 }