見出し画像

【Unity】 ローカルプッシュ通知の実装 ~Android~

今回参考にさせていただいた資料はこちらです.[1]

【Keyword】
・Mobile Notifications



□ 説明 & 環境

【説明】
資料を参考にして,
勉強になった点  → POINT!
失敗した点→ ERROR!
補足した点 → ADD!

と表記しています.

【環境】
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
HUAWEI nova lite3
Unity  2020.3.15f2 LTS
※ Unity内の画面レイアウトは異なるかもしれません.



□ はじめに

個人的にこのサイトがとても分かりやすかったです.[2]
コード実装以外はこのサイトを参考にさせていただきました.


手順としては,

1. パッケージのインストール
2. Android設定
3. コード実装

3のコード実装は2つC#スクリプトを用意する必要があるので注意です!!
(ここがよく分からなくて苦戦していました..)



1. パッケージのインストール

   
Window  >  Pakage Manager

画像1


Mobile Notifications  >  Instore 選択


以下のようにMobile Notificationsが表示されない場合は
In Project  >  Unity Registry 
に変更すると表示されます!  

画像2

画像3

画像4



2. Android設定

Edit  >  Project Settings…

画像5



Mobile Notifications  >  写真を追加 
この写真は通知時に表示されます

画像6


3. コード実装


このスクリプトはどこにも反映させなくてもいいです!!
( LocalNotification.cs )

using Unity.Notifications.Android;


public static class LocalNotification
{

   private static string ChannelId = "ch_0";

   /// 

   /// 通知チャンネルの登録
   /// 

   public static void Initialize()
   {
       AndroidNotificationChannel channel = new AndroidNotificationChannel
       {
           Id = ChannelId,
           Name = "Channel Name",
           Importance = Importance.High,
           Description = "Description"
       };
       AndroidNotificationCenter.RegisterNotificationChannel(channel);
   }

   /// 

   /// ローカル通知を登録
   /// 

   /// タイトル
   /// 本文
   /// 何秒後に通知をするか
   public static void ReserveNotification(string title, string body, int afterSec)
   {

       // 通知チャンネルを登録
       Initialize();

       // 通知を送信する
       AndroidNotification notification = new AndroidNotification
       {
           Title = title,
           Text = body,
           // アイコンをそれぞれセット
           SmallIcon = "icon_0",
           LargeIcon = "icon_1",
           // 今から何秒後に通知をするか?
           FireTime = System.DateTime.Now.AddSeconds(afterSec)
       };
       AndroidNotificationCenter.SendNotification(notification, ChannelId);
   }
}


このスクリプトは、Main Camera などに反映させます。
コメントは、自由に変えてください。

(.Blog20200629.cs )

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Blog20200629 : MonoBehaviour
{
   void Start()
   {
       LocalNotification.ReserveNotification("通知""お疲れ様でした"10);
   }
}



□ まとめ

通知をするまでにかなりの時間がかかりました。

写真追加時のエラー
スクリプトが2ついること
ビルドできない

しかし、これらは参考資料をよくみるとしっかり注意点として書かれていたのでしっかり読む必要があるなと思いました。

分からないプログラムも何度も読んでいると徐々に理解できたので諦めず何度も読んでみるのがいいのかなと思いました。



21/10/21

いいなと思ったら応援しよう!