【Unity】アセットの保存先を変更する方法

アセットの保存先を変更する方法 ゲーム開発

私はアセットストアのヘビーユーザーなのですが、ストアから500個近いアセットをダウンロードしていたらいつの間にかCドライブが圧迫されて困ってしまいました。

それでUnity側で簡単にアセットの保存先を変更できるかな?と思ったら執筆時点ではそういう設定項目は見当たりません。そこで調べたらWindowsの「ジャンクション」という機能を使って保存先を変更することができることが分かったので、ここではそのやり方をメモしておきます。

Windowsの「ジャンクション」機能とは?

まずはじめにWindowsのジャンクション機能についてごく簡単に説明します。ジャンクションとはザックリいうと「プログラムが扱いやすいショートカット」のようなものです。

普通のショートカットはユーザーが使うためのもので、その実態は単にリンク先を示したファイルです。つまりプログラムからショートカットを参照すると「ショートカットファイル」があるだけでリンク先は参照できません。

ところがジャンクションは、プログラムから参照したときに「リンク先のフォルダ・ファイルそのもの」を参照しているようにすることができます。これがショートカットとジャンクションの大きな違いです。

ジャンクションでアセットの保存先を変更する方法

さて、今回はこのジャンクションを作ることで

  1. Unityはデフォルトのアセット保存先を参照しようとするので…
  2. デフォルトのアセット保存先をジャンクションにすり替えて、ジャンクション経由でUnityが任意の保存先を参照できるようにする

という経路を作ろうというわけです。ではそのやり方を見ていきましょう。

  1. 「Asset Store-5.x」フォルダを任意の場所に移動させる
  2. コマンドプロンプトでジャンクションを作成する

手順1:「Asset Store-5.x」フォルダを任意の場所に移動させる

まずはアセットのデフォルトの保存先である「Asset Store-5.x」フォルダを任意の場所に移動させます。このフォルダの場所は、

C:\Users\ユーザー名\AppData\Roaming\Unity

の中です。AppDataは隠しフォルダになっていると思うので、エクスプローラで表示されない場合はフォルダオプションから隠しフォルダを表示するように設定を行いましょう。

なお元の場所にフォルダがあるとジャンクションを作成できないので、コピーではなく移動させてください。

手順2:コマンドプロンプトでジャンクションを作成する

次にコマンドプロンプトを開いてコマンドを打ち込み、ジャンクションを作成します。コマンドプロンプトはスタートメニューの検索欄に「cmd」と打つと出てくるのでそこから起動できます。

ジャンクションの作成コマンドは次の通りです。

mklink /j "元のフォルダのパス(=Asset Store-5.xのパス)" "リンク先フォルダのパス(=新たに指定したい保存先のパス)"

成功すると、元々「Asset Store-5.x」フォルダがあった場所にショートカットと同じようなアイコンが表示されます。これでジャンクションを作成することができました。

以降、アセットをダウンロードすると新しい保存先に保存されるようになります。

おわりに

以上、簡単ではありますがアセットの保存場所を変更する方法をご紹介しました。

本来であればUnity側で設定項目を作っておいてもらえると助かるのですが、残念ながらそこまで手が回っていないようなので自力で何とかするしかないのが現状です。まあ、そこまで手間でもないのでサクッと作業してしまいましょう。

この記事がお役に立てば幸いです。