using System.Collections; using System.Collections.Generic; using UnityEngine; namespace LoyalSoftSDK { public class LoyalGameSDKCallBack : MonoBehaviour { private static LoyalGameSDKCallBack _instance; private static object _lock = new object(); //初始化回调对象 public static LoyalGameSDKCallBack InitCallback() { lock (_lock) { if (_instance == null) { GameObject callback = GameObject.Find("(loyalsdk_callback)"); if (callback == null) { callback = new GameObject("(loyalsdk_callback)"); UnityEngine.Object.DontDestroyOnLoad(callback); _instance = callback.AddComponent(); } else { _instance = callback.GetComponent(); } } return _instance; } } public void OnSDKCallBack(string jsonData) { Dictionary backData=new Dictionary(); Debug.Log("new sdk call back:"+ jsonData); if (LoyalGameSDK.Instance.onSDKCallBack != null) { LoyalGameCallbackData data = new LoyalGameCallbackData(jsonData); //特殊化操作,检查到龙游SKD则调用ByUnitySDK了 if (data.action.Equals("soft")) { switch (data.msg) { case "initSuccees": LoyalGameSDK.Instance.plantName = data.data; if (LoyalGameSDK.Instance.plantName.Equals("loyal")) { SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack); SoftSDKInstance.GetInstance().InitSDK(""); } else if (LoyalGameSDK.Instance.plantName.Equals("test")) { SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack); SoftSDKInstance.GetInstance().InitSDK("test"); } else { SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack); SoftSDKInstance.GetInstance().InitSDK(LoyalGameSDK.Instance.plantName); } break; case "paySuccees": case "payFaill": case "checkInstallApk": SoftSDKInstance.GetInstance().SendtoPayPanl(jsonData); break; } return; } else if (data.action.Equals("huawei")) { switch (data.msg) { case "initSuccees": LoyalGameSDK.Instance.plantName = data.data; { SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack); SoftSDKInstance.GetInstance().InitSDK(LoyalGameSDK.Instance.plantName); } break; case "loginSuccees": backData = new Dictionary(); backData.Add("action", "loginSuccees"); backData.Add("data", data.data); backData.Add("msg","huawei"); SoftSDKInstance.GetInstance().SendCallBackMsg(MiniJSON.Json.Serialize(backData)); break; case "paySuccees": backData = new Dictionary(); backData.Add("action", "paySuccees"); backData.Add("data", data.data); backData.Add("msg", "huawei"); SoftSDKInstance.GetInstance().SendCallBackMsg(MiniJSON.Json.Serialize(backData)); break; case "payFaill": case "checkInstallApk": SoftSDKInstance.GetInstance().SendtoPayPanl(jsonData); break; } return; } LoyalGameSDK.Instance.onSDKCallBack.Invoke(data); } else { Debug.LogError("没有设置回调监听!"); } } } }