Dosya boyutları
IOS => 13MB
ANDRIOD => 12MB
IOS için
1 => failed to decompress data for the assetbundle 'memory'
2 => Failed to decompress data for the AssetBundle
Android için
=> Unable to write data
Create Assets Bundle dosyası
using UnityEditor;
using System.IO;
using UnityEngine;
public class CreateAssetBundles
{
public static string assetBundleDirectory = "Assets/AssetBundles/";
[MenuItem("Assets/Build AssetBundles")]
static void BuildAllAssetBundles()
{
if (Directory.Exists(assetBundleDirectory)) Directory.Delete(assetBundleDirectory, true);
Directory.CreateDirectory(assetBundleDirectory);
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.iOS);
AppendPlatformToFileName("IOS");
Debug.Log("IOS bundle created...");
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.Android);
AppendPlatformToFileName("ANDROID");
Debug.Log("Android bundle created...");
RemoveSpacesInFileNames();
AssetDatabase.Refresh();
Debug.Log("Process complete!");
}
static void RemoveSpacesInFileNames()
{
foreach (string path in Directory.GetFiles(assetBundleDirectory))
{
string oldName = path;
string newName = path.Replace(' ', '-');
File.Move(oldName, newName);
}
}
static void AppendPlatformToFileName(string platform)
{
foreach (string path in Directory.GetFiles(assetBundleDirectory))
{
string[] files = path.Split('/');
string fileName = files[files.Length - 1];
if (fileName.Contains(".") || fileName.Contains("Bundle")) File.Delete(path);
else if (!fileName.Contains("-"))
{
FileInfo info = new FileInfo(path);
info.MoveTo(path + "-" + platform);
}
}
}
}Download ederken şu şekildeprivate IEnumerator DownloadAssetBundle()
{
GameObject go = null;
string url = QRCodeRender.getResult.Text + "-";
#if UNITY_ANDROID
url += "ANDROID";
#else
url += "IOS";
#endif
using (UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle(url))
{
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
{
yazi.text = "Error on the get request at : " + url + " " + www.error;
}
else
{
AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
if (bundle != null)
{
go = (GameObject)bundle.LoadAsset(bundle.GetAllAssetNames()[0]);
bundle.Unload(false);
yazi.text = "Başarılı";
objPrefab = go;
}
else yazi.text = "Geçerli bir öğe paketi değil";
yield return new WaitForEndOfFrame();
}
www.Dispose();
}
}