(:3[kanのメモ帳]スマートフォン用の表示で見る(:3[kanのメモ帳]個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。2019』の講演の動画を見て勉強しつつ、ついでに記事にまとめちゃおうという感じのやつです。Systemを採用し、リリースまで持っていこうとする、そのてんやわんやな顛末です。Systemを時系列に追いながら、そのときの対応方法と運用方法、出た問題の解決方法を説明します。Systemを新規プロジェクトの採用したお話です。Assetsについての概要や使い方についての記事は以前書いたので、そこら辺の話は省いて、自分が気になった事、知らなかった事を抜粋していく感じにしました。Assets(System)は長いので、記事中ではAASと略しています。prefabでクラッシュおわりにアセット管理についてアプリを作る上で、ゲームシステム以外にも色々なシステムを実装する必要がありますが、その中でも重要なのがアセット管理で、課金システムと同じぐらい重要になってきます。Unityで作ったアプリ、特にソシャゲなどの運用型のものはAssetBundleを使うという選択肢しかありませんでしたが、AASという新たな選択肢が登場しました。新たな選択肢と言ってもAASの中身はAssetBundleです。中身は同じとは言え互換性はありません。代わりにカタログファイルという巨大なJsonファイルが存在し、実質これが本体です。現状AASに大きな修正が入るとUnity自体のバージョンアップ必要になるので、Unityのバージョンを上げないと新しいAASが使えないという状態です。アドレスはパスのまま使わない方が良いAASはアセット登録直後はパスがアドレスとして登録されますが、パスのまま使うとWindowsで引っかる可能性があるので、アドレスはパスのまま使わない方が得策です。ロードとリリースAASはLoadAssetAsync等のロード時に依存関係を全て解決してくれます。ロード時の戻り値であるAsyncOperationHandleはメモリ解放を行う時に便利です。AASはReleaseで参照カウントをデクリメントする事ができ、カウントが0になるとメモリが開放されます。メモリ解放されると画面からも消えるので注意。確実に参照カウントを0に(=メモリ解放)出来ます。Modeにすると良いようです。AAS用のプロファイラはFastModeでは細かな解析が出来ないので注意が必要です。AASの歴史ここからはAASの各バージョンがどんな感じだったのかという話です。調子が良い時に動くぐらいで、まだ使い物にならない状態。実機では起動時の初期化が上手くいかず、起動すら出来ない状態。リモートからのロードに問題あり実機で起動出来るようになったものの、リモートからのロードには問題がある状態。StreamingAssets周りの変更AASのアセットが直でStreamingAssetsに置かれるのではなく、アプリビルド時に転写されるようになった。Setting.jsonも同様なので、設定を変えてそのままアプリをビルドすると変更が反映されなくてハマるという注意点がある。名前空間がすべて変更された。翌日(現地時間朝の4時)に1.1.4が緊急リリースされ、実機でも動くように。脱プレビュープレビューが取れたものの、まだバグは多数存在。これ以降は新しい機能の追加ではなく、バグの修正が中心になっていく。ファイル名にハッシュなしが可能にバンドルファイル名にハッシュなしが選べるように。内蔵したいアセット(チュートリアル等)にハッシュなしは便利とのこと。注意点や不具合ここからはAASを使う上での注意点や不具合についてです。spriteAtlasの使用時の注意spriteAtlasを使う際、spriteAtlas内のアセットがローカルとリモートの双方に組み込まれていると依存関係が発生してしまいます。(最初から組み込んでおきたいものはspriteAtlasを分ける)エラーハンドリングはAAS1.1.9からエラーハンドリングは1.1.9からちゃんと出来るようになったので、それ以前のバージョンを使う場合には注意が必要です。サブアセットはUnity2019.3からマルチスプライトのようなサブアセットを扱う場合、Unity2019.3以降でないとエラーを吐いてしまうようです。シリアライズフィールドはUnity2019.3からアタッチする側される側の双方がAASに含まれていると、エラーが出るようです。これもUnity2019.3以降なら直っているらいしいです。prefab内でmissingが発生してる時に、AASをビルドするとUnityがクラッシュしてしまいます。おわりに講演の通り、だいぶ実用的になってきているため、新規プロジェクトで使う分には大丈夫そうです。AssetBundleの互換性がないため、既に運用しているものの乗り換えは難易度が高いようです。安定したものが使えるようになるという事もよく分かりました。はてなブログPro個人ゲーム開発者。ω、)_新作は札束風呂VRや神巫女。Policy広告はてなブログをはじめよう!kan_kikuchiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。