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