説明
public class Sample : MonoBehaviour { private void Start() { // MacのUnity Editor上で動作された例 // /Users/user/ProjectName Debug.Log(Environment.CurrentDirectory); // /Users/user/ProjectName/Assets Debug.Log(Application.dataPath); // 実はEnvironment.CurrentDirectoryを変更させることができる Environment.CurrentDirectory = Path.GetFullPath(Application.dataPath); // /Users/user/ProjectName/Assets Debug.Log(Environment.CurrentDirectory); // UnityのPlayモードが終了する前にProjectフォルダ直下に戻さないと怒られるので注意 Environment.CurrentDirectory = Path.GetFullPath(Path.Combine(Application.dataPath, "..")); } }
Environment.CurrentDirectory
(作業ディレクトリ)にはsetter
もあるので動的に変更させることができます。
learn.microsoft.com
ただしサンプルコードにも書いた通り、終了前にプロジェクトルートに戻さないとUnityを強制的に終了させられるので注意してください。
// UnityEditor上だとPath.Combine(Application.dataPath, "..")でプロジェクト直下のパスを指す Environment.CurrentDirectory = Path.GetFullPath(Path.Combine(Application.dataPath, ".."));