参照できるデバイス固有のプロパティがいくつかあります: SystemInfo.deviceUniqueIdentifier, SystemInfo.deviceName, SystemInfo.deviceModel , SystemInfo.operatingSystem
海賊行為をする者は,ときにアプリケーションをハッキングして(AppStore DRMプロテクションを外して),フリーで再配布します。Unity により海賊版チェックがあり,AppStoreに提出した 後に アプリケーションが変更されたか判断できます。
もしアプリケーションが純正である(ハッキングされていない)かを Application.genuine プロパティでチェックできます。もしこのプロパティが false である場合,ユーザにアプリケーションがハッキングされたものであると通知するか,またはアプリケーションの一部の機能へのアクセスを無効化できます。
注意: Application.genuine プロパティを参照することはやや高価な処理であり,フレーム Update や処理時間がクリティカルであるコードでは使用すべきではありません。
バイブレーション をトリガーするには Handheld.Vibrate をコールします。物理的にバイブレーションできないデバイスでは,このコールが無視されることに留意して下さい。
モバイル OS にはビルトインのアクティブティ インジケータがあり,これは処理が遅い時に活用できます。使用サンプルについては Handheld.StartActivityIndicator のドキュメント を参照して下さい。
Unity iOS/Android により現在の画面の向きを制御できます。画面の向きが変更されたことの検知,または強制的に画面の向きを変えられることは,ユーザのデバイスの持ち方に応じて異なるゲーム動作を作成する場合に便利です。
Screen.orientationプロパティにアクセスすることでデバイスの向きを取得することが可能です。設定できる画面の向きは以下になります。
Portrait | 画面の下にホームボタンがある,普段使うような画面の向きのポートレートモード |
PortraitUpsideDown | ポートレートモードを逆さまにした画面の向き |
LandscapeLeft | ポートレートモードを右向きに回転させた横長の画面 |
LandscapeRight | ポートレートモードを左向きに回転させた横長の画面 |
画面の向きを制御するには Screen.orientation をこれのいずれかにセットするか, ScreenOrientation.AutoRotation にセットします。 Auto Rotation としたい場合は,さらにケースごとにいくつかの画面の向きを無効化できます。Screen.autorotateToPortrait, Screen.autorotateToPortraitUpsideDown, Screen.autorotateToLandscapeLeft ,Screen.autorotateToLandscapeRight
様々なデバイス世代により異なった機能がサポートされ,パフォーマンスも幅広く違いがあります。デバイス世代のクエリをかけて,遅いデバイスについてどの機能を無効するか判断すべきです。デバイス世代については iPhone.generation プロパティにより見つけられます。
異なったデバイス世代の情報,パフォーマンス,およびサポートされている機能については iPhone ハードウェア ガイド を参照下さい。
様々なデバイス世代により異なった機能がサポートされ,パフォーマンスも幅広く違いがあります。特定のデバイスやデバイス ファミリをターゲットとして,遅いデバイスについてどの機能を無効するか判断すべきです。参照できるデバイス固有のプロパティがいくつかあり,どのデバイスが使用されているか判断することも出来ます。
注意: Androidマーケットプレイスでは,OGLES2用のARMv7のみ最適化されたアプリケーションが古く遅い端末向けに提供されるべきではないので,いくつかの互換性でフィルタリングします。