クリアメモリ

プログラミングやガジェットレビュー、便利なアプリケーションなど雑多に記録するブログ

【Unity】AndroidとiPhoneで個別に処理を使い分ける方法が簡単だった!

f:id:clrmemory:20170717000914j:plain

Unityはマルチプラットフォーム対応なので、AndroidとiOS両方に対応するアプリを作成することができます。

 

ですが、その中で「Androidでだけこの処理をしたい」や「iPhoneでだけこの処理をしたい」という時があるので、今回はその方法を紹介します。

AndroidとiOSで処理を変更する主な例は「広告コードを端末ごとに変更する」というような場合です。

 

 

はじめに

 

Unityでは、基本的にAndroidとiPhoneで同じコードを書いていれば、それぞれビルドした時、自動的に端末で動作するようになっています。

 

ですが、広告コードなどの場合は同じコードを使ってしまうと端末別の記録が取れない、といった状態になってしまうので、ユーザーの端末ごとにコードを変更しましょう。

 

端末を判定する

 

今回は端末を判定する方法を2種類紹介します。

 

1つ目の方法

using UnityEngine;
using System.Collections;

public class AndroidoriOS : MonoBehaviour {

    void Start () {
        if (Application.platform == RuntimePlatform.Android) {
            //端末がAndroidだった場合の処理
        } else if (Application.platform == RuntimePlatform.IPhonePlayer) {
            //端末がiOSだった場合の処理
        } else {
            //その他の端末での処理
        }
    }
}

 

このようなコードを入力してください。

 

このコードを使うことで、AndroidとiPhoneなどの端末を判断することができます。

また、RuntimePlatform.XXXXの「X」にOSXや、Windowsなどに変更するとユーザーのPCがWindowsかMacかを判断することもできます。

 

 

2つ目の方法

 

続いて2つ目の方法です。

使うコードはこのようになります。

 

using UnityEngine;
using System.Collections;

public class AndroidoriOS : MonoBehaviour {

    void Start (){
        #if UNITY_ANDROID
        //端末がAndroidだった場合の処理
        #elif UNITY_IPHONE
        //端末がiPhoneだった場合の処理
        #elif UNITY_EDITOR
        //Unity上での処理
        #endif //終了
    }
}

 

こちらの方が簡単に使うことができますね。

 

こちらは処理の最後に#endifとつけないとエラーが発生してしまうので注意しましょう。

 

まとめ

 

Unityはマルチプラットフォームでとても便利なのですが、それ故に端末の処理が最も重要になってきます。

このような処理をしないと実機で試しても機能しなかったり、実際にリリースするまで確認できなかったりという事になってしまう恐れがあります。

 

また、今回2種類のコードを紹介しましたが、追加する処理をAndroidとiPhoneのみにしてしまうとUnityEditor上で動作しないので、UnityのGame画面でも確認したい時は必ず判定にUnityEditorを追加しましょう。

 

ではまた。

 

新着記事