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 }