More Related Content
Similar to AssetBundle (もどき) の作り方 (20)
More from Mori Tetsuya (20)
AssetBundle (もどき) の作り方
- 14. whoami
• 森 哲哉 と申します
• a.k.a: もんりぃ / T: @monry / F: monry84
• 明日31歳 / ♂ / O型 / 天 座 / 既婚
• 趣味は「お酒」と「合唱」です
- 15. whoami
• 大学を (自主的に) 卒業後、ベンチャーを転々
• Web のフロントエンド、サーバサイドが得意
• Unity 歴 2 年くらい
• インフラ (AWS) も、ちょいちょいやってます
• Cocos2d-JS も触ってます
- 30. AssetBundle って?
Editor Script を実行するだけ!
using UnityEngine;
using UnityEditor;
public class AssetBundleExporter {
[MenuItem("Custom/Export AssetBundle", false, 1)]
public static void Export() {
string exportPath = "path/to/export";
if (!System.IO.Directory.Exists(exportPath)) {
System.IO.Directory.CreateDirectory(exportPath);
}
var buildAssetBundleOptions = BuildAssetBundleOptions.IgnoreTypeTreeChanges;
BuildPipeline.BuildAssetBundles(
exportPath,
buildAssetBundleOptions,
EditorUserBuildSettings.activeBuildTarget
);
}
}
- 56. 作ってみた
• iOS/Android 実機だと DeflateStream が
使えない問題
• → DotNetZip 使いましょう。
• オプションとして無圧縮を選べるとオシャレ
• 現時点では複数 Asset を纏めるのは未対応
- 60. 作ってみた
• Load() メソッド的なモノに delegate 渡せるよ
うにするとか、コールバックメソッドに
SendMessage するとか、やり方は色々ある
• この辺は、会社毎・プロジェクト毎に柔軟に書
いちゃえば良いんじゃないかと
- 66. 作ってみた
• AudioClip の場合
• AudioClip.GetData() を使う
• length, frequency, channels あたりを
付加情報に持つ感じ
• 注意点としては AudioClip の LoadType が
Decompress on Load じゃないと
GetData() の結果が空になる
- 71. iOS 9 の ATS
• ATS (Application Transport Security) が
iOS 9 SDK でビルドすると有効になる
• 端的に言うと「セキュアじゃないサーバとは通
信させません!」という機能
• AssetBundle のダウンロードもご多分に漏れず
該当し得る
- 72. iOS 9 の ATS
• 開発者がやるべきコトは以下の通り
• AB 置き場のサーバを https 対応する
• その際 TLS 1.2 にしたり暗号化アルゴリズム
を堅めにしたりする必要あり
• AB のダウンロード URL を https にする
- 73. iOS 9 の ATS
• http → https の URL 自動置換が働くなんて も
あったけど、あれ、嘘です。
• iOS 9 SDK (Xcode 7) でビルドしない限り該当は
しないけど、早めに対応しとくのが吉。
• 置き場が CloudFront の場合、 暗号化アルゴリズムが
弱めな証明書使っているので、独自証明書にするか、
別の場所に置くかしないと NG。
• →年内には解消するそうです。