iOS デバイスの大半の機能は Input や Handheld クラスを介して公開されています。クロスプラットフォームプロジェクトでは UNITY_IPHONE は iOS 独自の C# コードを条件的にコンパイルするために定義されます。
アクセス可能なデバイス固有のプロパティが多数あります。以下について詳しくは、各スクリプトリファレンスページを参照してください。
一般的にアプリケーションがハッキングされると、AppStore DRM プロテクションを外され、アプリケーションを無料で再配布されてしまいます。Unity での海賊版チェックを使用すると、AppStore に提出した後にハッキングによってアプリケーションが変更されたかを判断することができます。
アプリケーションが本物である (ハッキングされていない) かどうかは、Application.authentic](../ScriptReference/Application-genuine.html) プロパティで確認できます。このプロパティが false
を返す場合、ハッキングされたアプリケーションを使用していることをユーザーに警告したり、特定の機能を無効にしたりすることができます。
ノート: Application.genuineCheckAvailable と Application.genuine
を併用して、アプリケーションの整合性を検証してください。Application.genuine プロパティへのアクセスはリソースを大量に消費するため、フレームの更新やその他のスピードが重視されるコード中には実行すべきではありません。
バイブレーションを行うには Handheld.Vibrate を呼び出します。バイブレーションの機能がないデバイスでは、この呼び出しは無視されることに注意してください。
モバイル OS にはビルトインのアクティビティインジケーターがあり、処理に時間がかかる時に表示すると便利です。使用例については Handheld.StartActivityIndicator docs を参照してください。
iOS と Android デバイス両方で、自由にアプリケーションの画面の向きを制御することができます。ユーザーが持っているデバイスの向きの変更を検出したり、特定の向きに固定することによって、ユーザーがデバイスを持つ向きに合わせてゲームの動作を調整することができます。
デバイスの向きは Screen.orientation プロパティを使って取得できます。以下のような向きがあります。
向き | 動作 |
---|---|
Portrait | 縦向きのモードです。デバイスを直立させると、ホームボタンは下になります。 |
PortraitUpsideDown | 縦向きのモードです。ただし、デバイスを直立させると、ホームボタンが上になります。 |
LandscapeLeft | 縦向きのモードです。デバイスを直立させると、ホームボタンが右側になります。 |
LandscapeRight | 縦向きのモードです。デバイスを直立させると、ホームボタンが左側になります。 |
Screen.orientation を上記のいずれかの向きに設定するか、ScreenOrientation.AutoRotation を使って画面の向きを制御します。自動回転が有効な場合でも、ケースに応じていくつかの向きを無効にすることができます。
詳しくは、以下の API ドキュメントを参照してください。
デバイスの世代によって、サポートされている機能に違いがあり、さらにパフォーマンスも差があります。デバイスの世代は iOS.DeviceGeneration で判断することができます。
一部のディスプレイでは、他のハードウェアが画面の特定の領域を占有しているために、その領域が隠されているか、機能していない場合があります。Screen.cutouts を使用すると、各カットアウトを囲むバウンディングボックスのリストが返されます。
iOS デバイスはディスプレイのカットアウト情報を取得するためのネイティブの API を提供しません。そのため、カットアウトは使用可能な各 iOS デバイスの Xcode プロジェクトにハードコードされています。UnityView.mm
ファイルにある Unity Xcode プロジェクトの ReportSafeAreaChangeForView
関数で、既存のデータを変更したり、デバイスを追加したりできます。
ReplayKit を使用して、ゲームのオーディオと動画を記録し、デバイスのマイクとカメラから取り込んだオーディオと動画の解説を加えることができます。