Files
2026-06-29 21:18:33 +08:00

104 lines
3.1 KiB
C#

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;
}
}