UnityUnityメモ

Unityでローカル通知を実装する方法【Android/iOS対応・初心者向け】

Unity

はじめに

こんにちは!今回は、Unityでローカル通知(Local Notification)を実装する方法を紹介していきます。

みなさん、スマホゲームで「ログインボーナスがもらえるよ!」「イベントが始まったよ!」ってお知らせが来たこと、ありませんか?あれが「通知」です!

通知には大きく分けて「プッシュ通知」と「ローカル通知」の2種類がありますが、今回扱うのはローカル通知。これはサーバーを使わずに、アプリ側だけでスケジュールできる通知なんです。

💡たとえばこんなときに便利!

  • 「3時間後にスタミナが回復するから、その時に通知を出したい」
  • 「明日の朝9時にイベントのお知らせを出したい」
  • 「毎日決まった時間にログインを促したい」

こんなことをしたいときに、ローカル通知はとっても便利!しかもAndroidとiOSの両方に対応しているので、一度覚えればどちらでも使えます。


この記事では、Unity初心者でもわかりやすいように、

  • ローカル通知のしくみ
  • Unity公式の通知パッケージの使い方
  • Android/iOSでの設定のコツ
  • 実際に通知を出すコードの書き方

などをステップバイステップで解説していきます!

では、さっそく通知の基本から一緒に学んでいきましょう〜!




1. ローカル通知とは?【基礎知識】

まずは、「ローカル通知ってそもそも何?」というところからお話ししていきましょう。

🔔ローカル通知とプッシュ通知の違い

スマホに届く通知には大きく分けて、以下の2種類があります:

種類特徴
プッシュ通知サーバーから送られる通知。インターネット必須。
ローカル通知アプリ内で設定して、指定時間に表示される通知。サーバー不要。

ローカル通知はオフラインでも動くのがポイント!
たとえば、プレイヤーがゲームを閉じたあとでも「1時間後にスタミナが全回復!」などのお知らせを出すことができます。

🧠Unityで実装できる通知の種類

Unityでは、公式の「Mobile Notifications」パッケージを使うことで、以下のような通知が作れます:

  • 即時通知:すぐに表示される通知
  • 時間指定通知:5分後、1時間後、明日9時などに表示される通知
  • 繰り返し通知:毎日〇時に通知を出すなど

「この通知、明日の朝にもう一回出してほしいな〜」なんてときにも使えます。

🎮ゲームに通知を取り入れるメリット

ゲームに通知を入れると、プレイヤーの「リピート率」が上がります。
というのも、通知があると「そうだ!このゲームまたやろう!」って思い出してくれるからです。

特にスマホゲームでは、

  • ログインボーナスのお知らせ
  • イベント開始の案内
  • スタミナ回復の通知

などに使われていて、プレイヤーとのつながりを保つためにとっても大切な仕組みなんです。




2. 必要な環境と準備

ローカル通知を実装する前に、Unityのプロジェクト設定や、iOS・Androidそれぞれの環境をちょっと整えておく必要があります。
この章では、通知機能をスムーズに使えるように、必要な準備をわかりやすく紹介していきます!


🛠 Unityのバージョンと推奨設定

まず最初に確認してほしいのがUnityのバージョンです。

推奨バージョン:Unity 2019.4 以降

理由は、通知用のパッケージ「Mobile Notifications」がこのバージョン以降で安定して使えるからです。

また、プロジェクト設定の以下も確認しておきましょう:

  • Scripting Backend:IL2CPP
  • API Compatibility Level:.NET Standard 2.1
  • Target platform:iOS / Android それぞれ確認

📱 Android向けの準備

Androidで通知を使うには、特別な準備はあまりいりませんが、以下の2つは必ず確認してください。

① パーミッションの設定(基本不要)

ローカル通知は、特別な許可がなくても表示されます。(※Android 13以降は通知の許可ダイアログが出るように)

② ターゲットAPIレベルの確認

Target API Levelは「33(Android 13)」以上にしておくのがおすすめです。

