ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - Application クラスについて

初めに

 Application クラスは、実行中のUnityアプリケーションに関する情報にアクセスし、制御するためのクラスです。本記事は、Application クラスの使い方の例をいくつか紹介いたします。

Application クラスとは

 Application クラスは、実行中のUnityアプリケーションに関する情報にアクセスし、制御するためのクラスです。

Application.platform

 ゲームが何のプラットフォームで実行されているかを返します(読み取り専用)

(例1)

//プラットフォームをコンソールに表示
Debug.Log(Application.platform);

(例2)

//プラットフォームがWindowsEditorかどうかを判定
if (Application.platform == RuntimePlatform.WindowsEditor)
{
     Debug.Log("Do something special here!");
}

 RuntimePlatform はアプリが実行されているプラットフォームを返します。
docs.unity3d.com

Application.systemLanguage

 ユーザーの OS で実行されている言語を返します。

(例)

if (Application.systemLanguage == SystemLanguage.French)
{
      Debug.Log("This system is in French. ");
}
else if (Application.systemLanguage == SystemLanguage.English)
{
      Debug.Log("This system is in English. ");
}
else if (Application.systemLanguage == SystemLanguage.Japanese)
{
      Debug.Log("日本語");
}

 SystemLanguage は言語を表します。

docs.unity3d.com

Application.Quit()

 アプリケーションを終了するための関数です。

Application.Quit();

 ただし、エディタ(開発環境)は終了してくれないことに注意です。エディタ上で終了させるには、UnityEditor.EditorApplication.isPlaying を false にする必要があります。

UnityEditor.EditorApplication.isPlaying = false;


(例)ボタンを押したら、アプリを終了する

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ApplicationSample : MonoBehaviour
{
    bool conditionToExitGame = false;

    // Update is called once per frame
    void Update()
    {
        // ゲームが終了するための条件を満たした場合、アプリケーションを終了する
        if (conditionToExitGame)
        {
            Debug.Log("アプリ終了");

            #if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
            #else
                Application.Quit();
            #endif
        }
    }

    public void onClick()
    {
        conditionToExitGame = true;
    }
}

dataPath 関連

 Application クラスには、次の4つのパスを取得できます。保存先を用途によって使い分ける必要があります。

パス 説明
dataPath バイス上のゲームデータフォルダーへのパス
persistentDataPath 永続データディレクトリへのパス
streamingAssetsPath StreamingAssets フォルダーへのパス
temporaryCachePath 一時的なデータ、キャッシュのディレクトリパス

qiita.com