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

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

デバイスプロパティ

デバイス特有のプロパティには、アクセス可能なものがいくつかあります。詳細は以下のページを参照してください。SystemInfo.deviceUniqueIdentifierSystemInfo.deviceNameSystemInfo.deviceModelSystemInfo.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.autorotateToPortraitScreen.autorotateToPortraitUpsideDownScreen.autorotateToLandscapeLeftScreen.autorotateToLandscapeRight

デバイス世代の判断

デバイスの世代によって、サポートされている機能に違いがあり、さらにパフォーマンスも差があります。デバイスの世代は iOS.DeviceGeneration で判断することができます。

デバイスの世代ごとの情報、パフォーマンス、サポートされている機能については iOS ハードウェアガイド を参照してください。

ディスプレイカットアウト

一部のディスプレイでは、他のハードウェアが画面の特定の領域を占有しているために、その領域が隠されているか、機能していない場合があります。Screen.cutouts を使用すると、各カットアウトを囲むバウンディングボックスのリストが返されます。

iOS デバイスはディスプレイのカットアウト情報を取得するためのネイティブの API を提供しません。そのため、カットアウトは使用可能な各 iOS デバイスの Xcode プロジェクトにハードコードされています。UnityView.mm ファイルにある Unity Xcode プロジェクトの ReportSafeAreaChangeForView 関数で、既存のデータを変更したり、デバイスを追加したりできます。

この関数の使用に関する詳細は、Screen.cutouts を参照してください。

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