スクリプトからのファイルアクセスについてです。
■パスについて
Unityでは一時ファイルやAssets内のファイルなど様々なパスを扱うことができます。
以下のブログ様に一覧としてまとめられています。
unityでplatformによって取得できるパス - Qiita
絶対パスで参照することもできますが、現実的には相対パスを利用することになると思うのでそれについて説明します。
よく使うことになるのはApplication.dataPathです。(多分)
このApplication.dataPathは先のパス一覧にあるように、MacOS、Windowsでビルドした時やUnity開発時で微妙に変わっていたりします。
そこで自分がよく使っているパスを取得する関数が以下になります。
public string getPath() { string result = Application.dataPath; if (Application.platform == RuntimePlatform.OSXPlayer) { // MacOSでビルドした場合のパス(.appファイルの同階層のパス) result = result + "/../../"; } else if (Application.platform == RuntimePlatform.WindowsPlayer) { // Windowsでビルドした場合のパス(.exeファイルの同階層のパス) result = result + "/../"; } else { // それ以外の場合(Assets/Resourcesフォルダのパス) result = result + "/Resources/"; } return result; }
例として以下のようなフォルダ構成の場合、
hogeフォルダ |--image.png |--ビルドした.exeまたは.app