Хорошо, поэтому я в основном создал постоянный игровой объект в моей первой сцене и прикрепил к нему этот код. Я основал этот код на примере Facebook https://developers.facebook.com/docs/app-events/unity, но добавил несколько дополнительных проверок, чтобы FB.Init () не вызывался дважды. Я также добавил сопрограмму, которая будет ждать активации события до тех пор, пока не будет выполнена функция FB.Init (), поскольку FB.Init () является асинхронной функцией. Надеюсь, это кому-нибудь поможет.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Facebook.Unity;
public class FacebookTracker : MonoBehaviour {
private static FacebookTracker instance;
private bool initCalled;
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
} else
{
Destroy(gameObject);
}
if (FB.IsInitialized == false && initCalled == false)
{
FB.Init();
initCalled = true;
}
}
private void OnApplicationPause(bool pause)
{
Debug.Log("OnApplicationPause = " + pause);
if (pause == false)
{
if (FB.IsInitialized == true)
{
FB.ActivateApp();
} else
{
if (initCalled == false)
{
FB.Init();
initCalled = true;
}
StartCoroutine(ActivateEvent());
}
}
}
private IEnumerator ActivateEvent()
{
yield return new WaitUntil(() => FB.IsInitialized == true);
Debug.Log("Facebook Activate Event Logged");
FB.ActivateApp();
}
}