Unityメニュー → EditProject SettingsPlayerOther Settings → Target API Level


🍎 iOS向けの準備

iOSのほうが少しだけ設定が多いです。

① 通知の使用許可を設定(Xcode側)

通知を使うには、Xcodeで以下の設定が必要です。

  • Capabilitiesで「Push Notifications」をオンにする
  • Info.plistに通知の説明文を追加する
<key>NSUserNotificationUsageDescription</key>
<string>通知を使います。イベントのお知らせなどに利用します。</string>

② Notification登録のコードが必要

iOSでは、ユーザーから明示的に「通知を許可しますか?」と確認しないと通知が届きません。
この登録処理はスクリプトで実装しますが、それは次の章で詳しく解説します!




3. 通知機能を実装する方法(Unity公式/プラグイン編)

ここからは、いよいよ実際にUnityで通知を出す方法を紹介していきます!
今回は、Unity公式が提供している**「Mobile Notifications」パッケージ**を使った方法で解説します。無料で使えて、AndroidとiOS両方に対応しているのでとっても便利ですよ✨


【A】Mobile Notifications パッケージの導入方法

まずは通知用パッケージをインストールしていきましょう!

1. パッケージマネージャーを開く

メニューから
WindowPackage Manager をクリック。

2. Mobile Notifications を探す

左上の「+」ボタンを押して「Unity Registry」を選び、検索バーに「Mobile Notifications」と入力します。

3. インストール

「Mobile Notifications」が出てきたら、「Install」ボタンを押してインストールしましょう。


【B】通知を送るスクリプトの作成

パッケージが入ったら、次は通知を送るためのC#スクリプトを作成します。

スクリプトを作る手順

プロジェクトウィンドウを右クリック → CreateC# Script を選んで、
新しいスクリプトを作成し、LocalNotificationSender と名前を付けます。

基本の通知コード(即時通知の例)

using Unity.Notifications.Android;
using UnityEngine;

public class LocalNotificationSender : MonoBehaviour
{
void Start()
{
// 通知チャンネルの作成(Androidのみ必要)
var channel = new AndroidNotificationChannel()
{
Id = "default_channel",
Name = "Default Channel",
Importance = Importance.Default,
Description = "ゲームからのお知らせ通知",
};
AndroidNotificationCenter.RegisterNotificationChannel(channel);

// 通知の作成
var notification = new AndroidNotification();
notification.Title = "ログインボーナスのお知らせ";
notification.Text = "今ログインするとアイテムがもらえるよ!";
notification.FireTime = System.DateTime.Now.AddSeconds(10); // 10秒後

// 通知を送信
AndroidNotificationCenter.SendNotification(notification, "default_channel");
}
}

スクリプトをアタッチしよう

作成したスクリプト LocalNotificationSender を使いたいGameObjectにドラッグ&ドロップでアタッチします。


【C】動作確認の方法

Unityエディター上ではどうなる?

エディターでは実際に通知は表示されませんが、ログを見たりビルドして確認できます。

実機でのテスト

通知は実機(スマホ)で確認しましょう。

  • Androidの場合はビルドして通知が届くか確認
  • iOSの場合は、通知の許可が必要なので、アプリ起動時に「通知を許可しますか?」と表示されるか確認



4. iOSでの注意点と設定

Androidでは比較的スムーズに通知が使えますが、iOSではいくつかの追加設定が必要です。
ここでは、iOS向けにローカル通知を表示するための設定を、初心者の方にもわかりやすく解説していきます!


✅ 必須1:ユーザーに通知の許可を求める

iOSでは、通知を表示する前に、ユーザーから許可をもらう必要があります。

許可を取るには、アプリ起動時に以下のようなコードを追加します。

🔧 通知の許可をリクエストするコード(iOS向け)

#if UNITY_IOS
using Unity.Notifications.iOS;
#endif

void RequestAuthorization()
{
#if UNITY_IOS
iOSNotificationCenter.RequestAuthorization(
AuthorizationOption.Alert | AuthorizationOption.Badge | AuthorizationOption.Sound,
true
);
#endif
}

