Skip to content

Instantly share code, notes, and snippets.

@tsubaki
Last active March 16, 2019 07:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tsubaki/b4874c34dc95954a6051a1d8bf551212 to your computer and use it in GitHub Desktop.
Save tsubaki/b4874c34dc95954a6051a1d8bf551212 to your computer and use it in GitHub Desktop.
AssetBundleを復号してロードする
using System.Collections;
using UnityEngine;
using System.IO;
using System.Text;
public class LoadAssetbundle : MonoBehaviour
{
AssetBundle bundle;
FileStream fileStream;
const string password = "password";
void OnEnable()
{
// 暗号化したAssetBundleを取得
fileStream = new FileStream($"{Application.streamingAssetsPath}/esprite", FileMode.Open);
var uniqueSalt = Encoding.UTF8.GetBytes("sprite"); // AssetBundle名でsoltを生成
// Streamで暗号化を解除しつつAssetBundleをロードする
var uncryptor = new SeekableAesStream(fileStream, password, uniqueSalt);
bundle = AssetBundle.LoadFromStream(uncryptor);
}
private IEnumerator Start()
{
// 普通のAssetBundleと同様にロード出来る
var request = bundle.LoadAssetAsync<Sprite>("01");
yield return request;
GetComponent<SpriteRenderer>().sprite = request.asset as Sprite;
}
private void OnDisable()
{
bundle.Unload(true);
fileStream.Close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment