トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

【Unity】Mobile Notificationsでプッシュ機能作ってみる①【Android】

スマホの通知機能、作ってみたい。

できるらしい。

application.hateblo.jp

iosAndroidで対応が違うとこもある?とりあえずAndroidに絞る!

調べたけど、これが定番!みたいなの分からなかった。

とりあえず2種類見つけたので試してみる。

 

Mobile Notifications

unity package managerのpreviewに入っている機能

PackageManagerでAdvanceのところをpreviewにしたら

f:id:bibinbaleo:20190528212223p:plain

出てくる!

f:id:bibinbaleo:20190528212229p:plain

入れるとPlayerSettingにMobile Notification~がある。

f:id:bibinbaleo:20190528215427p:plain

こちらを参考に設定

www.shibuya24.info

通知のアイコンを設定。正方形じゃないと怒られる。

f:id:bibinbaleo:20190528215431p:plain

あと画像の設定でAdvancedを開いてRead/Writeにチェック入れる。

f:id:bibinbaleo:20190528215425p:plain

こちらの記事のスクリプトを丸ごと使わせてもらいました。

baba-s.hatenablog.com

using System;
using Unity.Notifications.Android;
using UnityEngine;

public class tuutiunity : MonoBehaviour
{
    private string m_channelId = "【ここにチャンネル ID】";

    private void Awake()
    {
        // 通知用のチャンネルを作成する
        var c = new AndroidNotificationChannel
        {
            Id = m_channelId,
            Name = "お知らせ",
            Importance = Importance.High,
            Description = "やっほー",
        };
        AndroidNotificationCenter.RegisterNotificationChannel(c);
    }

    // ボタンが押されたら呼び出される関数
    public void OnClickButton()
    {
        // 通知を送信する
        var n = new AndroidNotification
        {
            Title = "お知らせ",
            Text = "やっほー",
            SmallIcon = "icon_0",
            LargeIcon = "icon_1",
            FireTime = DateTime.Now.AddSeconds(10), // 10 秒後に通知
        };
        AndroidNotificationCenter.SendNotification(n, m_channelId);
    }
}

 

上の通知用チャンネル作成の部分はよくわからなかった。

通知で表示されるのは下の部分。

適当なボタンを設定して、OnClickButton()を呼び出す。

できた!!

f:id:bibinbaleo:20190528220148p:plain

f:id:bibinbaleo:20190528220150p:plain

UniLocalNotification

こっちを最初に見つけてやっていた。

こちらのunitypackageを入れる。

github.com

製作者様の記事を見ながら実装。

smartgames.hatenablog.com

ただ私はうまくいかなかった。

スクリプト間違っていたのかもしれない。

ちなみにスマホのホームボタンを押したときを検知するのは、

//一時停止or再開時
private void OnApplicationPause (bool pauseStatus){

//一時停止
if(pauseStatus){

}
//再開時
else{

}

}

 だそうです。勉強になった。

kan-kikuchi.hatenablog.com

最後に

通知をするタイミングをどうやって書くのか、そのバリエーションが分からない。

そのほか細かいところまだなので今度調べます。zzz