デバイス特有のプロパティーには、アクセス可能なものがいくつかあります。詳細は以下のページを参照してください。SystemInfo.deviceUniqueIdentifier、SystemInfo.deviceName、SystemInfo.deviceModel、SystemInfo.operatingSystem
一般的にアプリケーションがハッキングされると、AppStore DRM プロテクションを外され、アプリケーションを無料で再配布されてしまいます。Unity での海賊版チェックを使用すると、AppStore に提出した後にハッキングによってアプリケーションが変更されたかを判断することができます。
アプリケーションがハッキングされていない純正なものであるかを Application.genuine で確認してみましょう。この機能は、もしこのプロパティーが false
を返した場合、アプリケーションがハッキングされたものであるとユーザーに通知したり、アプリケーションの一部の機能へのアクセスを無効にするために有用です。
注意 Application.genuineCheckAvailable は、Application.genuine
と一緒に使用して、アプリケーションに一貫性があるかの確認をする必要があります。Application.genuine プロパティーへのアクセスは、とても高負荷な操作であるためフレームの更新中やスピードが重視されるコードのときに使用すべきではありません。
バイブレーションを行うには Handheld.Vibrate を呼び出します。バイブレーションの機能がないデバイスでは、この呼び出しは無視されることに注意してください。
モバイル OS にはビルトインのアクティビティインジケーターがあり、処理に時間がかかる時に便利です。使用例は、スクリプトリファレンスの Handheld.StartActivityIndicator を参照してください。
iOS と Android デバイス両方で、自由にアプリケーションの画面の向きを制御することができます。ユーザーが持っているデバイスの向きに応じてゲーム画面も変更させたり、特定の向きに固定することは、ユーザーがデバイスを持つ向きに合わせてゲームの動作を調整するために有用です。
デバイスの向きは Screen.orientation を使って取得できます。向きには以下のようなものがあります。
向き | 動作 |
---|---|
Portrait | 縦向きのモードです。デバイスを直立させると、ホームボタンは下になります。 |
PortraitUpsideDown | 縦向きのモードです。ただし、デバイスを直立させると、ホームボタンが上になります。 |
LandscapeLeft | 縦向きのモードです。デバイスを直立させると、ホームボタンが右側になります。 |
LandscapeRight | 縦向きのモードです。デバイスを直立させると、ホームボタンが左側になります。 |
Screen.orientation に上の画面の向きの 1 つを設定するか、ScreenOrientation.AutoRotation を使って画面の向きを制御します。画面を自動で回転させる場合も、状況に応じていくつかの向きを無効にすることが可能です。
詳細は、スクリプトリファレンスの以下のページを参照してください。Screen.autorotateToPortrait、Screen.autorotateToPortraitUpsideDown、Screen.autorotateToLandscapeLeft、Screen.autorotateToLandscapeRight
デバイスの世代によって、サポートされている機能に違いがあり、さらにパフォーマンスも差があります。デバイスの世代は iOS.DeviceGeneration で判断することができます。
デバイスの世代ごとの情報、パフォーマンス、サポートされている機能については iOS ハードウェアガイド を参照してください。
一部のディスプレイでは、他のハードウェアが画面の特定の領域を占有しているために、その領域が隠されているか、機能していない場合があります。Screen.cutouts
を使用すると、各カットアウトを囲むバウンディングボックスのリストが返されます。
iOS デバイスはディスプレイのカットアウト情報を取得するためのネイティブの API を提供しません。そのため、カットアウトは使用可能な各 iOS デバイスの Xcode プロジェクトにハードコードされています。UnityView.mm ファイルにある Unity Xcode プロジェクトの ReportSafeAreaChangeForView
関数で、既存のデータを変更したり、デバイスを追加したりできます。
この関数の使用に関する詳細は、Screen.cutouts を参照してください。