UnityCacheServerを使うといいよ!

かなり時間短縮にもなるし効率的だよ!

なんて話を聞いたことがある人もいるのではないでしょうか?

実は私もそうで、導入して利用するまでは「ふーん、そんな便利な機能があるんだー。でも今の作業より優先度は低いなぁ。とりあえず後回し!」ぐらいの感じで思っていました。

確かにタスク内容によっては、優先度が低いかもしれませんが、下記に該当するような方の場合はすぐにでも導入した方がよいと思います。

会社で複数人数でUnityのプロジェクト開発を行なっている

リソース更新(テクスチャやPrefab等)が頻繁に行われる

複数のプラットフォームで動作検証などをする為に、SwitchPlatformを行う

 

なぜなら、UnityCacheServerとはアセットデータをキャッシュして、データの読み込みなどを素早くしてくれる仕組みだからです!

え?どーゆー仕組みなの?って疑問に思われる方もいらっしゃると思うので、詳しく説明していこうと思います!

UnityCacheServerってなんなの?

一言で言うと、インポートしたアセットデータをサーバーに保存して、チーム内で再利用・共有することができるUnity公式のシステムです!

お!なんだか便利そう!って思いますよね?

そうなんです!かなり便利なのです!

でも実際に保存されるアセットデータってなんなの?って思いますよね?
結構ここをちゃんと書いている記事って少いんですよね。ただ、実は下記Unityの公式にしっかりと書かれています。
https://docs.unity3d.com/ja/current/Manual/CacheServer.html

Unity公式によるとCacheServerに保存される対象となるものは下記になります。

・アセットファイルそのもの
・インポート設定
・インポートされたアセットのバージョン
・現在のプラットフォーム

つまり、psdファイルやfbxやテクスチャなどの諸々のリソースになりますね。それとインポート設定も対象です。このアセットとなるものに変更がかかるとCacheServerに保存されます。

うん、わかったけど具体的にどんな時にうれしいんだっけ?って思う方もいると思うので、具体例をあげておきます。

例えばUnityの起動時や、SwitchPlatformって結構な時間アセットインポートの処理が走って、結構な待ち時間がかかったりしますよね?
ほんとこれは複数回行ったりするとほんとイラっとしちゃうレベルですよね。。。

これを解決してくれるのが、CacheServerということなのです。

CacheServerを設定していると、インポート作業は 1 台のコンピューターで行い、結果を複数コンピューターで共有できるのです!つまり、無駄なインポート処理が走らずUnityの起動やSwitchPlatformの時間が短縮されるということです!

導入方法

導入環境はMacで構築する事前提にしています。

サーバーへのインストール

・npmをインストールする

https://nodejs.org/en/download/
必要なインストーラーをDL後インストールしてください

・npmを使ってCacheServerをインストール

npm install unity-cache-server -g

ターミナルで上記コマンドを実行でインストール
Permmisionのエラーでインストールできない場合は下記コマンドで実行

sudo npm install unity-cache-server -g

 

起動設定

起動スクリプトの作成

起動はスクリプト化しておいた方があとあと便利なので、下記のような起動スクリプトを作成しておきます。(シェルのファイル名は任意でOK、【UserName】の箇所はご自身のユーザー名を利用ください。)

 

mkdir /Users/【UserName】/UnityCacheServer/

 

Start.Unity.CacheServer.sh

#!/bin/sh

export PATH=/usr/local/bin:$PATH
PORT=8126
/usr/local/bin/unity-cache-server --port ${PORT} --cache-path /Users/【UserName】/UnityCacheServer/ --log-level 5

権限も設定しておきます。

chmod 744 Start.Unity.CacheServer.sh

これでスクリプト作成完了です。ではスクリプトを配置したディレクトリに移動し、下記でスクリプトを実行しておきましょう!

(成功する場合は、何行かのログが出力されます。失敗した場合は1行ぐらいしか出力されない為、その場合はsudoを先頭につけて実行しましょう)

./Start.Unity.CacheServer.sh

クライアント

続いてはクライアント側(Unity上)で以下の設定箇所にサーバーのIPアドレスを設定します。

Mac:Unity → Preferences → Cache Server

Win:Edit → Preferences → Cache Server

 

実際の設定箇所は下記画像参照(IPアドレスはCacheSereverのIPアドレスです。人によって変わるので下記はあくまで例です。)

注意点としては、IPアドレスを入力後にEnterを押して「CheckConnection」を押下する必要があるということです。

Connection successfull と表示されればCacheServerへ接続できて、作業は完了になります。

 

まとめ

UnityCacheServerという便利な機能は実は簡単に導入することができます!

時間短縮に繋がるので是非とも導入をお勧めします!