この記事について
この記事では、UnityアプリからiOSの「設定」アプリ(自作アプリの設定画面)を開く方法を解説します。
通知や位置情報など、ユーザーに設定を変更してもらいたい場面で、スムーズに誘導できる導線をつくることができます。
この記事でわかること
- UnityからiOSの「設定」アプリを開く方法
- Objective-CとC#を連携してネイティブ機能を呼び出す手順
- 設定画面を開く実用的な活用シーン
自作アプリの設定画面を開く
iOSには、アプリごとに専用の「設定」画面が用意されています。
この画面を直接開くには、以下のObjective-Cコードを使います。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
※UnityではこのObjective-Cコードを[DllImport]経由で呼び出す必要があります。
Objective-Cでネイティブプラグインを呼ぶ
まずは、Objective-Cファイル(拡張子:mm)を作成します。(メモ帳でも可能)
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
extern "C" {
void OpenAppSettings() {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
}
}
}
作成できたら「Plugins/iOS」フォルダに保存。

Unity側のC#呼び出しコード
次に、Unity C#側で以下のスクリプトを作成します。
using System.Runtime.InteropServices;
using UnityEngine;
public class OpenSettings : MonoBehaviour
{
#if UNITY_IOS && !UNITY_EDITOR
[DllImport("__Internal")]
private static extern void OpenAppSettings();
#endif
public void OpenSettingsApp()
{
#if UNITY_IOS && !UNITY_EDITOR
OpenAppSettings();
#else
Debug.Log("iOSでのみ動作します。");
#endif
}
}
作成が終わると空のGameObjectを作成し、スクリプトをアタッチします。次にButtonを用意してOnClickに「OpenSettingsApp」を呼び出すように設定しておきます。

ここまでできたらiOS実機にインストールし、実行します。
注意点
- 実機でしか動作確認ができません(Editorでは呼び出し不可)
- iOS 8.0以降でのみ利用可能
- App Storeの審査で特定の用途に限り制限される可能性があります
こんな場面で活用
- 通知許可をユーザーが拒否したときに設定を開かせる
- 位置情報がオフの場合に設定を開かせる
- Bluetooth設定を促したい場合など
まとめ
Unityからでも、iOSのネイティブ機能を使えば「設定」アプリを開くことができます。ユーザー体験の向上のためにも、必要なタイミングで設定画面に誘導できるようにしましょう!