LoyalGameSDKCallBack.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace LoyalSoftSDK
  5. {
  6. public class LoyalGameSDKCallBack : MonoBehaviour
  7. {
  8. private static LoyalGameSDKCallBack _instance;
  9. private static object _lock = new object();
  10. //初始化回调对象
  11. public static LoyalGameSDKCallBack InitCallback()
  12. {
  13. lock (_lock)
  14. {
  15. if (_instance == null)
  16. {
  17. GameObject callback = GameObject.Find("(loyalsdk_callback)");
  18. if (callback == null)
  19. {
  20. callback = new GameObject("(loyalsdk_callback)");
  21. UnityEngine.Object.DontDestroyOnLoad(callback);
  22. _instance = callback.AddComponent<LoyalGameSDKCallBack>();
  23. }
  24. else
  25. {
  26. _instance = callback.GetComponent<LoyalGameSDKCallBack>();
  27. }
  28. }
  29. return _instance;
  30. }
  31. }
  32. public void OnSDKCallBack(string jsonData)
  33. {
  34. Dictionary<string, object> backData=new Dictionary<string, object>();
  35. Debug.Log("new sdk call back:"+ jsonData);
  36. if (LoyalGameSDK.Instance.onSDKCallBack != null)
  37. {
  38. LoyalGameCallbackData data = new LoyalGameCallbackData(jsonData);
  39. //特殊化操作,检查到龙游SKD则调用ByUnitySDK了
  40. if (data.action.Equals("soft"))
  41. {
  42. switch (data.msg)
  43. {
  44. case "initSuccees":
  45. LoyalGameSDK.Instance.plantName = data.data;
  46. if (LoyalGameSDK.Instance.plantName.Equals("loyal"))
  47. {
  48. SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack);
  49. SoftSDKInstance.GetInstance().InitSDK("");
  50. }
  51. else if (LoyalGameSDK.Instance.plantName.Equals("test"))
  52. {
  53. SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack);
  54. SoftSDKInstance.GetInstance().InitSDK("test");
  55. }
  56. else
  57. {
  58. SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack);
  59. SoftSDKInstance.GetInstance().InitSDK(LoyalGameSDK.Instance.plantName);
  60. }
  61. break;
  62. case "paySuccees":
  63. case "payFaill":
  64. case "checkInstallApk":
  65. SoftSDKInstance.GetInstance().SendtoPayPanl(jsonData);
  66. break;
  67. }
  68. return;
  69. }
  70. else if (data.action.Equals("huawei"))
  71. {
  72. switch (data.msg)
  73. {
  74. case "initSuccees":
  75. LoyalGameSDK.Instance.plantName = data.data;
  76. {
  77. SoftSDKInstance.GetInstance().SetCallBack(OnSDKCallBack);
  78. SoftSDKInstance.GetInstance().InitSDK(LoyalGameSDK.Instance.plantName);
  79. }
  80. break;
  81. case "loginSuccees":
  82. backData = new Dictionary<string, object>();
  83. backData.Add("action", "loginSuccees");
  84. backData.Add("data", data.data);
  85. backData.Add("msg","huawei");
  86. SoftSDKInstance.GetInstance().SendCallBackMsg(MiniJSON.Json.Serialize(backData));
  87. break;
  88. case "paySuccees":
  89. backData = new Dictionary<string, object>();
  90. backData.Add("action", "paySuccees");
  91. backData.Add("data", data.data);
  92. backData.Add("msg", "huawei");
  93. SoftSDKInstance.GetInstance().SendCallBackMsg(MiniJSON.Json.Serialize(backData));
  94. break;
  95. case "payFaill":
  96. case "checkInstallApk":
  97. SoftSDKInstance.GetInstance().SendtoPayPanl(jsonData);
  98. break;
  99. }
  100. return;
  101. }
  102. LoyalGameSDK.Instance.onSDKCallBack.Invoke(data);
  103. }
  104. else
  105. {
  106. Debug.LogError("没有设置回调监听!");
  107. }
  108. }
  109. }
  110. }