using UnityEngine; namespace KTSDK { public class Helper : MonoBehaviour { public delegate void InitLaunchAction(string data); public InitLaunchAction onInitLaunchCallback; public delegate void LoginAction(string data); public LoginAction onLoginCallback; public delegate void PayAction(string data); public PayAction onPayCallback; public delegate void SwitchAccountAction(string data); public SwitchAccountAction onSwitchAccountCallback; public delegate void LogoutAction(string data); public LogoutAction onLogoutCallback; private static Proxy proxy; private static Helper _instance; static public Helper Instance { get { if (null == _instance) { var obj = new GameObject("KTSDKHelper"); _instance = obj.AddComponent(); DontDestroyOnLoad(obj); #if UNITY_IOS proxy = obj.AddComponent(); #elif UNITY_ANDROID proxy = obj.AddComponent(); #else proxy = obj.AddComponent(); #endif } return _instance; } } void Update() { var msg = proxy.PopMessage(); if (null == msg) { return; } Debug.LogFormat("[KTSDK] PopMessage - this: {0}, msgId: {1}, data: {2}", GetHashCode(), msg.msgId, msg.data); switch (msg.msgId) { case MessageDef.MSG_InitCallback: if (null != onInitLaunchCallback) { onInitLaunchCallback(msg.data); } break; case MessageDef.MSG_LoginCallback: if (null != onLoginCallback) { onLoginCallback(msg.data); } break; case MessageDef.MSG_PayCallback: if (null != onPayCallback) { onPayCallback(msg.data); } break; case MessageDef.MSG_SwitchAccountCallback: if (null != onSwitchAccountCallback) { onSwitchAccountCallback(msg.data); } break; case MessageDef.MSG_LogoutCallback: if (null != onLogoutCallback) { onLogoutCallback(msg.data); } break; default: break; } } //sdk 初始化 public void InitLaunch(KTSDKInitArgs args) { proxy.Init(args); } //sdk 登录 public void Login() { proxy.Login(); } //sdk 数据上报 public void SubmitExtraData(KTSDKSubmitExtraDataArgs args) { proxy.SubmitExtraData(args); } //sdk 支付 public void Pay(KTSDKPayArgs args) { proxy.Pay(args); } //是否支持弹出退出框 public bool IsSupportExit() { return proxy.IsSupportExit(); } //sdk 退出 public void ExitGame() { proxy.Exit(); } //sdk 获取设备标识 public string GetDeviceID() { return proxy.GetDeviceID(); } //sdk 获取IMEI public string GetIMEICode() { return proxy.GetIMEICode(); } //sdk获取支付订单号 public string GetPayOrderID() { return proxy.GetPayOrderID(); } public void CaptureShot() { proxy.ShotCapture(); } //sdk init 回调 public void InitCallback(string data) { //Debug.Log("Helper : InitCallback - data: " + data); proxy.PushMessage(new Message { msgId = MessageDef.MSG_InitCallback, data = data }); } //sdk login 回调 public void LoginCallback(string data) { //Debug.Log("Helper : LoginCallback - data: " + data); proxy.PushMessage(new Message { msgId = MessageDef.MSG_LoginCallback, data = data }); } //sdk Pay回调 public void PayCallback(string data) { //Debug.Log("Helper : PayCallback - data: " + data); proxy.PushMessage(new Message { msgId = MessageDef.MSG_PayCallback, data = data }); } //sdk SwitchAccount回调 public void SwitchAccountCallback(string data) { Debug.Log("Helper : PayCallback - data: " + data); proxy.PushMessage(new Message { msgId = MessageDef.MSG_SwitchAccountCallback, data = data }); } //sdk Logout回调 public void LogoutCallback(string data) { //Debug.Log("Helper : PayCallback - data: " + data); proxy.PushMessage(new Message { msgId = MessageDef.MSG_LogoutCallback, data = data }); } } }