using UnityEngine; using LitJson; using System; /// /// SDK平台实现的抽象基类。 /// 每个目标平台(Android、WebGL等)继承此类并实现各自的逻辑。 /// SDKUtils持有一个SDKBaseImpl实例,所有平台差异均通过此基类委托。 /// public abstract class SDKBaseImpl { protected readonly SDKUtils utils; protected SDKBaseImpl(SDKUtils utils) { this.utils = utils; } // ------------------------------------------------------- // 必须由子类实现的平台核心方法 // ------------------------------------------------------- /// 向平台原生SDK发送JSON消息 public abstract void SendToNative(string jsonStr); /// 平台初始化(检查内置资源拷贝状态、平台特有设置等) public abstract void InitPlatform(); /// 触发SDK账号登录流程 public abstract void FreePlatformLogin(); /// 填充平台特有的设备信息字段(如Android的mac/imei等) public abstract void FillDeviceInfo(JsonData json); /// 退出游戏(各平台行为不同) public abstract void ExitGame(); // ------------------------------------------------------- // 可选重写(默认空实现,仅Android等平台需要) // ------------------------------------------------------- /// 同步客户端包ID到原生SDK public virtual void SyncClientPackageID() { } /// 动态申请单个权限 public virtual void RequestPermission(string permission, Action callBack) { } /// 启动时批量申请权限(由SDK决定策略) public virtual void RequestPermissionStart() { } }