読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

プロジェクト内で使用していないアセットを削除するエディタ拡張を試作中

Unity

タイトルの通りです。

UnityのAssetStoreは凄いのですが、調子に乗って色々と入れるとビルド時間やコンパイル時間が凄い事になります。gitのコミット時間もプルの時間も超伸びます。

なので、ゲームの進行に必要のないファイルは全部消すアセットを試作してます。

機能

機能としてはシンプルで、ゲームに含まれるシーン及びResourcesからどうがんばっても参照されないアセット(オーディオ・テクスチャ・マテリアル・モデル・アニメーション・アニメーター・プレハブ・他)を削除します。いちおう削除前にunitypackageにバックアップする機能も付いてるので、あとで入れなおす事も出来ます。

ついでに、ゲームが使用していないコードも削除します。正確には、ゲームに含まれるシーンが参照していないコンポーネント及びクラス及びコンポーネントを参照しているエディタ拡張…が記述されているソースコードを見つけ出して削除します。

 

たぶん近いうちにAssetStore辺りに公開出来たらいいなあ

問題

現在発生している不思議な現象で、プロジェクトをクリーンナップ後にUnityエディタを再起動してSync Monodevelop Projectを実行しないとMonodevelopが異常と思えるほど重くなる現象を確認しています。

あとコード解析が若干不安な所があるので、むしろオミットした方が安定する疑惑もあったりします。テクスチャやオーディオ消すだけでかなりビルド時間は短縮されるので、ソレはソレで良いのですが、悩ましい。

AssetBundleからの参照はまだ考えてませんが、Unity 5の基本ルールに従って作ってるなら割と簡単に作れそう。

UIはもう少ししたら考えます。

unitypackageのアンインストール

 それの過程で思いついてやってみたのが、Unitypackageのアンインストールです。単純に指定のUnitypackageがインストールしたファイルを全部削除する訳ですが、用途としては微妙かと思ってましたが、不要なエディタ拡張やサンプルを一時的に展開しunitypackageに戻す…といったフロー割とアリなんじゃないかと思い直しました。