Upload
tetsuya-mori
View
443
Download
6
Embed Size (px)
Citation preview
Unity に於ける ビルド自動化のおはなし 【まとめ編】+α2015.01.23 (Fri) / Unity 勉強会 vol.28
株式会社キッズスター システムデベロプメントチーム リーダー
森 哲哉
あけおめ!
毎度おなじみ? もんりぃです!
今日のテーマ
と、いうわけで
ビルド のおはなしです (最終回)
と、思いきや…
今日は、"+α" の 部分がメインですw
おしながき
おしながき
• Android ビルド自動化のおはなし
• iOS ビルド自動化のおはなし
• 【+α】Editor Script を用いた設定管理
• 【+α】KidsStar に於けるリソース管理の紹介
自己紹介
$ whoami
• “森 哲哉” と申します。
• a.k.a: もんりぃ / T: @monry / F: monry84
• 30歳 / ♂ / O型 / 天秤座 / 既婚
• 趣味は「お酒」と「合唱」です。
$ whoami• 大学を (自主的に) 卒業後、ベンチャーを転々。
• Web のフロントエンド、サーバサイドが得意。
• Unity 歴 2 年弱くらい。
• AWS とキャッキャウフフするのも好きです。
• 最近は Kinect さんがお気に入り。
$ whoami
$ whoami
$ jobs• “株式会社キッズスター” って会社で働いてます。
• 未就学児~小学生のお子さまをお持ちのファミリーをターゲットにした、知育/教育に関わるアプリ・サービスを展開しております。
• 「IID 世田谷ものづくり学校」という、元中学校に入居しております。
$ jobs
$ jobs
$ jobs
$ jobs
$ ls -la apps/
なりきり!! ごっこランド
パズル&テイルズおかしのくにを つくるのじゃ!!
なりきり!! アイスクリーム 屋さんごっこ
なりきり!! ママごっこ
お弁当をつくろう!
おかしの家を つくろう!
ハンバーガー やさんごっこ
飛行機を 組み立てよう!
i18n i18n i18n
i18n
ゆかいな お花屋さん
App Sto
re / Goo
gle Play
カテゴリランキング1位
多数獲得!!!きかんしゃ トーマスと パズルで あそぼう!
前置き
環境• Operation System: OS X Yosemite
• Unity: 4.6.1p2 (Pro Only)
• Platform: iOS, Android
• Language: C#
• Other: Xcode, Android SDK, gradle
今日 喋るコト
• iOS, Android に於けるビルド自動化のまとめ
• PostProcessBuild な話
• 複数プロジェクトに跨がるコードの話
• 画像やら音声やらのリソース管理の話
今日 喋らないこと
• Native Plugin の話
• 各マーケットへの公開に関する話
• リソースの読み込み方に関する話
iOS
iOS
• BuildPipeline.BuildPlayer()
• Xcode Editor for Unity (forked by monry)
• xcodebuild
• xcrun
iOS
• Provisioning Profile 周りは1回ハマっとけw
• 複数アプリ展開してるなら、Wildcard な AdHoc 作っとけ。
iOS• テクスチャの圧縮は PVRTC がオヌヌメ
• アルファチャンネル分離して、Shader で 合成するようにしてあげれば RGB Compressed PVRTC 4bits とRGB Compressed PVRTC 2bits だけでコトが足りる
• imésta とか使って pvr コンテナを事前に生成しとく ってのもアリ
• PVR 荒れを起こしにくいよ!
Android
Android
• Maven のローカルリポジトリにunity-classes.jar を登録しとく。
• Keystore とか Proguard とかは気を付ける。
• 各種広告 SDK とかを突っ込む際に、最低1回はハマるんじゃないかな?w
Android• テクスチャの圧縮は ETC1 か DXT5 かな?
• 以前の勉強会で「ATC が~」とか言ったけど、あれ、嘘。
• GPU が Adreno じゃない場合とかに壊滅的。
• アルファチャンネル無しなら ETC1 で、 有りなら DXT5 が良いんじゃないかと。
両 OS
両 OS
• ビルド後のアレコレをちょっとでも楽に
• DeployGate なり TestFlight なりにデプロイ
• ChatWork なり Slack なりに通知
• Jenkins おじさんと密接な関係になろう!w
ちょっと休憩…。
+α 其の壱
Editor Script による 設定管理
設定管理
• コード共通化の際に直面する問題
• それが
• プロジェクト毎に異なる設定値
設定管理
• 例えば、Flurry のような解析 SDK の API Key
• 例えば、広告 SDK の API Key
• 例えば、レビュー依頼ダイアログの遷移先 URL
• 例えば、AssetBundle のダウンロード URL
設定管理• ポイントは
• ScriptableObject
• Editor Script を書く
• ".asset" ファイルを理解する
• 根性あるなら Editor GUI も頑張る
設定管理
• AssetDatabase.CreateAsset(Object, string)
• [SerializeField]
• EditorUtility.SetDirty(Object)
• Resources.Load(string)
設定管理
DEMO
+α 其の弐
KidsStar に於ける リソース管理の紹介
リソース管理
• Unity でアプリとかを作る時に困るコト
• それが
• リソース管理
リソース管理• 例えば、Texture
• 例えば、AudioClip
• 例えば、AssetBundle
• 例えば、外部 SDK
• 例えば、ローカライズテキスト
• 例えば、アイコンやスプラッシュ
リソース管理
• 免責
• これからお話するのは、あくまで弊社での運用事例の紹介です。
• 「この通りやったら完璧」とは言いませんw
リソース管理• Unity の特殊ディレクトリに対する理解
• Resources
• Streaming Assets
• Plugins
• これらのディレクトリ配下の Asset はビルド時にパッケージに含まれる
リソース管理
• Import Asset に対する理解
• 大量の画像とかあると死にたくなるw
• ".meta" ファイル重要
• CacheServer 無いと死ねる
リソース管理
• Unity による自動変換に対する理解
• 画像 → Texture
• 音声 → AudioClip
• オブジェクト → YAML (Force Text の場合)
リソース管理
DEMO
まとめ
まとめ
• 自動化による怠惰なエンジニアライフを!
• 全ては公式リファレンスに載ってる!
• プロジェクト管理のベストプラクティスを 探す旅は果てしなく続く!!!w
Thank you foryour attention !