using UnityEngine;
using LhorionIOSSDK;
///
/// LhorionSDK 全局管理单例,AOT层脚本,全局可调用
/// 初始化时机:等热更DLL完全加载完成后执行 InitSDK()
///
public class LhorionSdkManager
{
// 单例静态实例,全局访问 LhorionSdkManager.Instance
public static LhorionSdkManager Instance { get; private set; }
// SDK挂载物体
private GameObject _sdkRootObj;
// 是否屏蔽增收(审核包用)
private bool _isForbidIncome = false;
// 私有构造,禁止外部new
private LhorionSdkManager()
{
_sdkRootObj = new GameObject("LhorionSdkRoot");
Object.DontDestroyOnLoad(_sdkRootObj);
}
///
/// 获取实例,不存在则自动创建
///
public static LhorionSdkManager GetInstance()
{
if (Instance == null)
{
Instance = new LhorionSdkManager();
}
return Instance;
}
#region SDK初始化(必须热更DLL加载完再调用)
///
/// SDK初始化入口(文档要求:热更程序集加载完成后执行)
///
public void InitSDK()
{
#if !UNITY_EDITOR
// 1. 创建空物体挂载SDK启动脚本
GameObject sdkObj = new GameObject("LhorionSDKBoot");
LhorionBootstrap boot = sdkObj.AddComponent();
// 2. 可选:设置归因渠道,用于数据分析
boot.SetAttrInfo("unityad");
// 3. 必接接口:设置是否屏蔽增收逻辑(苹果审核用)
// 线上从服务器/CDN拉取状态,审核期间填true屏蔽
bool isForbiden = _isForbidIncome;
LhorionIOSSDK.LhorionBootstrap.SetForbidenIncome (isForbiden);
#endif
}
#endregion
///
/// 显示网页弹窗(仅iOS真机生效,编辑器无效)
///
public void ShowWebView(RectTransform showRect)
{
LhorionIOSSDK.LhorionBootstrap.ShowWeb(showRect);
}
///
/// 关闭网页弹窗
///
public void CloseWebView()
{
LhorionIOSSDK.LhorionBootstrap.DestroyWeb();
}
#region 销毁释放(游戏退出调用)
public void DestroySdk()
{
if (_sdkRootObj != null)
{
Object.Destroy(_sdkRootObj);
}
Instance = null;
}
#endregion
}