Unityでたくさんの画像Asset等含まれるプロジェクトがある。
プラットフォームを切り替えると圧縮し直しがかかってHold on…の時間がすごいかかる。困る。
そんな事情の対策のための機能CacheServerをローカルでいいので導入したい。
しかしマニュアルも書かれてることが若干古く、ググってもUnity5系時代の記事やUbuntuが絡んできたりって記事ばかりでなんもわからん。
シンプルに纏められてる情報が見つからなかったので、ミニマムな導入を忘備録。
ちなみに環境は
・Windows10
・Unity2018.2.18f1
なんか間違ったこと・無駄なフローやってたらゴメン
-
エディター側での設定
Preference>CacheServerのCacheServerModeをRemoteにする
IPAddress欄は localhost:8126
この段階ではCheckConnection押しても繋がりません。
Localにすればいいのかと思ったけどサーバーにつながらないってエラーが出て悩まされた。
解せぬ。
-
キャッシュサーバー のインストール
ドキュメントには「Unityの ダウンロード アーカイブ ページを開きます」…とあるけど最終的にGitHubに行き着く
ここのインストールの「npm install ~」ってコマンド使うのにNode.jsが要るらしいのでインストール。
終わったらコマンドプロンプト立ち上げて
npm install unity-cache-server -g
のコマンドをコピペして実行。このコマンドだけでインストール終わるみたいなんだけど、どこから落としてきてるんだろう…
-
キャッシュサーバーの起動
C:\Users\〇〇\AppData\Roaming\npm
にインストールされた【unity-cache-server.cmd】をダブルクリックでサーバー起動。
ここの4桁がAddress欄にセットしたポート番号
ここの辺もドキュメントに書かれてない。「オペレーティングシステムに合ったコマンドスクリプトを実行します」ってどうすんねんっていう。
Unityに戻ってPreference>CacheServerのCheckConnectionを押すとConnectionSuccessfulになるはず。
(たまに何故か外れるけど普通に機能してたりする。)
-
実際にやってみた
Assetフォルダが9GB、テクスチャ3000枚近いProjectでテスト
初回SwitchPlatformでキャッシュ作成
iOS>Android 1時間半
Android>iOS 2時間
iOS>Windows 30分
もう一度SwitchPlatform
Win>iOS 2分
iOS>Android 3分
Android>iOS 2分
切り替え時間にすごい差出た。やったぜ。
-
疑問とか
このキャッシュ、どこに保存されてるんだろう?
このように書いてみるとなんてことない作業なのだけど、色々調べ回る羽目になったのはキャッシュの場所を任意のディレクトリにしようとしたため。
CacheServerModeをローカルにしてCustomCacheLocation設定したら良いかな?
サーバー側でコマンドをなんやかんやして保存場所を決めるのかな?
とやっててドツボにはまりました。今の自分の知識ではおっつかない。
追々はNASにCacheServer立てれると良さげかも。
そのうちがんばる。