【Unity】あれ? Assetが消える…? 過去バージョンでの怪奇現象

【Unity】あれ? Assetが消える…? 過去バージョンでの怪奇現象

まずはこちらをご覧いただこう。

怪奇現象が起こった
怪奇現象が起こった

 

……おわかりいただけただろうか。

UnityでAsset整理のため、『Vanishment』という名前のフォルダを作成したのだが、別のウィンドウを開いてからUnityに戻るとフォルダが消えるのだ。

なお、Finderから見れば作成したフォルダが存在していることを付け加えておく。

Finderでは存在している
Finderでは存在している

 

なぜ怪奇現象が起こるのだろうか。酷使しすぎたUnityの怨念がそうさせているのかもしれない……。

……。

……とまぁホラー風味で始まりましたが、Unityで作成したファイルがUnityから見えなくなる怪奇現象に遭遇したのでその解決策をメモ。

理由は後述しますが、同じ状況になる人はそう多くはないかも。だけどもしこのケースに行き当たった人のために詳細を残します。

 

環境

macOS 10.13 High Sierra(重要)

Unity 5.5.0f3

事の発端

私はExplorersLab名義でAsset開発もしている(宣伝)のですが、Assetをリリースする時にバージョンを気にする必要があったんです。

というのは、AssetStoreでリリースしたAssetの対応バージョンは、提出するのに使ったUnityのバージョン以降になってしまうので、それより古いバージョンのUnityを使っている人がダウンロードできないからなんです。

せっかくAssetを作ったんですもの、多くの人に使ってもらいたいのが正直なところ。

という訳で、Macを使ってアセット開発をしようと古いバージョンのUnityをダウンロードしてインストールしたんです。

インストール自体は問題なく終わったのですが、新規プロジェクトを作って、Projectウィンドウでもフォルダ分けを行い、さぁいくつかファイルをインポートしよう! となった時にフォルダが消えていたのでした。そのままファイルをインポートしてみても、そのファイルも消えてしまうしで、かなり困惑。

幸いUnity2017.2なら作業はできそうだったので、そちらでAsset開発を進めたものの、やっぱり古いバージョンで出したいなーと思い調査してみることに。

似たような事例があった

「Unity 過去バージョン 動かない」とか「Unity old version import」とか、風評被害も甚だしいキーワードで検索していたところ、Unityのフォーラムが引っかかりました。

トピックの発端は異なるものの、フォルダが消えるGIFを上げてる人がいたのでそこから調べてみることに。

「Unity ファイル 見えない」とかそんなキーワードで調べてみたところ、Unityのヘルプデスクに行き着きました。

ドンピシャだこれ!!

内容を見れば、macOS 10.13 High SierraでProjectウィンドウのファイルが見えない事象が載っていました。

対策は以下の2つ。

  1. macOS 10.13 High Sierra用のパッチが適用されたバージョンのUnityを使う
  2. UnityプロジェクトをHFS+のドライブに置く

私の場合はUnityのバージョンを変えても支障はなかったので、対応しているバージョンを使うことに。

High Sierra用パッチのあるバージョン

正確な情報はUnityヘルプデスクを参照してもらうとして、ざっくり引用すると以下のバージョン以降であれば大丈夫みたい。

上記およびこれ以降のバージョンには、現象への対策が含まれています。

これ以降のバージョンを使えばHigh Sierraでも動くとのこと。

私がこの現象に遭遇したバージョンはUnity 5.5.0f3だったので、パッチ対応がされていないバージョンだったんですね。

古いバージョンのUnityを新しく使い始めようとする人で、かつMacを使っている人、なんてのはそんなに数が多くないでしょうから、結構レアケースを引いていたみたい。

新規にUnityを使うなら現行バージョンを入れるので問題は起こらないですもんね。

対応しているバージョンのUnityを使って、無事Assetを開発することができました。怪奇現象はもうなくなったのです。

 

High Sierraで何が変わったのか

何が原因だったのかなーと考えてみると、直接の原因はMacをHigh Sierraにアップグレードしたことでした。

そこでHigh Sierraで何が変わったのか調べてみると、デフォルトのファイルシステムがAPFS(Apple File System)に変わっていたようです。

macOS 10.12 SierraまではMacOS拡張(HFS+)だったけど、10.13になったらファイルシステムが変わってしまったのね。

そりゃアプリ(Unity)側から読み込めないわ。

macOSがSSDにインストールされていたらアップグレード時に自動的に変換してあげるよーとまで書いてあるので、本体のストレージがSSDのマシンを使っていたら変更不可避。

High Sierraがリリースされてから、いろんなところで悲鳴が聞こえていたのはこのせいだったんですね。

ファイルシステム自体は暗号化の観点から見ても改善されているから良いっちゃ良いんですけど、移行の時期は何かと問題が出てきます。

HFS+にプロジェクトファイルを置く場合

もう一方の対応策である、HFS+にプロジェクトファイルを置くのはちょっとめんどい感じ。

流石にOSが入っている本体のディスクのファイルシステムを変えるのは影響でかすぎなので、外部ストレージを繋いで、HFS+でフォーマット。もしくはパーティション切ってHFS+でフォーマット、かな。

そのディスクにUnityプロジェクトを移してUnityで開くと、Projectウィンドウからもファイルが見えるみたい。

古いバージョンのUnityでアプリをリリースしていて、迂闊にUnityをアップデートできない場合にはこの方法がいいかも。

結論

古いバージョンのUnityをmacOS 10.13 High Sierraで使う場合は、対応バージョンを確認しよう。

現行バージョンを使っていれば問題なしです。

今でこそこうして落ち着いて記事にしてますが、この問題に行き合った時は「は? 何これ? え、まじで?」と狼狽しまくりでした。

アプリ公開までの攻略チャートを作りました!

CTA-IMAGE

「スマホ向けのアプリを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験から手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


アプリをリリースする観点から書いているので各アプリストア向けの作業が入っていますが、企画、設計、開発、テスト部分については他のプラットフォームでも使える知識が満載です。


無料で入手できるのでぜひお早めにゲットして、開発をブーストさせてください!