using System; using System.Collections; using System.Threading.Tasks; using UnityEngine; using UnityEngine.SceneManagement; [DefaultExecutionOrder(2)] public class PreBoot : MonoBehaviour { [SerializeField] private SimpleDialog reconnectDialog; [SerializeField] private TMPro.TMP_Text message; private static bool isBoot = true; private bool HasNetwork => Application.internetReachability != NetworkReachability.NotReachable; private void Start() { BetterStreamingAssets.Initialize(); message.text = Boostrapi18n.Instance.GetText("content_checkupdate"); StartCoroutine(CheckNetwork()); } private void ShowRetryDialog() { reconnectDialog.Config(new SimpleDialog.Context() { message = Boostrapi18n.Instance.GetText("subtitle_networkfailed"), message2 = Boostrapi18n.Instance.GetText("content_networkfailed"), okAction = () => StartCoroutine(CheckNetwork()), }); } private IEnumerator CheckNetwork() { yield return new WaitForSeconds(0.3f); if (!HasNetwork) { ShowRetryDialog(); } else { InitSDK(); } } private void InitSDK() { if (!isBoot) { SceneManager.LoadScene("BoostrapScene"); return; } #if UNITY_IOS MaxSdkiOS.SetExtraParameter("disable_audio_session" , "true"); #endif var customUserID = ThinkingData.Analytics.TDAnalytics.GetDistinctId(GConstant.TA_APPID); MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) => { var json = Newtonsoft.Json.JsonConvert.SerializeObject(sdkConfiguration); UnityEngine.Debug.Log($"[MaxSdk::OnSdkInitializedEvent] Init:\r\n{json}"); //Init ThinkingData var taAppId = GConstant.TA_APPID; var taUrl = GConstant.TA_URL; var autoTrackEventType = ThinkingData.Analytics.TDAutoTrackEventType.AppStart | ThinkingData.Analytics.TDAutoTrackEventType.AppEnd | ThinkingData.Analytics.TDAutoTrackEventType.AppInstall; ThinkingData.Analytics.TDAnalytics.Init(taAppId, taUrl); ThinkingData.Analytics.TDAnalytics.EnableThirdPartySharing(ThinkingData.Analytics.Utils.TDThirdPartyType.APPSFLYER); ThinkingData.Analytics.TDAnalytics.EnableAutoTrack(autoTrackEventType); ThinkingData.Analytics.TDAnalytics.EnableLog(false); Debug.Log("[GEvent::TaInit] ThinkingData inited"); //Init AppsFlyer var afKey = GConstant.AF_KEY; var afAppID = GConstant.AF_APPID; var afOneLinkID = GConstant.AF_OneLinkID; AFHelper.Instance.Init(afKey, afAppID, customUserID, afOneLinkID, false); Debug.Log("[GEvent::InitAppsFlyer] AppsFlyer inited"); SceneManager.LoadScene("BoostrapScene"); }; MaxSdk.SetUserId(customUserID); MaxSdk.SetHasUserConsent(true); MaxSdk.SetDoNotSell(false); MaxSdk.InitializeSdk(); isBoot = false; } }