ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2026ǯ08·î10Æü(·î) 16:04:17ÍúÎò
¤³¤Îµ¡Ç½¤ò¼ÂÁõ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Ã¼Ëö¤Ç¤Î¥í¡¼¥«¥ë¥×¥Ã¥·¥åÄÌÃΤεö²Ä³Îǧ¤Î¥À¥¤¥¢¥í¥°¤òɽ¼¨¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤Þ¤¿¡¢¥À¥¤¥¢¥í¥°Æâ¤Ç¡Öµö²Ä¡×¤ò²¡¤·¤¿¤é¡¢°Ê¹ß¤Ïµö²Ä³Îǧ¥À¥¤¥¢¥í¥°¤òɽ¼¨¤·¤Ê¤¤À߷פˤʤäƤ¤¤Þ¤¹¡£

Unity 6000.3.x Mobile Notifications 2.4.x
¡¡³°Éô¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ UniTask ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
UniTask 2.5.11
¡¡Unity ¤Î PackageManager ¤è¤ê Mobile Notifications ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£
Unity ¸ø¼°¥É¥¥å¥á¥ó¥È
Mobile Notifications package
https://docs.unity.cn/Packages/com.unity.mobile.no...
¡¡ÍøÍѤ·¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤Ï 2.4.x ·Ï¤Ç¤¹¡£
¡¡Android 13°Ê¾å¤Ç¤Ï¡¢POST_NOTIFICATIONS ¸¢¸Â¤ò¥æ¡¼¥¶¡¼¤ËÍ׵᤹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡PermissionStatus ¤Ï Moble Notifications ¥Ñ¥Ã¥±¡¼¥¸¤ÇÍѰդµ¤ì¤Æ¤¤¤ë enum ¤Ç¤¹¡£
¤³¤Á¤é¤Î¾ðÊó¤òÍøÍѤ·¤Æ¥í¡¼¥«¥ë¥×¥Ã¥·¥åÄÌÃΤμÂÁõ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
Moble Notifications ¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤Ë¤Ï using Unity.Notifications.Android ¤ÎÀë¸À¤¬É¬ÍפǤ¹¡£
¡¡¥½¡¼¥¹¥³¡¼¥É¤Ï Mobile Notifications 2.4.x¤ÎÆâÍÆ¤ÇµºÜ¤·¤Æ¤¤¤Þ¤¹(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¤È API ¤Ê¤É¤¬°Û¤Ê¤ê¤Þ¤¹)¡£
¡¡¥À¥¤¥¢¥í¥°Æâ¤Ç¡Öµö²Ä¡×¤ò²¡¤·¤¿¤é¡¢°Ê¹ß¤Ïµö²Ä³Îǧ¥À¥¤¥¢¥í¥°¤òɽ¼¨¤·¤Ê¤¤À߷פˤʤäƤ¤¤Þ¤¹¡£
NotificationPermissionManager.cs
using Cysharp.Threading.Tasks;
using System.Threading;
#if UNITY_ANDROID
using Unity.Notifications.Android;
#endif
public static class NotificationPermissionManager
{
public static async UniTask<PermissionStatus> RequestPermissionAsync(CancellationToken token = default)
{
#if UNITY_EDITOR
await UniTask.Yield(cancellationToken: token);
return PermissionStatus.Allowed;
#elif UNITY_ANDROID
PermissionStatus status = AndroidNotificationCenter.UserPermissionToPost;
switch (status)
{
case PermissionStatus.Allowed:
return PermissionStatus.Allowed;
case PermissionStatus.Denied:
case PermissionStatus.DeniedDontAskAgain:
return status;
case PermissionStatus.RequestPending:
while (AndroidNotificationCenter.UserPermissionToPost == PermissionStatus.RequestPending)
{
token.ThrowIfCancellationRequested();
await UniTask.Yield(PlayerLoopTiming.Update, token);
}
return AndroidNotificationCenter.UserPermissionToPost;
case PermissionStatus.NotRequested:
PermissionRequest request = new PermissionRequest();
while (request.Status == PermissionStatus.RequestPending)
{
token.ThrowIfCancellationRequested();
await UniTask.Yield(PlayerLoopTiming.Update, token);
}
return request.Status;
}
return status;
#else
return PermissionStatus.Allowed;
#endif
}
}
¡¡¼Â¹Ô¦¤Î¼ÂÁõÎã¤Ç¤¹¡£
PermissionStatus status = await NotificationPermissionManager.RequestPermissionAsync();
switch (status)
{
case PermissionStatus.Allowed:
Debug.Log("ÄÌÃεö²ÄºÑ¤ß");
break;
case PermissionStatus.Denied:
Debug.Log("ÄÌÃεñÈÝ");
break;
case PermissionStatus.DeniedDontAskAgain:
Debug.Log("ÀßÄêÊѹ¹¤¬É¬Í×");
break;
}
¡¡Project Settings Æâ¤Î Mobile Notifications ¤òÁªÂò¤·¡¢iOS ¥¿¥Ö¤òÁªÂò¤·¤Þ¤¹¡£
¤³¤Á¤é¤Ë¤¢¤ë Request Authorization on App Launch ¤ò ON ¤Ë¤·¤Þ¤¹¡£

