Version: 2021.1
言語: 日本語
iOS Game Controller への対応
iOS でのパフォーマンスの最適化

上級者向け iOS スクリプティング

デバイスプロパティ

アクセス可能なデバイス固有のプロパティが多数あります。以下について詳しくは、各スクリプトリファレンスページを参照してください。

海賊版チェック

一般的にアプリケーションがハッキングされると、AppStore DRM プロテクションを外され、アプリケーションを無料で再配布されてしまいます。Unity での海賊版チェックを使用すると、AppStore に提出した後にハッキングによってアプリケーションが変更されたかを判断することができます。

アプリケーションが本物である (ハッキングされていない) かどうかは、Application.authentic](../ScriptReference/Application-genuine.html) プロパティで確認できます。このプロパティが false を返す場合、ハッキングされたアプリケーションを使用していることをユーザーに警告したり、特定の機能を無効にしたりすることができます。

ノート: Application.genuineCheckAvailableApplication.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 を使用して、ゲームのオーディオと動画を記録し、デバイスのマイクとカメラから取り込んだオーディオと動画の解説を加えることができます。

iOS Game Controller への対応
iOS でのパフォーマンスの最適化