みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

UnityでOS毎の処理を書く

Unityは多くのプラットフォームで動作しますが、プラットフォーム毎に特別な処理をしたいことも多いはずです。例えば、PCでは十字キーで操作するが、iPhoneなどのiOSデバイスではタッチパネルで操作する、というように、プラットフォームで入力方法が違うためにそれぞれに対応したプログラムを作成しなければならない、などです。

Booでは、ifdef を使用します。

ifdefはコンパイル時に、指定したプラットフォームならばそのブロックをコンパイルする、という意味らしく、例えば以下のように記述すると、実行中のプラットフォームが何であるかが取得できます。

ちなみにifdef notを使用すれば、指定したプラットフォームでない時にコンパイルされるようです。

def Start ():
    ifdef UNITY_EDITOR:
        Debug.Log("Unity Editor")
    ifdef UNITY_IPHONE:
        Debug.Log("IPhone")
    ifdef UNITY_STANDALONE_OSX:
        Debug.Log("Stand Alone OSX")
    ifdef not UNITY_IPHONE:
        Debug.Log("not an iPhone")

http://docs.unity3d.com/Documentation/Manual/PlatformDependentCompilation.htmlより

2013.6.3 Update