この関数を Start()Awake() の中で呼び出すようにすると、
アプリを起動したときに「このアプリから通知を受け取りますか?」と表示されます。


✅ 必須2:Xcodeでの設定

UnityからiOSビルドをしたら、Xcodeで以下の設定を行います。

① Capabilities(機能)を追加

  1. Xcodeを開いたら、プロジェクトを選択
  2. 「Signing & Capabilities」タブを選ぶ
  3. + Capability をクリックして、**「Push Notifications」**を追加

⚠️ 実際はプッシュ通知は使いませんが、これを追加しないと一部端末で通知が出ないことがあります。


② Info.plistの編集

通知を使うには、「通知の利用目的」をユーザーに伝える必要があります。

Xcodeの Info.plist ファイルに以下の項目を追加してください:

<key>NSUserNotificationUsageDescription</key>
<string>イベントやお知らせの通知を送るために使用します。</string>

✅ よくあるトラブルと解決法

問題原因解決法
通知が出ない通知の許可を取っていないRequestAuthorization() を呼び出しているか確認
ビルド時にエラーCapabilitiesが不足Push Notificationsを追加
Info.plist の警告利用目的が未記入NSUserNotificationUsageDescription を追加

iOSでの設定はちょっと手間がかかりますが、これをやっておくことで安心して通知を使えるようになります!




5. Androidでの注意点と設定

AndroidはiOSに比べて設定が少なく、ローカル通知を導入しやすいですが、いくつかのポイントを押さえておかないと通知が届かないこともあります。この章では、Android向けに通知を確実に動かすための設定を解説していきます!


🔧 AndroidManifest.xmlの確認

Unityが自動で AndroidManifest.xml を生成してくれますが、通知を使うために以下のような設定が入っていることを確認しておくと安心です。

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

※このパーミッションは Android 13(APIレベル33)以上で必要です。
Unity 2022以降では自動で追加されることが多いですが、念のため確認しておきましょう。


🔔 通知チャンネルの登録は必須!

Android 8.0(API 26)以降では、通知チャンネルの登録が必須です。チャンネルがないと通知が表示されません。

先ほど紹介したコードにも登場したこの部分が大事です👇

var channel = new AndroidNotificationChannel()
{
Id = "default_channel",
Name = "Default Channel",
Importance = Importance.Default,
Description = "ゲームからのお知らせ通知",
};
AndroidNotificationCenter.RegisterNotificationChannel(channel);
  • Id は一意の文字列でOK(好きな名前で大丈夫)
  • ImportanceImportance.High にすると音やバイブも鳴る!

📱 通知が届かないときのチェックポイント

チェック項目内容
チャンネル登録しているか?RegisterNotificationChannel() を呼び出しているか確認
通知の発火時間は適切か?FireTime が過去になっていないか確認
Android 13以上か?POST_NOTIFICATIONS のパーミッションを確認

💡 補足:通知を複数使いたいとき

チャンネルは複数作ることができるので、

  • 「スタミナ通知用チャンネル」
  • 「イベント通知用チャンネル」

など、通知の種類ごとに分けることも可能です。

new AndroidNotificationChannel()
{
Id = "event_channel",
Name = "Event Notifications",
Importance = Importance.High,
Description = "イベント開始のお知らせ",
};

これでAndroid側の設定もバッチリです!




6. 実装後の活用例と応用

ここまでで、Unityでローカル通知を出す準備も設定もバッチリ整いました!
でも、「通知って実際にどんな風に活用すればいいの?」と思っている方も多いはず。

この章では、実際のゲームでの活用アイデアをいくつか紹介していきます。通知をうまく使うことで、プレイヤーの継続率アップにもつながるので、ぜひ参考にしてみてください!


🔄 ① スタミナ回復のお知らせ

よくあるスマホゲームの定番ですね!
たとえば「スタミナが全回復する1時間後に通知を出す」というような使い方ができます。

