スマゲ

スマートなゲームづくりを目指して日々精進

Unityのローカル通知プラグイン(iOS, Android対応)

Unityでローカル通知を簡単に実装できるプラグインを作ってみました

github.com

■概要
Unityでローカル通知を実装できるようにしたプラグイン。プラットーフォームごとの処理を意識することなく実装を行うことができる

■対応プラットフォーム
iOS, Android

■対応Unityバージョン
Unity5以降

■インストール方法
リンク先のリポジトリのUnityPackageフォルダいかにある、
unitypackageを利用する

■実装方法
・アプリ起動時に以下のメソッドを呼び出す(毎回必要)

UniLocalNotification.Initialize();

・ローカル通知の登録

// 10秒後に通知を行う
int delay = 10;
UniLocalNotification.Register(delay, "Message", "Title");

・通知の削除

UniLocalNotification.CancelAll();

・通知の許可確認
通知がユーザーによって許可されているかを確認する

bool isPermitted = UniLocalNotification.IsLocalNotificationPermitted();

・設定を開く
通知の設定を開く

UniLocalNotification.OpenAppSetting();

■カムバック通知のサンプル
アプリを閉じてから10秒後にカムバック通知を送るサンプル

using UnityEngine;

public class ComeBackSample : MonoBehaviour {

    void Awake()
    {
        UniLocalNotification.Initialize();
    }

    void OnApplicationPause(bool pauseStatus)
    {
        if (pauseStatus)
        {
            UniLocalNotification.Register(10, "ゲームに戻ってきて!", "Come Back!!");
        }
        else
        {
            UniLocalNotification.CancelAll();
        }
    }
}

■Androidのステータスバーに表示されるアイコンを表示する
Androidではステータスバーのアイコンをアルファをもつ32bitのpngで作成する必要がある。
例: Android Developersから引用
f:id:sanukin39:20170921002343p:plain

上記のプラグインはデフォルトでサンプルのアイコンが表示されるのでアイコンを変更したい場合は以下のように対応する

1. リポジトリにあるAndroidLibaryProjectをAndroidStudioで開く
2. プロジェクト以下にあるnotification_icon.pngを作成したものと差し替える
f:id:sanukin39:20170921002939p:plain
3. ターミナルでAndroidのプロジェクトルートに移動して、以下のコマンドを入力する
./gradrew assemble
4. unilocalnotification/build/outputs/aar/ 以下にaarファイルが作成されているので、そのファイルをUnityプロジェクト以下のものと差し替える

■まとめ
ローカル通知をアプリごとに毎回実装するのが面倒だったので作成してみました、何かあればissuesに登録をお願いしますm(_ _ )m

github.com