Документация
Интеграция SDK

AppMetrica Push Unity

AppMetrica Push Unity — это плагин для игровой платформы Unity3d, включающий поддержку AppMetrica Push SDK для платформ Android и iOS.

Перед началом работы с плагином AppMetrica Push Unity необходимо подключить и инициализировать AppMetrica Unity плагин не ниже версии 2.0.

Интеграция AppMetrica Push Unity плагина

Шаг 1. Загрузите AppMetrica Push Unity плагин.

Шаг 2. Добавьте плагин в проект — откройте проект в Unity Editor, импортируйте плагин AppMetricaPush.unitypackage (AssetsImport PackageCustom Package).

Шаг 3. Откройте папку Assets/AppMetricaPush/ и перетащите префаб AppMetricaPush с помощью мыши на главную сцену проекта.

Если плагин интегрирован данным образом, скрипт AppMetricaPush на добавленном префабе автоматически инициализирует AppMetrica Push SDK.

Добавленный префаб AppMetricaPush является синглтоном. Он не удаляется при переходе в новую сцену Unity и удаляет другие объекты, на которых будет установлен скрипт AppMetricaPush.

Настройка плагина

Шаг 1. Для отправки уведомлений на устройства с iOS версии 7 и выше добавьте в код приложения следующие изменения:

void Start()
{
  #if UNITY_IPHONE || UNITY_IOS
    UnityEngine.iOS.NotificationServices.RegisterForNotifications (
      UnityEngine.iOS.NotificationType.Alert |
      UnityEngine.iOS.NotificationType.Badge |
      UnityEngine.iOS.NotificationType.Sound, true);
  #endif
}
Совет. Вы можете добавить новый скрипт (Add ComponentNew Script) на существующий префаб AppMetricaPush и добавить код в реализацию метода Start() скрипта.

Шаг 2. После настройки push-уведомлений для iOS и сборки проекта внесите изменения в файл Preprocessor.h в XCode:

#define UNITY_USES_REMOTE_NOTIFICATIONS 1
Примечание. AppMetrica Push Unity Plugin использует механизм «swizzling» для своей работы: перехватывает выполнение некоторых методов класса UnityAppController используя ObjectiveC runtime. Код механизма представлен в файле AppMetricaPush/Plugins/iOS/YMPBridge.m

Внесите изменения в элемент application файла AndroidManifest.xml:

Примечание. Если вы используете пример интеграции AppMetrica Push SDK, измените значение атрибута package в элементе manifest на package id вашего приложения.
<receiver
  android:name="com.google.android.gms.gcm.GcmReceiver"
  android:exported="true"
  android:permission="com.google.android.c2dm.permission.SEND">
  <intent-filter>
    <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
    <action android:name="com.google.android.c2dm.intent.RECEIVE"/>

    <category android:name="com.yandex.mobile.metricapush.pluginunity"/>
  </intent-filter>
</receiver>
<receiver
  android:name="com.yandex.metrica.push.core.notification.MetricaPushBroadcastReceiver"
  android:exported="false" >
  <intent-filter>
    <action android:name="com.yandex.metrica.push.action.NOTIFICATION_ACTION"/>
  </intent-filter>
</receiver>
<service
  android:name="com.yandex.metrica.push.gcm.MetricaInstanceIDListenerService"
  android:exported="false">
  <intent-filter>
      <action android:name="com.google.android.gms.iid.InstanceID"/>
  </intent-filter>
</service> 
<service
  android:name="com.yandex.metrica.push.PushService"
  android:exported="false">
</service> 

<meta-data android:name="ymp_gcm_project_number" android:value="number:gcm_number
[no-highlight[

gcm_number — уникальный идентификатор приложения в GCM (Google Cloud Messaging).

]no-highlight]
"/>

gcm_number — уникальный идентификатор приложения в GCM (Google Cloud Messaging).

В каталоге Assets/AppMetricaPush/Plugins/Android/ находится пример файла AndroidManifest.xml