¡¡¤³¤ÎÀßÄê¤òON¤Ë¤¹¤ë¤È¡¢¥¢¥×¥êµ¯Æ°»þ¤ËUnity¤¬¼«Æ°¤Ç UNUserNotificationCenter ¤ØÄÌÃθ¢¸Â¤òÍ׵ᤷ¤Æ¤¯¤ì¤Þ¤¹¡£
¡¡¤Ä¤Þ¤ê Android ¤È¤Ï°Û¤Ê¤ê¡¢¥½¡¼¥¹¥³¡¼¥É¤Ë¤è¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¼Â¹Ô½èÍý¤ÏÉÔÍפǤ¹¡£
¡¡Request Authorization on App Launch ¤ò OFF ¤Ë¤·¤¿¾ì¹ç¤Ë¤Ï¡¢Android ¤Î¤è¤¦¤Ë¥½¡¼¥¹¥³¡¼¥É¤Ç¤Î¼Â¹Ô¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡¥²¡¼¥à³«»Ïľ¸å¤Ë¡ÖÄÌÃΤòµö²Ä¤·¤Þ¤¹¤«¡©¡×¤ÈÆÍÁ³½Ð¤ë¤È¡¢¤«¤Ê¤ê¤Î³ä¹ç¤Ç¡Öµö²Ä¤·¤Ê¤¤¡×¤¬²¡¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤Ï¥æ¡¼¥¶¡¼¤È¤·¤Æ¤ß¤ì¤ÐÅöÁ³¤ÎȽÃǤǤ¢¤ê¡¢´ðËÜŪ¤Ë¡¢¤É¤Î¤è¤¦¤Ê¥í¡¼¥«¥ëÄÌÃΤ¬Íè¤ë¤Î¤«¤ï¤«¤é¤Ê¤¤¾õÂ֤ǡֵö²Ä¤¹¤ë¡×¤³¤È¤Ï¤¢¤Þ¤ê¤Ê¤¤¤Ç¤·¤ç¤¦¡£
¡¡ºÇ¶á¤Î¥²¡¼¥à¤Ï
¥²¡¼¥à³«»Ï
¢
¥Á¥å¡¼¥È¥ê¥¢¥ë
¢
¥²¡¼¥àÆâ¤Î¥¤¥Ù¥ó¥È¡¡¢ª¡¡¡Ö¥¹¥¿¥ß¥Ê²óÉü¤òÄÌÃΤǤ¤Þ¤¹¡×¡Ö̵ÎÁ¤Î¥¬¥Á¥ã¤¬°ú¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤éÄÌÃΤǤ¤Þ¤¹¡×
¢
ÄÌÃεö²Ä¥À¥¤¥¢¥í¥°
¡¡¤È¤¤¤¦Î®¤ì¤¬°ìÈÌŪ¤«¤È»×¤ï¤ì¤Þ¤¹¡£
¤É¤¦¤¤¤Ã¤¿ÆâÍÆ¤ÎÄÌÃΤ¬¤¯¤ë¤Î¤«¤ï¤«¤Ã¤Æ¤«¤é¤ÎÊý¤¬ÄÌÃΤεö²ÄΨ¤¬¤«¤Ê¤ê¹â¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡¼«Ê¬¤¬£±¥æ¡¼¥¶¡¼¤Ç¤¢¤ëÌÜÀþ¤òÂç»ö¤Ë¤·¤Æ¡¢¼ÂÁõ¤¹¤ë¥¿¥¤¥ß¥ó¥°¤ò¸¡Æ¤¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°




¥³¥á¥ó¥È¤ò¤«¤¯