notification.Title = "スタミナ全回復!";
notification.Text = "今すぐ冒険に出かけよう!";
notification.FireTime = DateTime.Now.AddHours(1);

🎁 ② ログインボーナスのリマインダー

「毎日ログインすると報酬がもらえる」ようなゲームなら、毎日決まった時間に通知を出すのもおすすめです。

notification.Title = "今日のボーナスをゲットしよう!";
notification.Text = "ログインするだけでアイテムプレゼント!";
notification.RepeatInterval = TimeSpan.FromDays(1); // 毎日通知
notification.FireTime = DateTime.Today.AddHours(20); // 今日の20時

⏰ ③ イベント開始のお知らせ

ゲーム内で新しいイベントが始まるタイミングに合わせて、時間指定で通知をスケジュールしておくこともできます。

notification.Title = "新イベント開催中!";
notification.Text = "限定アイテムを手に入れよう!";
notification.FireTime = new DateTime(2025, 4, 10, 18, 0, 0); // 4月10日の18時

💡応用テクニック:通知IDを管理しよう

通知を複数登録したあとで「この通知だけキャンセルしたい」と思ったときのために、通知IDを変数で管理しておくのがおすすめです。

int id = AndroidNotificationCenter.SendNotification(notification, "default_channel");
AndroidNotificationCenter.CancelNotification(id); // キャンセル可能

🚀 もっと本格的にユーザー管理やクラウド連携をしたいなら?

今回紹介したローカル通知は、オフラインでも使える手軽なリテンション施策ですが、
「もっとユーザーの行動データを管理したい」「クラウドセーブやランキングも入れたい!」という方には、
PlayFabと連携できる便利なアセットがあります👇

👉 CBS – Cross Platform Backend Solution for PlayFab

このアセットを使えば、

  • ユーザーログイン/アカウント管理
  • クラウドセーブ
  • 実績・ランキング・ショップ機能

など、本格的なオンライン対応ゲームが作れます!

通知+クラウド連携で、ユーザーが長く遊んでくれる仕組みを作ってみましょう!


🎉 ゲームをもっと楽しくするために!

通知はただのお知らせではなく、プレイヤーの行動を優しくサポートするツールです。

  • 「あ、ゲームに戻ろうかな」と思わせる
  • 「アイテム取り逃したくない!」という心理をくすぐる
  • 「毎日ちょっとずつ続ける」習慣をサポート

こういった効果があるので、ゲームの設計にも役立ちますよ!




まとめ

今回は、**Unityでローカル通知を実装する方法(Android/iOS対応)**について、基本から応用までじっくり解説してきました。

ローカル通知はサーバーを使わずに簡単にアプリから通知を出せる便利な機能です。
スタミナ回復やログインボーナス、イベント告知など、ゲームの「つながり」を保つためにもとっても効果的です!

🎯 本記事のポイントおさらい

  • ローカル通知はオフラインでも使える通知
  • Unity公式の「Mobile Notifications」パッケージを使えば超簡単
  • iOSは許可設定とXcode側の設定が重要
  • Androidはチャンネル登録とパーミッションを忘れずに
  • 応用すれば毎日通知・イベント告知など色々できる!

少し設定が多く感じるかもしれませんが、一度実装してしまえば再利用も簡単です!
ゲーム開発に通知を取り入れて、もっと楽しく、もっと続けてもらえるゲームにしていきましょう😊




よくある質問(FAQ)

Q
通知はアプリを閉じていても表示されますか?
A

はい、ローカル通知はアプリがバックグラウンドや終了していても、指定した時間に表示されます。

Q
iOSで通知が届かないのですが?
A

以下の点を確認してください:

  • 通知の許可をユーザーに求めていますか?
  • Xcodeの「Capabilities」で Push Notifications を有効にしていますか?
  • Info.plist に通知利用の説明文を追加していますか?
Q
同じ通知を毎日出すことはできますか?
A

はい、RepeatInterval を使えば、毎日同じ時間に通知を繰り返し出すことができます!

タイトルとURLをコピーしました