2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Unity】【MacOS】Application.persistentDataPathのUnityエディタ上とBuildしたアプリ上の挙動の違い

Last updated at Posted at 2023-04-26

Unityエディタ上で実行した時と、Buildしたアプリ上で実行した時で
Application.persistentDataPathのパスが違ったので備忘録

Unityエディタでデータを保存したことがある場合だと、保存したデータが優先して読み込まれます。

環境
・MacOS BigSur 11.6.7
・Unity 2021.3.8

Application.persistentdatapath

Buildしたアプリケーションで実行する際、Unityエディタ上で実行した時に保存したデータが存在すれば、それを読み込む

/Users/{UserName}/Library/Application Support/{CompanyName}/{ProductName} を読み込む
つまり、開発者が編集したPCと同じPCでBuildしたアプリを実行するとデータが引き継がれる

Unityエディタ上で実行した時のデータがなければ、Unityエディタ上で実行した時とは別のパスを読み込む

/Users/{UserName}/Library/Application Support/{BundleIdentifier} を読み込む
つまり、開発者以外の人が、アプリケーションを実行するとこのパスにデータが作成される

余談

Unityの公式リファレンスによると、
「アプリケーションは、システム上で必要なデータを含む最も古いフォルダーを見つけて使用します。」
と書いてあるのに、違うじゃん!!という話。
古いデータではなく、正しくはエディタで実行したものを優先的に読み込む。
開発者的にはデバッグしたデータをそのままビルドした後も引き継げて便利だけど、ちょっと困った。

自分の場合はBundleIdentifierの設定をしていなかったために、原因不明のバグが発生していました。
共同制作している友達のPCで保存できるか試してたんですけど、以前に渡したBuildしたアプリが書き込んだセーブデータが
/Users/{UserName}/Library/Application Support/DefaultCompany/{ProductName}
に残っていたために、そちらのデータを読み込んでしまって一生ゲームが進行しない。という状態でした。
自分の環境だと、データを消去する際は
/Users/{UserName}/Library/Application Support/{CompanyName}/{ProductName} を消せばいいのですが、友人の場合だとそのパスにそもそもデータが存在しなかった。

ちなみに、CompanyName・ProductName, BundleIdentifierを設定している場合、していない場合だとパスが微妙に変わります。

Unityエディターで実行した際のパス

・CompanyName, ProductNameを設定している場合
 /Users/{UserName}/Library/Application Support/{CompanyName}/{ProductName}
・設定していない場合
 /Users/{UserName}/Library/Application Support/DefaultCompany/{ProductName}

Buildしたアプリ上でのパス

・BundleIdentifierを設定している場合
 /Users/{UserName}/Library/Application Support/{BundleIdentifier}
・設定していない場合
 /Users/{UserName}/Library/Application Support/com.DefaultCompany.2DProject
 (2DProjectの箇所は最初に選んだテンプレート名になると思われます)

CompanyName, ProductName, BundleIdentifier については以下で設定できます

File/Build Settings/Player ProjectSettingsをクリックして出てくる
ProjectSettings内にで設定する

CompanyNameとProductName

スクリーンショット 2023-04-26 20.28.30.png

BundleIdentifier

OtherSettings/MacAppStoreOptionsにある
スクリーンショット 2023-04-26 20.29.39.png

何か間違いなどあれば指摘お願いします。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?