Bladeren bron

Merge branch 'master' of http://10.108.64.190:3000/gfg/client

zhaoyang 2 jaren geleden
bovenliggende
commit
173e47bdb7
100 gewijzigde bestanden met toevoegingen van 3444 en 118 verwijderingen
  1. 3 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  2. 6 11
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  3. 2 2
      GameClient/Assets/Game/HotUpdate/Controller/LogServerHelper.cs
  4. 1 1
      GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs
  5. 12 2
      GameClient/Assets/Game/HotUpdate/ETCodes/Hotfix/App/Login/LoginHelper.cs
  6. 2 1
      GameClient/Assets/Game/HotUpdate/Game.HotUpdate.asmdef
  7. 0 2
      GameClient/Assets/Game/HotUpdate/GameConfig.cs
  8. 0 23
      GameClient/Assets/Game/HotUpdate/Platform/PlatformManager.cs
  9. 24 0
      GameClient/Assets/Game/HotUpdate/Platform/QDBiliBiliManager.cs
  10. 1 1
      GameClient/Assets/Game/HotUpdate/Platform/QDBiliBiliManager.cs.meta
  11. 152 0
      GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs
  12. 1 1
      GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs.meta
  13. 95 0
      GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs
  14. 11 0
      GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs.meta
  15. 30 33
      GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs
  16. 11 0
      GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs.meta
  17. 62 41
      GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs
  18. 8 0
      GameClient/Assets/Game/HotUpdate/com.meta
  19. 8 0
      GameClient/Assets/Game/HotUpdate/com/bilibili.meta
  20. 317 0
      GameClient/Assets/Game/HotUpdate/com/bilibili/GSCCallbackListerner.cs
  21. 11 0
      GameClient/Assets/Game/HotUpdate/com/bilibili/GSCCallbackListerner.cs.meta
  22. 346 0
      GameClient/Assets/Game/HotUpdate/com/bilibili/GSCSdkInterface.cs
  23. 11 0
      GameClient/Assets/Game/HotUpdate/com/bilibili/GSCSdkInterface.cs.meta
  24. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839.meta
  25. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk.meta
  26. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives.meta
  27. 58 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs
  28. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs.meta
  29. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean.meta
  30. 140 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs
  31. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs.meta
  32. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener.meta
  33. 53 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs
  34. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs.meta
  35. 50 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs
  36. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs.meta
  37. 48 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs
  38. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs.meta
  39. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs.meta
  40. 168 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs
  41. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs.meta
  42. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean.meta
  43. 77 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs
  44. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs.meta
  45. 79 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs
  46. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs.meta
  47. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener.meta
  48. 33 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs
  49. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs.meta
  50. 36 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs
  51. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs.meta
  52. 38 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs
  53. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs.meta
  54. 36 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs
  55. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs.meta
  56. 50 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs.meta
  58. 51 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs
  59. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs.meta
  60. 50 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs
  61. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs.meta
  62. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common.meta
  63. 64 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs
  64. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs.meta
  65. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login.meta
  66. 124 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs
  67. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs.meta
  68. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean.meta
  69. 73 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs
  70. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs.meta
  71. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener.meta
  72. 31 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs
  73. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs.meta
  74. 82 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs
  75. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs.meta
  76. 46 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs
  77. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs.meta
  78. 68 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs
  79. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs.meta
  80. 51 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs
  81. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs.meta
  82. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid.meta
  83. 51 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs
  84. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs.meta
  85. 31 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs
  86. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs.meta
  87. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay.meta
  88. 78 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs
  89. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs.meta
  90. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean.meta
  91. 63 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs
  92. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs.meta
  93. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener.meta
  94. 39 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs
  95. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs.meta
  96. 61 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs
  97. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs.meta
  98. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single.meta
  99. 35 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs
  100. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs.meta

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -2,6 +2,9 @@ namespace GFGGame
 {
     public class ConstMessage
     {
+        public const string ON_PLATFORM_SDK_INITED = "INIT_PLATFORM_SDK_SUCCESS";
+        public const string ON_PLATFORM_SDK_LOGINED = "ON_PLATFORM_SDK_LOGINED";
+
         public const string DRESS_UP_SCORE_CHANGED = "DRESS_UP_SCORE_CHANGED";
         public const string ROLE_GOLD_CHANGED = "ROLE_GOLD_CHANGED";
         public const string ITEM_CHANGED = "ITEM_CHANGED";

+ 6 - 11
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -38,8 +38,6 @@ namespace GFGGame
             {
                 //初始化游戏配置
                 GameConfig.InitData(data);
-                //初始化平台配置
-                PlatformManager.InitPlatform();
                 //显示登录
                 LoginController.ShowLogin();
             });
@@ -96,7 +94,7 @@ namespace GFGGame
 
         public static async ETTask PreEnterGameAsync()
         {
-            PlatformTapManager.Instance.OnEnterGame();
+            QDTapTapManager.Instance.OnEnterGame();
             RoleDataHandler.StartUpdate();
 
             GFGUIPackage.AddPackage(ResPathUtil.GetUIPackagePath("CommonGame"));
@@ -144,7 +142,7 @@ namespace GFGGame
         public static void QuitToLoginView(bool logout)
         {
             GameGlobal.DataInited = false;
-            PlatformTapManager.Instance.OnQuitGame();
+            QDManager.OnQuitToLoginView();
             GameGlobal.isVisitor = false;
             GameGlobal.antiAddiction = true;
             GameGlobal.userId = 0;
@@ -176,20 +174,17 @@ namespace GFGGame
             GameGlobal.zoneScene.GetComponent<AccountInfoComponent>()?.Clear();
             if (logout)
             {
-                Logout().Coroutine();
+                Logout();
             }
             ViewManager.Hide<GuideView>();
             ViewManager.Show<LoginView>(null, null, true);
-            LoginController.Logout();
+            LoginController.OnLogout();
         }
 
         //注销
-        public static async ETTask Logout()
+        public static void Logout()
         {
-            if (PlatformManager.IsTaptap)
-            {
-                await TDSUser.Logout();
-            }
+            QDManager.Logout();
             PlayerPrefs.DeleteKey(GameConst.PASSWORD_LAST_LOGIN_KEY);
         }
 

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Controller/LogServerHelper.cs

@@ -17,7 +17,7 @@ namespace GFGGame
             logData.DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
             logData.PlatFormId = LauncherConfig.platformId;
             logData.ServerId = zoneScene.GetComponent<ServerInfosComponent>().CurrentServerId;
-            logData.ChannelId = GameConfig.ChannelId;
+            logData.ChannelId = LauncherConfig.ChannelId;
             logData.Account = SystemInfo.deviceUniqueIdentifier;
             logData.EventType = node;
             var logStr = zoneScene.GetComponent<LogSplicingComponent>().LogObjectToStr(logData);
@@ -36,7 +36,7 @@ namespace GFGGame
             logData.EventId = GenerateIDUtil.GenerateId();
             logData.DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
             logData.PlatFormId = LauncherConfig.platformId;
-            logData.ChannelId = GameConfig.ChannelId;
+            logData.ChannelId = LauncherConfig.ChannelId;
             logData.ServerId = zoneScene.GetComponent<ServerInfosComponent>().CurrentServerId;
             logData.PlayerId = zoneScene.GetComponent<RoleInfosComponent>().CurrentRoleId;
             logData.PlayerName = zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRoleName();

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs

@@ -135,7 +135,7 @@ namespace GFGGame
             EventAgent.DispatchEvent(ConstMessage.LOGIN_FAIL);
         }
 
-        public static void Logout()
+        public static void OnLogout()
         {
             GameGlobal.zoneScene.GetComponent<SessionComponent>().AccountSession?.Dispose();
             GameGlobal.zoneScene.GetComponent<SessionComponent>().GateSession?.Dispose();

+ 12 - 2
GameClient/Assets/Game/HotUpdate/ETCodes/Hotfix/App/Login/LoginHelper.cs

@@ -16,7 +16,9 @@ namespace ET
                 a2CLoginAccount = (A2C_LoginAccount)await accountSession.Call(new C2A_LoginTest()
                 {
                     Account = account,
-                    Version = GameConst.SERVER_VERSION
+                    Version = GameConst.SERVER_VERSION,
+                    PlatformId = LauncherConfig.platformId,
+                    ChannelId = LauncherConfig.ChannelId
                 });
             }
             catch (Exception e)
@@ -98,7 +100,15 @@ namespace ET
                     //ÃÜÂë½ûÖ¹Ã÷ÎÄ´«Êä
                     var passwordMD5 = MD5Helper.stringMD5(password);
                     r2C_Register = (A2C_Register)await session.Call(new C2A_Register()
-                    { Account = account, Password = passwordMD5, Name = name, IdentityNum = identityNum, Code = code });
+                    { 
+                        Account = account, 
+                        Password = passwordMD5, 
+                        Name = name, 
+                        IdentityNum = identityNum, 
+                        Code = code,
+                        PlatformId = LauncherConfig.platformId,
+                        ChannelId = LauncherConfig.ChannelId
+                    });
                     if (r2C_Register.Error != ErrorCode.ERR_Success)
                     {
                         return r2C_Register.Error;

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Game.HotUpdate.asmdef

@@ -4,7 +4,8 @@
     "references": [
         "GUID:065d51621aad9d6498c45bc251a1d8e4",
         "GUID:7a41fac89c3ce014e99efb3723e6a98e",
-        "GUID:7b430a36dc40f416cbc65566155a0e56"
+        "GUID:78b4eab872eac4aac8c45425f1f51c80",
+        "GUID:9b1c19877f4294a9cb33ff38fc9f1c83"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],

+ 0 - 2
GameClient/Assets/Game/HotUpdate/GameConfig.cs

@@ -12,8 +12,6 @@ namespace GFGGame
         public static string PlatformName;
         public static string logApiReportUrl;
         public static int showGM;
-        //渠道id
-        public static int ChannelId = 1;
 
         public static void InitData(string json)
         {

+ 0 - 23
GameClient/Assets/Game/HotUpdate/Platform/PlatformManager.cs

@@ -1,23 +0,0 @@
-namespace GFGGame
-{
-    public class PlatformManager
-    {
-        public static void InitPlatform()
-        {
-            switch(GameConfig.PlatformName)
-            {
-                case PlatformName.TapTap:
-                    PlatformTapManager.Instance.InitSDK();
-                    break;
-            }
-        }
-
-        public static bool IsTaptap
-        {
-            get
-            {
-                return GameConfig.PlatformName == PlatformName.TapTap;
-            }
-        }
-    }
-}

+ 24 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDBiliBiliManager.cs

@@ -0,0 +1,24 @@
+namespace GFGGame
+{
+    public class QDBiliBiliManager : SingletonBase<QDBiliBiliManager>
+    {
+
+        public void InitSDK()
+        {
+            string merchant_id = "1060";
+            string app_id = "8192";
+            string server_id = "7360";
+            string app_key = "3a54f1fbe34940fba256954dc9d66e3e";
+            string sandboxKey = "";//ios特有
+            GSCSdkInterface.init(merchant_id, app_id, server_id, app_key, sandboxKey);
+            //结果通过类GSCCallbackListerner中的回调触发
+        }
+
+        public void Login()
+        {
+            ViewManager.Show<ModalStatusView>("登录中...");
+            GSCSdkInterface.login();
+            //结果通过类GSCCallbackListerner中的回调触发
+        }
+    }
+}

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Platform/PlatformManager.cs.meta → GameClient/Assets/Game/HotUpdate/Platform/QDBiliBiliManager.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: fbe0e78eab964c444a536a2c949ec684
+guid: eab76b05a7fe78047bee80c21e740505
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 152 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs

@@ -0,0 +1,152 @@
+using System;
+using com.m3839.sdk;
+using com.m3839.sdk.login;
+using com.m3839.sdk.login.bean;
+using com.m3839.sdk.login.listener;
+using ET;
+using TapTap.Bootstrap;
+using UnityEngine;
+
+namespace GFGGame
+{
+    public class QDHYKBManager : SingletonBase<QDHYKBManager>
+    {
+
+        public void InitSDK()
+        {
+            // 游戏屏幕方向 (Game Screen Orientation)
+            int screenOrienation = HykbContext.SCREEN_PORTRAIT;
+            // 初始化回调监听(Init callback)
+            HykbLogin.SetUserListener(new HykbUserListenerProxy());
+            HykbLogin.SetAntiListener(new HykbAntiListenerProxy());
+            HykbInitListenerProxy proxy = new HykbInitListenerProxy();
+            HykbLogin.Init("25374", screenOrienation, proxy);
+        }
+
+        /// <summary>
+        /// 登录
+        /// </summary>
+        public void Login()
+        {
+            ViewManager.Show<ModalStatusView>("登录中...");
+            HykbUser user = HykbLogin.GetUser();
+            Log.Debug($"sdk manager Login {user == null}");
+            if (user != null)
+            {
+                EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, user.getUserId());
+            }
+            else
+            {
+                Log.Debug($"sdk Login");
+                HykbLogin.Login();
+            }
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        public void DoSwitchAccount()
+        {
+            HykbLogin.SwitchAccount();
+        }
+
+        /// <summary>
+        /// 获取用户信息
+        /// </summary>
+        public void GetUser()
+        {
+            // 获取当前用户信息(Get current User information)
+            HykbUser user = HykbLogin.GetUser();
+            if (user != null)
+            {
+                //ShowText.text = user.toString();
+            }
+
+        }
+
+        //回到登录界面,不退出账号
+        public void OnQuitToLoginView()
+        {
+            
+            
+        }
+
+        public void Logout()
+        {
+            // 登出 (Logout)
+            HykbLogin.Logout();
+        }
+    }
+
+
+    class HykbInitListenerProxy : HykbV2InitListener
+    {
+        public HykbInitListenerProxy()
+        {
+            
+        }
+
+        public override void OnSucceed()
+        {
+            Log.Debug("HykbInitListenerProxy OnSucceed");
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
+        }
+
+        public override void OnFailed(int code, string message)
+        {
+            Log.Debug("HykbInitListenerProxy OnFailed code: " + code + " - message:" + message);
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, false);
+        }
+    }
+
+    /// <summary>
+    /// 用户信息相关的监听(登录和切换账号)
+    /// </summary>
+    class HykbUserListenerProxy : HykbUserListener
+    {
+
+        public HykbUserListenerProxy()
+        {
+            
+        }
+
+        public override void OnLoginFailed(int code, string message)
+        {
+            //instance.ShowText.text = "code:" + code + " -message:" + message;
+            Log.Debug($"OnLoginFailed code: " + code + " - message:" + message);
+            //PromptController.Instance.ShowFloatTextPrompt(message);
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
+        }
+
+        public override void OnLoginSucceed(HykbUser user)
+        {
+            //instance.ShowText.text = "" + user.getNick();
+
+            Log.Debug("OnLoginSucceed");
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, user.getUserId());
+        }
+
+        public override void OnSwitchUser(HykbUser user)
+        {
+            Log.Debug("OnSwitchUser");
+            //instance.ShowText.text = "" + user.getNick();
+        }
+    }
+
+    class HykbAntiListenerProxy : HykbAntiListener
+    {
+        public override void OnAnti(int code, string message)
+        {
+            Log.Debug($"OnAnti code {code} message {message}");
+            if(code == 100)
+            {
+                
+            }
+            else
+            {
+                HykbLogin.Logout();
+            }
+        }
+    }
+
+}

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Platform/PlatformTapManager.cs.meta → GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 20b04a6e09277ab48880123e8862a4ed
+guid: 7dd86f82c164f7a40993ec47aa21815b
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 95 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs

@@ -0,0 +1,95 @@
+using System;
+using ET;
+using TapTap.Bootstrap;
+
+namespace GFGGame
+{
+    
+    public class QDManager
+    {
+        public static Action<bool> InitResultCallback;
+
+        public static void InitPlatform()
+        {
+            ViewManager.Show<ModalStatusView>("正在初始化...");
+            switch (LauncherConfig.ChannelId)
+            {
+                case ChannelID.TapTap:
+                    QDTapTapManager.Instance.InitSDK();
+                    break;
+                case ChannelID.HYKB:
+                    QDHYKBManager.Instance.InitSDK();
+                    break;
+                case ChannelID.BiliBili:
+                    QDBiliBiliManager.Instance.InitSDK();
+                    break;
+                default:
+                    EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
+                    break;
+            }
+        }
+
+        //回到登录界面,不退出账号
+        public static void OnQuitToLoginView()
+        {
+            switch (LauncherConfig.ChannelId)
+            {
+                case ChannelID.TapTap:
+                    QDTapTapManager.Instance.OnQuitToLoginView();
+                    break;
+                case ChannelID.HYKB:
+                    QDHYKBManager.Instance.OnQuitToLoginView();
+                    break;
+                case ChannelID.BiliBili:
+
+                    break;
+                default:
+                    
+                    break;
+            }
+        }
+
+        public static void Logout()
+        {
+            switch (LauncherConfig.ChannelId)
+            {
+                case ChannelID.TapTap:
+                    QDTapTapManager.Instance.Logout();
+                    break;
+                case ChannelID.HYKB:
+                    QDHYKBManager.Instance.Logout();
+                    break;
+                case ChannelID.BiliBili:
+
+                    break;
+                default:
+
+                    break;
+            }
+        }
+
+        public static bool IsTaptap
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == ChannelID.TapTap;
+            }
+        }
+
+        public static bool IsHYKB
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == ChannelID.HYKB;
+            }
+        }
+
+        public static bool IsBiliBili
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == ChannelID.BiliBili;
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c4d8555f5ba9acf429cb3c82fa59470c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 30 - 33
GameClient/Assets/Game/HotUpdate/Platform/PlatformTapManager.cs → GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs

@@ -4,20 +4,22 @@ using TapTap.Common;
 using TapTap.TapDB;
 using Plugins.AntiAddictionUIKit;
 using System;
+using System.Threading.Tasks;
 using UnityEngine;
 
 namespace GFGGame
 {
-    public class PlatformTapManager : SingletonBase<PlatformTapManager>
+    public class QDTapTapManager : SingletonBase<QDTapTapManager>
     {
         private readonly string ClientID = "K7bDyPGYlVx2AAtk6q";
         public void InitSDK()
         {
             Log.Debug($"tap InitSDK");
-            if (!PlatformManager.IsTaptap)
+            if (!QDManager.IsTaptap)
             {
                 return;
             }
+
             var config = new TapConfig.Builder()
                 .ClientID(ClientID)
                 .ClientToken("fjwWBtibB4Dj3UjyRQxK2tZ3f8fGNgg14tcRW38D")
@@ -26,40 +28,31 @@ namespace GFGGame
                 .TapDBConfig(true, "tap", null, true)
                 .ConfigBuilder();
             TapBootstrap.Init(config);
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
         }
 
-        public async ETTask<bool> LoginCache()
+        public async Task Login()
         {
-            Log.Debug($"tap LoginCache");
-            if (!PlatformManager.IsTaptap)
+            Log.Debug($"tap login");
+            if (!QDManager.IsTaptap)
             {
-                return false;
+                EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
+                return;
             }
             ViewManager.Show<ModalStatusView>("登录中...");
             TDSUser tdsUser = await TDSUser.GetCurrent();
             if (null != tdsUser)
-            {
+{
+                EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, tdsUser.ObjectId);
                 InitAntiAddiction(tdsUser.ObjectId);
-                return true;
-            }
-            ViewManager.Hide<ModalStatusView>();
-            return false;
-        }
-
-        public async ETTask<bool> Login()
-        {
-            Log.Debug($"tap login");
-            if (!PlatformManager.IsTaptap)
-            {
-                return false;
+                return;
             }
-            ViewManager.Show<ModalStatusView>("登录中...");
             try
             {
-                var tdsUser = await TDSUser.LoginWithTapTap();
+                tdsUser = await TDSUser.LoginWithTapTap();
                 Log.Debug($"tap login Success:{tdsUser}");
+                EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, tdsUser.ObjectId);
                 InitAntiAddiction(tdsUser.ObjectId);
-                return true;
             }
             catch (Exception e)
             {
@@ -68,6 +61,8 @@ namespace GFGGame
                     if (tapError.code == (int)TapErrorCode.ERROR_CODE_BIND_CANCEL) // 取消登录
                     {
                         Log.Debug("登录取消");
+                        ViewManager.Hide<ModalStatusView>();
+                        return;
                     }
                     else
                     {
@@ -80,14 +75,14 @@ namespace GFGGame
                     Log.Error($"Login Error:{e}");
                     PromptController.Instance.ShowFloatTextPrompt("登录异常");
                 }
+                EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
             }
-            ViewManager.Hide<ModalStatusView>();
-            return false;
         }
 
         public void InitAntiAddiction(string objectId)
         {
             Log.Debug($"tap InitAntiAddiction objectId {objectId}");
+            ViewManager.Show<ModalStatusView>("登录中...");
             string gameIdentifier = ClientID;
             // 是否启用时长限制功能
             bool useTimeLimit = true;
@@ -102,13 +97,11 @@ namespace GFGGame
                     int code = antiAddictionCallbackData.code;
                     MsgExtraParams extras = antiAddictionCallbackData.extras;
                     Log.Debug($"tap antiAddictionCallbackData code {code} extras title \n{extras?.title} description \n{extras?.description}");
+                    ViewManager.Hide<ModalStatusView>();
                     // 根据 code 不同提示玩家不同信息,详见下面的说明
                     if (code == 500)
                     {
                         ET.Log.Debug("玩家登录后判断当前玩家可以进行游戏");
-                        // 开始计时
-                        AntiAddictionUIKit.EnterGame();
-                        LoginController.LoginTest(objectId).Coroutine();
                     }
                     else if(code == 1030)
                     {
@@ -146,10 +139,12 @@ namespace GFGGame
         public void OnEnterGame()
         {
             Log.Debug($"tap OnEnterGame");
-            if (!PlatformManager.IsTaptap)
+            if (!QDManager.IsTaptap)
             {
                 return;
             }
+            // 开始计时
+            AntiAddictionUIKit.EnterGame();
             var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
             var accountInfoComponent = GameGlobal.zoneScene.GetComponent<AccountInfoComponent>();
             var roleInfosComponent = GameGlobal.zoneScene.GetComponent<RoleInfosComponent>();
@@ -161,15 +156,17 @@ namespace GFGGame
             Log.Debug($"tap TapDB \nSetUser {accountInfoComponent.Account} \nSetName {currentRole.Name} \nSetLevel {RoleDataManager.lvl} \nSetServer {serverInfosComponent.GetCurrentServerInfo().ServerName}");
         }
 
-        public void OnQuitGame()
+        //回到登录界面,不退出账号
+        public void OnQuitToLoginView()
         {
             Log.Debug($"tap OnQuitGame");
-            if (!PlatformManager.IsTaptap)
-            {
-                return;
-            }
             TapDB.ClearUser(); 
             AntiAddictionUIKit.LeaveGame();
+        }
+
+        public void Logout()
+        {
+            TDSUser.Logout();
             AntiAddictionUIKit.Logout();
         }
     }

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dacaeb85b5a644f488c91b69ef7b69f2
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 62 - 41
GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs

@@ -5,6 +5,7 @@ using ET;
 using TapTap.Bootstrap;
 using System;
 using TapTap.Common;
+using System.Threading.Tasks;
 
 namespace GFGGame
 {
@@ -49,7 +50,7 @@ namespace GFGGame
             _ui.m_btnStart.onClick.Add(OnClickBtnStart);
             _ui.m_btnLogout.onClick.Add(OnClickBtnLogout);
             _ui.m_btnAge.onClick.Add(OnClickBtnAge);
-            _ui.m_btnTapLogin.onClick.Add(OnClickBtnTabLogin);
+            _ui.m_btnTapLogin.onClick.Add(OnClickBtnStart);
 
             _ui.m_imgLogo.visible = LauncherConfig.netType != LauncherConfig.EnumNetType.TEMP;
 
@@ -62,6 +63,8 @@ namespace GFGGame
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.SERVER_CHANGE, OnSeverChangeListener);
             EventAgent.AddEventListener(ConstMessage.LOGIN_SUCCESS, OnLoginSuccess);
+            EventAgent.AddEventListener(ConstMessage.ON_PLATFORM_SDK_INITED, OnPlatformInitet);
+            EventAgent.AddEventListener(ConstMessage.ON_PLATFORM_SDK_LOGINED, OnPlatformLogined);
         }
         protected override void OnShown()
         {
@@ -78,8 +81,9 @@ namespace GFGGame
             _ui.m_btnStart.visible = false;
             _ui.m_btnTapLogin.visible = false;
             _ui.m_btnLogout.visible = false;
-            InitLoginStatus(serverInfosComponent).Coroutine();
 
+            //初始化平台配置
+            QDManager.InitPlatform();
         }
 
         protected override void OnHide()
@@ -97,34 +101,8 @@ namespace GFGGame
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.SERVER_CHANGE, OnSeverChangeListener);
             EventAgent.RemoveEventListener(ConstMessage.LOGIN_SUCCESS, OnLoginSuccess);
-        }
-        private async ETTask InitLoginStatus(ServerInfosComponent serverInfosComponent)
-        {
-            if (PlatformManager.IsTaptap)//taptap平台
-            {
-                var success = await PlatformTapManager.Instance.LoginCache();
-                _ui.m_btnTapLogin.visible = !success;
-            }
-            else//自有登录
-            {
-                _ui.m_btnStart.visible = true;
-                //尝试自动登录
-                if (serverInfosComponent.ServerInfoList.Count <= 0)
-                {
-                    OnClickBtnStart();
-                }
-            }
-        }
-
-        private void OnClickBtnTabLogin()
-        {
-            OnClickBtnTabLoginAsync().Coroutine();
-        }
-
-        private async ETTask OnClickBtnTabLoginAsync()
-        {
-            var success = await PlatformTapManager.Instance.Login();
-            _ui.m_btnTapLogin.visible = !success;
+            EventAgent.RemoveEventListener(ConstMessage.ON_PLATFORM_SDK_INITED, OnPlatformInitet);
+            EventAgent.RemoveEventListener(ConstMessage.ON_PLATFORM_SDK_LOGINED, OnPlatformLogined);
         }
 
         private void UpdateServer(ServerInfo info)
@@ -141,6 +119,41 @@ namespace GFGGame
             LogServerHelperHttp.SendNodeLog((int)LogNode.ShowSelectServer);
         }
 
+        private void OnPlatformInitet(EventContext context)
+        {
+            ViewManager.Hide<ModalStatusView>();
+            var success = (bool)context.data;
+            Debug.Log($"InitPlatform success {success}");
+            _ui.m_btnTapLogin.visible = QDManager.IsTaptap;
+            if (success)
+            {
+                //尝试自动登录
+                OnClickBtnStart();
+            }
+            else
+            {
+                AlertSystem.Show("初始化平台sdk失败!")
+                .SetRightButton(true, "重试", (t) => { QDManager.InitPlatform(); });
+            }
+            
+        }
+
+        private void OnPlatformLogined(EventContext context)
+        {
+            var account = (string)context.data;
+            if(!string.IsNullOrEmpty(account))
+            {
+                _ui.m_btnTapLogin.visible = false;
+                LoginController.LoginTest(account).Coroutine();
+            }
+            else
+            {
+                ViewManager.Hide<ModalStatusView>();
+                //尝试自动登录
+                OnClickBtnStart();
+            }
+        }
+
         private void OnLoginSuccess(EventContext context)
         {
             _ui.m_btnLogout.visible = true;
@@ -169,14 +182,22 @@ namespace GFGGame
 
         private void OnClickBtnStart()
         {
-            if (PlatformManager.IsTaptap)//taptap平台
+            var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
+            if (serverInfosComponent.ServerInfoList.Count <= 0)
             {
-                LoginController.GetRoles().Coroutine();
-            }
-            else
-            {
-                var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
-                if (serverInfosComponent.ServerInfoList.Count <= 0)
+                if (QDManager.IsTaptap)
+                {
+                    QDTapTapManager.Instance.Login();
+                }
+                else if (QDManager.IsHYKB)
+                {
+                    QDHYKBManager.Instance.Login();
+                }
+                else if(QDManager.IsBiliBili)
+                {
+                    QDBiliBiliManager.Instance.Login();
+                }
+                else
                 {
                     bool login = GameController.CheckLoginCache(true);
                     if (!login)
@@ -184,10 +205,10 @@ namespace GFGGame
                         ViewManager.Show<LoginInputView>();
                     }
                 }
-                else
-                {
-                    LoginController.GetRoles().Coroutine();
-                }
+            }
+            else
+            {
+                LoginController.GetRoles().Coroutine();
             }
         }
 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 96c5999ddb7651c458d76556294b219b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/bilibili.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22acebb69b28f480c964ff4aece6317c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 317 - 0
GameClient/Assets/Game/HotUpdate/com/bilibili/GSCCallbackListerner.cs

@@ -0,0 +1,317 @@
+using UnityEngine;
+using LitJson;
+using GFGGame;
+
+public class GSCCallbackListerner : MonoBehaviour {
+
+	public const int StatusCode_Success      = 10010;
+	
+	public const string CALLBACKTYPE_INIT = "init"; //初始化
+    public const string CALLBACKTYPE_PAY = "pay";  //支付
+    public const string CALLBACKTYPE_SDKTYPE = "sdkType"; //获取sdktype
+    public const string CALLBACKTYPE_CHANNELID = "channelId"; //获取渠道id
+    public const string CALLBACKTYPE_FINGERPRINT = "fingerprint"; //获取设备指纹
+    public const string CALLBACKTYPE_ISLOGIN = "isLogin";  //获取是否登录
+    public const string CALLBACKTYPE_LOGIN = "login";  //登录
+    public const string CALLBACKTYPE_LOGOUT = "logout";  //登出
+    public const string CALLBACKTYPE_GETUSERINFO = "getUserInfo";  //获取用户信息
+    public const string CALLBACKTYPE_ACCOUNTPROTECT = "accountProtect"; //账号保护
+    public const string CALLBACKTYPE_AGREEMENTWITHLICENCE = "agreementWithLicence"; //用户协议
+    public const string CALLBACKTYPE_AGREEMENTWITHPRIVACY = "agreementWithPrivacy"; //隐私政策
+    public const string CALLBACKTYPE_GEETESTVIEW = "geetestView"; //人机验证
+    public const string CALLBACKTYPE_ACCOUNTINVALID = "AccountInvalid"; //账号异常
+    public const string CALLBACKTYPE_ISREALNAMEAUTH = "isRealNameAuth"; //获取是否还没
+    public const string CALLBACKTYPE_EXIT = "exit"; //退出
+    public const string CALLBACKTYPE_QUIT = "quit"; //退出游戏杀死进程的那种
+	
+	public void OnGSCSdkCallback (string jsonstr)
+	{
+		Debug.Log("OnGSCSdkCallback message: jsonstr=" + jsonstr);
+		JsonData json = JsonMapper.ToObject (jsonstr);
+		string callbackType = (string)json ["callbackType"];
+		int code = (int)json ["code"];
+		JsonData data = json ["data"];
+		switch (callbackType) {
+		case CALLBACKTYPE_INIT:
+			OnInitCallback(code, (string)data);
+			break;
+		case CALLBACKTYPE_PAY:
+			OnPayCallback(code, (string)data);
+			break;
+		case CALLBACKTYPE_SDKTYPE:
+			OnSdkTypeCallback(code, (string)data);
+			break;
+		case CALLBACKTYPE_CHANNELID:
+			OnChannelIdCallback(code, (string)data);
+			break;
+		case CALLBACKTYPE_FINGERPRINT:
+			OnFingerPrintCallback(code, (string)data);
+			break;	
+		case CALLBACKTYPE_ISLOGIN:
+			OnIsLoginCallback(code, data);
+			break;	
+		case CALLBACKTYPE_ISREALNAMEAUTH:
+			OnIsRealNameAuthCallback(code, data);
+			break;	
+		case CALLBACKTYPE_LOGIN:
+			OnLoginCallback(code,(string)data);
+			break;
+		case CALLBACKTYPE_LOGOUT:
+			OnLogoutCallback(code, (string)data);
+			break;
+		case CALLBACKTYPE_GETUSERINFO:
+			OnGetUserInfoCallback(code,(string)data);
+			break;
+		case CALLBACKTYPE_ACCOUNTPROTECT:
+			OnAccountProtectCallback(code,(string)data);
+			break;	
+		case CALLBACKTYPE_AGREEMENTWITHLICENCE:
+			OnAgreementWithLicenceCallback(code,(string)data);
+			break;
+		case CALLBACKTYPE_AGREEMENTWITHPRIVACY:
+			OnAgreementWithPrivacyCallback(code,(string)data);
+			break;			
+		case CALLBACKTYPE_GEETESTVIEW:
+			OnGeetestViewCallback(code,(string)data);
+			break;
+		case CALLBACKTYPE_ACCOUNTINVALID:
+			OnAccountInvalidCallback(code, (string)data);
+			break;
+		case CALLBACKTYPE_EXIT:
+			OnExitCallback((string)data);
+			break;
+		case CALLBACKTYPE_QUIT:
+			OnQuitCallback ((string)data);
+			break;
+		default:
+			return;
+		}
+	}
+
+	//初始化回调
+	public virtual void OnInitCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnInitCallback1" + data);
+		if (code == StatusCode_Success) {
+			EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
+        } else
+		{
+			EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, false);
+			GSCSdkInterface.showToast("OnInitCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+
+	//支付回调
+	public void OnPayCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnPayCallback" + data);
+		if (code == StatusCode_Success) {
+			JsonData json = JsonMapper.ToObject (data);
+			string out_trade_no = (string)json["out_trade_no"];
+			string bs_trade_no = (string)json["bs_trade_no"];
+			GSCSdkInterface.showToast("OnPayCallbackSuccess " + " out_trade_no: " + out_trade_no + " bs_out_trade_no: " + bs_trade_no);
+		} else {
+			JsonData json = JsonMapper.ToObject (data);
+			string message = (string)json["message"];
+			string out_trade_no = (string)json["out_trade_no"];
+			GSCSdkInterface.showToast("OnPayCallbackError " + " code: " + code + "out_trade_no" + out_trade_no + " message: +" + message);
+		}
+	}
+
+	//获取sdk_type回调
+	public void OnSdkTypeCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnSdkTypeCallback" + data);
+		GSCSdkInterface.showToast("OnSdkTypeCallback " + " sdkType: " + data);
+	}
+
+	//获取渠道id回调
+	public void OnChannelIdCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnChannelIdCallback" + data);
+		GSCSdkInterface.showToast("OnChannelIdCallback " + " channelId: " + data);
+	}
+
+	//获取设备指纹信息回调
+	public void OnFingerPrintCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnFingerPrintCallback" + data);
+		GSCSdkInterface.showToast("OnFingerPrintCallback " + " fingerPrint: " + data);
+	}
+
+	//获取是否登录回调
+	public void OnIsLoginCallback (int code, JsonData data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnIsLoginCallback" + data);
+		if (code == StatusCode_Success) {
+			bool isLogin = (bool)data;
+			GSCSdkInterface.showToast("OnIsLoginCallbackSuccess " + " isLogin: " + isLogin);
+		} else {
+			string message = (string)data;
+			GSCSdkInterface.showToast("OnIsLoginCallbackError " + " code: " + code + " message: +" + message);
+		}
+	}
+	
+	//获取是否实名认证回调
+	public void OnIsRealNameAuthCallback (int code, JsonData data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnIsRealNameAuthCallback" + data);
+		if (code == StatusCode_Success) {
+			bool isRealName = (bool)data;
+			GSCSdkInterface.showToast("OnIsRealNameAuthCallback " + " isRealName: " + isRealName);
+		} else {
+			string message = (string)data;
+			GSCSdkInterface.showToast("OnIsRealNameAuthCallback " + " code: " + code + " message: +" + message);
+		}
+	}
+
+	//获取登录回调
+	public void OnLoginCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnLoginCallback" + data);
+		if (code == StatusCode_Success) {
+			JsonData json = JsonMapper.ToObject (data);
+			string username = (string)json["username"];
+			string access_token = (string)json["access_token"];
+			string uid = (string)json["uid"];
+			EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, uid);
+			//Demo.uid = int.Parse(uid);
+			//Demo.username = username;
+			GSCSdkInterface.showToast("OnLoginCallbackSuccess " + " uid: " + uid + " username: " + username + " access_token: " + access_token);
+		} else
+		{
+			EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
+			GSCSdkInterface.showToast("OnLoginCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+	
+	//获取登出回调
+	public void OnLogoutCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnLogoutCallback" + data);
+		if (code == StatusCode_Success) {
+			GSCSdkInterface.showToast("OnLogoutCallbackSuccess " + " logout: " + data);
+		} else {
+			GSCSdkInterface.showToast("OnLogoutCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+	
+	//获取用户信息回调
+	public void OnGetUserInfoCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnGetUserInfoCallback" + data);
+		if (code == StatusCode_Success) {
+			JsonData json = JsonMapper.ToObject (data);
+			string username = (string)json["username"];
+			string lastLoginTime = (string)json["lastLoginTime"];
+			string avatar = (string)json["avatar"];
+			string s_avatar = (string)json["s_avatar"];
+			GSCSdkInterface.showToast("OnGetUserInfoCallbackSuccess " + " username: " + username + " lastLoginTime: " + lastLoginTime
+			                    + " avatar: " + avatar + " s_avatar:" + s_avatar);
+		} else {
+			GSCSdkInterface.showToast("OnGetUserInfoCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+
+	//账号保护回调
+	public void OnAccountProtectCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnAccountProtectCallback" + data);
+		if (code == StatusCode_Success) {
+			JsonData json = JsonMapper.ToObject (data);
+			string result = (string)json["result"];
+			GSCSdkInterface.showToast("OnAccountProtectCallbackSuccess " + " result: " + result);
+		} else {
+			GSCSdkInterface.showToast("OnAccountProtectCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+
+	//用户协议回调
+	public void OnAgreementWithLicenceCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnAgreementWithLicenceCallback" + data);
+		if (code == StatusCode_Success) {
+			GSCSdkInterface.showToast("OnAgreementWithLicenceCallbackSuccess " + " data: " + data);
+		} else {
+			GSCSdkInterface.showToast("OnAgreementWithLicenceCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+
+	//隐私政策回调
+	public void OnAgreementWithPrivacyCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnAgreementWithPrivacyCallback" + data);
+		if (code == StatusCode_Success) {
+			GSCSdkInterface.showToast("OnAgreementWithPrivacyCallbackSuccess " + " data: " + data);
+		} else {
+			GSCSdkInterface.showToast("OnAgreementWithPrivacyCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+
+	//人机验证回调
+	public void OnGeetestViewCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnGeetestViewCallback" + data);
+		if (code == StatusCode_Success) {
+			JsonData json = JsonMapper.ToObject (data);
+			string captcha_type = (string)json["captcha_type"];
+			string image_token = (string)json["image_token"];
+			string captcha_code = (string)json["captcha_code"];
+			string challenge = (string)json["challenge"];
+			string validate = (string)json["validate"];
+			string seccode = (string)json["seccode"];
+			string gt_user_id = (string)json["gt_user_id"];
+			GSCSdkInterface.showToast("OnGeetestViewCallbackSuccess " + " captcha_type: " + captcha_type + " image_token: " + image_token + " captcha_code " + captcha_code + " challenge: " + challenge + " validate: " + validate + " seccode " + seccode + " gt_user_id " + gt_user_id);
+		} else {
+			GSCSdkInterface.showToast("OnGeetestViewCallbackError " + " code: " + code + " message: +" + data);
+		}
+	}
+
+	//账号异常回调
+	public void OnAccountInvalidCallback (int code, string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnAccountInvalidCallback" + data);
+		if (code == StatusCode_Success) {
+			//Demo.uid = 0;
+			//TODO
+			//游戏登出逻辑
+			GSCSdkInterface.showToast("OnAccountInvalidCallbackSuccess " + data);
+		} 
+	}
+
+	//退出回调
+	public virtual void OnExitCallback (string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnExitCallback," + data);
+		GSCSdkInterface.showToast(data);
+			//下面的用于demo,请改成自己的代码 
+		Application.Quit();
+
+	}
+
+	//退出游戏回调(防沉迷,付费之类)
+	public void OnQuitCallback(string data)
+	{
+		//下面的用于demo,请改成自己的代码 
+		Debug.Log("OnQuitCallback" + data);
+		GSCSdkInterface.showToast("OnQuitCallback - message: +" + data);
+		//下面的用于demo,请改成自己的代码 
+		Application.Quit();
+	}
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/bilibili/GSCCallbackListerner.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f5493ffac3e7e4392b0533cb8b515b81
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 346 - 0
GameClient/Assets/Game/HotUpdate/com/bilibili/GSCSdkInterface.cs

@@ -0,0 +1,346 @@
+using UnityEngine;
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Security.Cryptography;
+
+/// <summary>
+/// 接收 SDK 的回调消息,进行处理。
+/// 该脚本应关联到每一个场景的 "Main Camera" 对象,以能接收SDK回调的消息。
+/// 下面各方法中的逻辑处理,在游戏中应修改为真实的逻辑。
+/// </summary>
+public class GSCSdkInterface : MonoBehaviour
+{
+
+	//iOS unity调用iOS层方法
+	[DllImport("__Internal")]
+	public static extern void __initIosSDK(string gameId, string cpId, string serverId, string appkey, string sandboxKey);
+
+	[DllImport("__Internal")]
+	public static extern void __iosLogin();
+
+	[DllImport("__Internal")]
+	public static extern void __iosLogout();
+
+	[DllImport("__Internal")]
+	public static extern void __iosUserInfo(string accesskey);
+
+	[DllImport("__Internal")]
+	public static extern void __iosIsRealnameAuth();
+
+	[DllImport("__Internal")]
+	public static extern void __iosGetSdkType();
+
+	[DllImport("__Internal")]
+	public static extern void __iosGetSdkChannel();
+
+	[DllImport("__Internal")]
+	public static extern void __iosGetSdkVersion();
+
+	[DllImport("__Internal")]
+	public static extern void __iosCreateRole(string roleid, string rolename);
+
+	[DllImport("__Internal")]
+	public static extern void __iosNotifyZone(string serverid, string servername, string roleid, string rolename);
+
+	[DllImport("__Internal")]
+	public static extern void __iosSetGameOpenUrl(string url);
+
+	[DllImport("__Internal")]
+	public static extern void __iosHeartbeatStart();
+
+	[DllImport("__Internal")]
+	public static extern void __iosHeartbeatStop();
+
+	[DllImport("__Internal")]
+	public static extern void __iosAgreementWithLicence();
+
+	[DllImport("__Internal")]
+	public static extern void __iosAgreementWithPrivacy();
+
+	[DllImport("__Internal")]
+	public static extern void __iosGeetest();
+
+	[DllImport("__Internal")]
+	public static extern void __iosAccountProtect();
+
+	[DllImport("__Internal")]
+	public static extern void __iosGetFreeUrl(string sourceUrl, string gameId, string appKey);
+
+	[DllImport("__Internal")]
+	public static extern void __iosPay(string productId, string outTradeNo, string money, string productName, string productCount, string description,string extension,  string orderSign, string notifyUrl);
+
+	//android unity调用java层方法
+	public static void callSdkApi (string apiName, params object[] args)
+	{	
+		using (AndroidJavaClass cls = new AndroidJavaClass("com.gsc.unityasdemo.GSCSdkCenter")) {
+			cls.CallStatic (apiName, args);
+		}
+	}
+
+
+	/**
+	 * android 支付接口
+	 * @param uid 用户的唯一标识(整型)
+	 * @param username 用户名或者email(唯一)
+	 * @param role 充值的角色信息
+	 * @param serverId 区服号
+	 * @param total_fee 充值金额
+	 * @param game_money 游戏币,需要用充值金额*充值比率
+	 * @param out_trade_no 充值订单号
+	 * @param subject 充值主题
+	 * @param body 充值描述
+	 * @param extension_info 附加信息,会在服务器异步回调中原样传回
+	 */
+	public static void androidPay(long uid, string username, string role, string serverId,
+	                       int total_fee, int game_money, string out_trade_no, string subject, string body, string extension_info, string notify_url, string order_sign)
+	{
+		#if UNITY_ANDROID
+			callSdkApi ("pay", uid, username, role, serverId, total_fee, game_money, out_trade_no, subject, body, extension_info, notify_url, order_sign);
+		#endif
+	}
+
+	/**
+	 * android获取设备指纹信息接口
+	 */
+	public static void androidFingerprint()
+	{
+		#if UNITY_ANDROID
+			callSdkApi ("getFingerprint");
+		#endif
+	}
+
+	/**
+	 * android获取是否登录接口
+	 */
+	public static void androidCheckLogin()
+	{
+		#if UNITY_ANDROID
+			callSdkApi ("checkLogin");
+		#endif
+	}
+
+	/**
+	 * android退出接口
+	 */
+	public static void androidExit ()
+	{
+		#if UNITY_ANDROID
+			callSdkApi ("exit");
+		#endif
+	}
+
+	/**
+	 * iOS支付接口
+	 */
+	public static void iOSPay(string product_id, string out_trade_no, int money, string subject, int game_money, string body, string extension_info, string order_sign, string notify_url)
+	{
+		#if UNITY_IOS
+			__iosPay(product_id, out_trade_no, money, subject, game_money, body, extension_info, order_sign, notify_url);
+		#endif
+	}
+
+	/**
+	 * iOS获取sdk的版本接口
+	 */
+	public static void iOSSdkVersion()
+	{
+		#if UNITY_IOS
+			__iosGetSdkVersion();
+		#endif
+	}
+	/**
+	 * 初始化
+	 */
+	public static void init(string merchant_id, string app_id, string server_id, string app_key, string sandboxKey)
+	{
+		Debug.Log("init");
+		#if UNITY_IOS
+			__initIosSDK(merchant_id, app_id, server_id, app_key, sandboxKey);
+		#elif UNITY_ANDROID
+			callSdkApi ("init", merchant_id, app_id, server_id, app_key);
+		#endif
+	}
+
+	/**
+	 * 登录接口
+	 */
+	public static void login ()
+	{
+		#if UNITY_IOS
+            __iosLogin();
+		#elif UNITY_ANDROID
+			callSdkApi ("login");
+		#endif
+	}
+
+	/**
+	 * 通知区服接口
+	 */
+	public static void notifyZone(string server_id, string server_name, string role_id, string role_name)
+	{
+		#if UNITY_IOS
+			__iosNotifyZone(server_id, server_name, role_id, role_name);
+		#elif UNITY_ANDROID
+			callSdkApi ("notifyZone", server_id, server_name, role_id, role_name);
+		#endif
+	}
+
+	/**
+	 * 创角接口
+	 */
+	public static void createRole(string role_name, string role_id)
+	{
+		#if UNITY_IOS
+			__iosCreateRole(role_name, role_id);
+		#elif UNITY_ANDROID
+			callSdkApi ("createRole", role_id, role_name);
+		#endif
+	}
+
+	/**
+	 * 停止心跳接口
+	 */
+	public static void stopHeartbeat()
+	{
+		#if UNITY_IOS
+			__iosHeartbeatStop();
+		#elif UNITY_ANDROID
+			callSdkApi ("stop");
+		#endif
+	}
+
+	/**
+	 * 开始心跳接口
+	 */
+	public static void startHeartbeat()
+	{
+		#if UNITY_IOS
+			__iosHeartbeatStart();
+		#elif UNITY_ANDROID
+			callSdkApi ("start");
+		#endif
+	}
+
+	/**
+	 * 获取sdk类型接口
+	 */
+	public static void getSdkType()
+	{
+		#if UNITY_IOS
+			__iosGetSdkType();
+		#elif UNITY_ANDROID
+			callSdkApi ("getSdkType");
+		#endif
+	}
+
+	/**
+	 * 获取渠道号接口
+	 */
+	public static void getChannelId()
+	{
+		#if UNITY_IOS
+			__iosGetSdkChannel();
+		#elif UNITY_ANDROID
+			callSdkApi ("getChannelId");
+		#endif
+	}
+	
+	/**
+	 * 获取是否实名认证接口
+	 */
+	public static void isRealNameAuth(){
+		#if UNITY_IOS
+			__iosIsRealnameAuth();
+		#elif UNITY_ANDROID
+			callSdkApi ("isRealNameAuth");
+		#endif
+	}
+
+	/**
+	 * 登出接口
+	 */
+	public static void logout()
+	{
+		#if UNITY_IOS
+			__iosLogout();
+		#elif UNITY_ANDROID
+			callSdkApi ("logout");
+		#endif
+	}
+
+	/**
+	 * 获取用户信息接口
+	 */
+	public static void getUserInfo(string accesskey)
+	{
+		#if UNITY_IOS
+			__iosUserInfo(accesskey);
+		#elif UNITY_ANDROID
+			callSdkApi ("getUserInfo");
+		#endif
+	}
+
+	/**
+	 * 账号保护接口
+	 */
+	public static void accountProtect ()
+	{
+		#if UNITY_IOS
+			__iosAccountProtect();
+		#elif UNITY_ANDROID
+			callSdkApi ("accountProtect");
+		#endif
+	}
+
+
+	/**
+	 * 显示用户协议界面接口
+	 */
+	public static void showAgreementWithLicence ()
+	{
+		#if UNITY_IOS
+			__iosAgreementWithLicence();
+		#elif UNITY_ANDROID
+			callSdkApi ("showAgreementWithLicence");
+		#endif
+	}
+
+	/**
+	 * 显示隐私政策界面接口
+	 */
+	public static void showAgreementWithPrivacy ()
+	{
+		#if UNITY_IOS
+			__iosAgreementWithPrivacy();
+		#elif UNITY_ANDROID
+			callSdkApi ("showAgreementWithPrivacy");
+		#endif
+	}
+
+	/**
+	 * 显示人机验证接口
+	 */
+	public static void showGeetestView ()
+	{
+		#if UNITY_IOS
+			__iosGeetest();
+		#elif UNITY_ANDROID
+			callSdkApi ("showGeetestView");
+		#endif
+	}
+
+	//测试
+	public static void showToast(string content)
+	{
+		#if UNITY_IOS
+
+
+		#elif UNITY_ANDROID
+			callSdkApi ("showToast", content);
+		#endif
+
+	}
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/bilibili/GSCSdkInterface.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c1d549bcb56534dea8c19d32a0ca6c10
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: df32bbf0114bf3e4a8426915ccb48fd9
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dc7aedffb6194ca45b02e01696e985fd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b3e1d6a4e38302a40abeb864cb05f98b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 58 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs

@@ -0,0 +1,58 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk.archives.bean;
+using com.m3839.sdk.archives.listener;
+
+/// <summary>
+/// 云存档sdk的 API
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives
+{
+
+    public class HykbGameArchives
+    {
+        static AndroidJavaClass gameArchives = new AndroidJavaClass("com.m3839.sdk.archives.HykbGameArchives");
+
+        [System.Obsolete("该方法已过时")]
+        public static void SaveArchivesData(GameArchivesDataBean bean, HykbSaveArchivesListener listener)
+        {
+            gameArchives.CallStatic("saveArchivesData", HykbContext.GetInstance().GetActivity(), GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public static void ReadArchivesData(GameArchivesDataBean bean, HykbReadArchivesListener listener)
+        {
+            gameArchives.CallStatic("readArchivesData", HykbContext.GetInstance().GetActivity(), GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public static void LoadAllArchivesData(GameArchivesDataBean bean, HykbLoadArchivesListener listener)
+        {
+            gameArchives.CallStatic("loadAllArchivesData", HykbContext.GetInstance().GetActivity(), GameArchivesDataBean.ToA(bean), listener);
+        }
+
+
+        public static void Init(string gameId)
+        {
+            gameArchives.CallStatic("init", HykbContext.GetInstance().GetActivity(), gameId);
+        }
+
+        public static void SaveArchivesDataV2(GameArchivesDataBean bean, HykbSaveArchivesListener listener)
+        {
+            gameArchives.CallStatic("saveArchivesData", GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        public static void ReadArchivesDataV2(GameArchivesDataBean bean, HykbReadArchivesListener listener)
+        {
+            gameArchives.CallStatic("readArchivesData", GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        public static void LoadAllArchivesDataV2(GameArchivesDataBean bean, HykbLoadArchivesListener listener)
+        {
+            gameArchives.CallStatic("loadAllArchivesData", GameArchivesDataBean.ToA(bean), listener);
+        }
+    }
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f018cd9dcb2e2be4d9451b6993ae3482
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bfb33923ee88640499e3a6d1c9af0c80
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 140 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs

@@ -0,0 +1,140 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 游戏档位数据
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.bean
+{
+    public class GameArchivesDataBean 
+    {
+        /** 游戏ID */
+        private string gameId;
+
+        /** 用户ID */
+        private string userId;
+
+        /** 存档ID */
+        private int archivesId;
+
+        /** 存档标题*/
+        private string archivesTitle;
+
+        /** 存档内容*/
+        private string archivesContent;
+
+        /** 存档透传字段*/
+        private string archivesExt;
+
+        /** 存档的时间 */
+        private string updateTime;
+
+
+        public GameArchivesDataBean()
+        {
+
+        }
+
+        /// <summary>
+        /// 游戏档位数据
+        /// </summary>
+        public GameArchivesDataBean(AndroidJavaObject bean)
+        {
+            this.gameId = bean.Call<string>("getGameId");
+            this.userId = bean.Call<string>("getUserId");
+            this.archivesId = bean.Call<int>("getArchivesId");
+            this.archivesTitle = bean.Call<string>("getGiftLinkTitle");
+            this.archivesContent = bean.Call<string>("getArchivesContent");
+            this.archivesExt = bean.Call<string>("getArchivesExt");
+            this.updateTime = bean.Call<string>("getUpdateTime");
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public string getGameId()
+        {
+            return gameId;
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public void setGameId(string gameId)
+        {
+            this.gameId = gameId;
+        }
+
+        public string getUserId()
+        {
+            return userId;
+        }
+
+        public void setUserId(string userId)
+        {
+            this.userId = userId;
+        }
+
+        public int getArchivesId()
+        {
+            return archivesId;
+        }
+
+        public void setArchivesId(int archivesId)
+        {
+            this.archivesId = archivesId;
+        }
+
+        public string getArchivesTitle()
+        {
+            return archivesTitle;
+        }
+
+        public void setArchivesTitle(string archivesTitle)
+        {
+            this.archivesTitle = archivesTitle;
+        }
+
+        public string getArchivesContent()
+        {
+            return archivesContent;
+        }
+
+        public void setArchivesContent(string archivesContent)
+        {
+            this.archivesContent = archivesContent;
+        }
+
+        public string getArchivesExt()
+        {
+            return archivesExt;
+        }
+
+        public void setArchivesExt(string archivesExt)
+        {
+            this.archivesExt = archivesExt;
+        }
+
+        public string getUpdateTime()
+        {
+            return updateTime;
+        }
+
+        public void setUpdateTime(string updateTime)
+        {
+            this.updateTime = updateTime;
+        }
+
+        public static AndroidJavaObject ToA(GameArchivesDataBean bean)
+        {
+            AndroidJavaObject payInfo = new AndroidJavaObject("com.m3839.sdk.archives.bean.GameArchivesDataBean");
+            payInfo.Call("setGameId", bean.getGameId());
+            payInfo.Call("setUserId", bean.getUserId());
+            payInfo.Call("setArchivesId", bean.getArchivesId());
+            payInfo.Call("setArchivesTitle", bean.getArchivesTitle());
+            payInfo.Call("setArchivesContent", bean.getArchivesContent());
+            payInfo.Call("setArchivesExt", bean.getArchivesExt());
+            payInfo.Call("setUpdateTime", bean.getUpdateTime());
+            return payInfo;
+        }
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fd045657ace369e4593c614295135f00
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 29c84a0b5c993d841ac94b3485cf91fd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs

@@ -0,0 +1,53 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 获取存档列表的数据监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.listener
+{
+
+    public abstract class HykbLoadArchivesListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 云存档列表数据校验回调接口
+        /// </summary>
+        public HykbLoadArchivesListener() : base("com.m3839.sdk.archives.listener.HykbLoadArchivesListener") { }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public void onSuccess(List<AndroidJavaObject> dataBean)
+        {
+            OnSuccess(dataBean);
+        }
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public abstract void OnSuccess(List<AndroidJavaObject> dataBean);
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9a5f65c689352e64aa4e4e610dc72c0b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs

@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 读档的数据监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.listener
+{
+    public abstract class HykbReadArchivesListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 云存档列表数据校验回调接口
+        /// </summary>
+        public HykbReadArchivesListener() : base("com.m3839.sdk.archives.listener.HykbReadArchivesListener") { }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public void onSuccess(AndroidJavaObject dataBean)
+        {
+            OnSuccess(dataBean);
+        }
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public abstract void OnSuccess(AndroidJavaObject dataBean);
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 57d292280dda9364e8ff88fa1b950dbf
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 48 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs

@@ -0,0 +1,48 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 存档的数据监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.listener
+{
+    public abstract class HykbSaveArchivesListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 云存档列表数据校验回调接口
+        /// </summary>
+        public HykbSaveArchivesListener() : base("com.m3839.sdk.archives.listener.HykbSaveArchivesListener") { }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        public void onSuccess()
+        {
+            OnSuccess();
+        }
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        public abstract void OnSuccess();
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 45ff47e81481c964e9054931e5785781
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48951a5fd300631449c47ee382065e30
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 168 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs

@@ -0,0 +1,168 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk.auxs.bean;
+
+/// <summary>
+/// 强更sdk的 API
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs
+{
+    public class HykbAuxsSDK
+    {
+        static AndroidJavaClass sdkClass = new AndroidJavaClass("com.m3839.sdk.auxs.HykbAuxSDK");
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="gameId">快爆游戏ID</param>
+        /// <param name="orientation">屏幕方向</param>
+        /// <param name="listener">回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void initSdk(string gameId, int orientation, listener.HykbAuxInitListener listener)
+        {
+            sdkClass.CallStatic("init", HykbContext.GetInstance().GetActivity(), gameId, orientation, listener);
+        }
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="gameId">快爆游戏ID</param>
+        /// <param name="orientation">屏幕方向</param>
+        /// <param name="listener">回调监听</param>
+        public static void Init(string gameId, int orientation, listener.HykbV2AuxInitListener listener)
+        {
+            sdkClass.CallStatic("init", HykbContext.GetInstance().GetActivity(), gameId, orientation, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkGiftCode(string device, listener.HykbAuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        public static void CheckGiftCode(string device, listener.HykbV2AuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">礼包码</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkGiftCode(string device, string code, listener.HykbAuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, code, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">礼包码</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        public static void CheckGiftCode(string device, string code, listener.HykbV2AuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, code, listener);
+        }
+
+
+        /// <summary>
+        /// 激活码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验激活码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkActivationCode(string device, listener.HykbAuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, listener);
+        }
+
+        /// <summary>
+        /// 激活码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验激活码的回调</param>
+        public static void CheckActivationCode(string device, listener.HykbV2AuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, listener);
+        }
+
+        /// <summary>
+        /// 激活码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">激活码</param>
+        /// <param name="listener">校验激活码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkActivationCode(string device, string code, listener.HykbAuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, code, listener);
+        }
+
+        /// <summary>
+        /// 激活码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">激活码</param>
+        /// <param name="listener">校验激活码的回调</param>
+        public static void CheckActivationCode(string device, string code, listener.HykbV2AuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, code, listener);
+        }
+
+
+        /// <summary>
+        /// 激活码的UI文案数据信息
+        /// </summary>
+        /// <returns>返回激活码的UI文案数据实例</returns>
+        public static HykbActivationUiInfo getActivationUiInfo()
+        {
+            AndroidJavaObject activationObject = sdkClass.CallStatic<AndroidJavaObject>("getActivationUiInfo");
+            return activationObject == null ? null : new HykbActivationUiInfo(activationObject);
+        }
+
+        /// <summary>
+        /// 礼包码的UI文案数据信息
+        /// </summary>
+        /// <returns>返回礼包码码的UI文案数据实例</returns>
+        public static HykbGiftUiInfo getGiftUiInfo()
+        {
+            AndroidJavaObject activationObject = sdkClass.CallStatic<AndroidJavaObject>("getGiftUiInfo");
+            return activationObject == null ? null : new HykbGiftUiInfo(activationObject);
+        }
+
+        /// <summary>
+        /// 检测该设备id是否激活过
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验激活码是否激活的回调</param>
+        public static void getActivationStatusByDevice(string device, listener.HykbAuxActivationCheckListener listener)
+        {
+            sdkClass.CallStatic("getActivationStatusByDevice", device, listener);
+        }
+
+        /// <summary>
+        /// 页面跳转
+        /// </summary>
+        /// <param name="biz">业务id</param>
+        public static void openPageDetail(int biz)
+        {
+            sdkClass.CallStatic("openPageDetail",biz);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 916bcd55627c86f42986eef75e0f2fb0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dca46a9d75139194e95e25bc423763c4
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs

@@ -0,0 +1,77 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 激活码UI的数据信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.bean
+{
+    public class HykbActivationUiInfo
+    {
+        private string activationTitle;
+        private string activationLink;
+        private string activationKbLink;
+        private string activationLinkTitle;
+        private int activationLinkStatus;
+        /// <summary>
+        /// 激活码UI显示数据
+        /// </summary>
+        public HykbActivationUiInfo(AndroidJavaObject user)
+        {
+            this.activationTitle = user.Call<string>("getActivationTitle");
+            this.activationLink = user.Call<string>("getActivationLink");
+            this.activationKbLink = user.Call<string>("getActivationKbLink");
+            this.activationLinkTitle = user.Call<string>("getActivationLinkTitle");
+            this.activationLinkStatus = user.Call<int>("getActivationLinkStatus");
+        }
+
+        /// <summary>
+        /// 获得激活码UI标题
+        /// </summary>
+        /// <returns>获取礼包UI标题</returns>
+        public string getActivationTitle()
+        {
+            return activationTitle;
+        }
+
+        /// <summary>
+        /// 获得激活码弹窗链接
+        /// </summary>
+        /// <returns>激活码弹窗的链接</returns>
+        public string getActivationLink()
+        {
+            return activationLink;
+        }
+
+        /// <summary>
+        /// 获得激活码弹窗快爆app链接
+        /// </summary>
+        /// <returns>激活码弹窗快爆app链接</returns>
+        public string getActivationKbLink()
+        {
+            return activationKbLink;
+        }
+
+        /// <summary>
+        /// 获得激活码弹窗快爆链接
+        /// </summary>
+        /// <returns>激活码弹窗的链接文案</returns>
+        public string getActivationLinkTitle()
+        {
+            return activationLinkTitle;
+        }
+
+
+        /// <summary>
+        /// 链接地址状态:1、显示;0、关闭
+        /// </summary>
+        /// <returns>链接地址状态</returns>
+        public int getActivationLinkStatus()
+        {
+            return activationLinkStatus;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 624ea5183fef3ff4ba01db414de52742
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 79 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs

@@ -0,0 +1,79 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 礼包UI的数据信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.bean
+{
+    public class HykbGiftUiInfo
+    {
+        private string giftTitle;
+        private string giftLink;
+        private string giftKbLink;
+        private string giftLinkTitle;
+        private int giftLinkStatus;
+
+        /// <summary>
+        /// 礼包码UI显示数据
+        /// </summary>
+        public HykbGiftUiInfo(AndroidJavaObject user)
+        {
+            this.giftTitle = user.Call<string>("getGiftTitle");
+            this.giftLink = user.Call<string>("getGiftLink");
+            this.giftKbLink = user.Call<string>("getGiftKbLink");
+            this.giftLinkTitle = user.Call<string>("getGiftLinkTitle");
+            this.giftLinkStatus = user.Call<int>("getGiftLinkStatus");
+        }
+
+        /// <summary>
+        /// 礼包码UI标题
+        /// </summary>
+        /// <returns>用户编号字符串</returns>
+        public string getGiftTitle()
+        {
+            return giftTitle;
+        }
+
+        /// <summary>
+        /// 礼包码UI弹窗链接
+        /// </summary>
+        /// <returns>礼包码UI弹窗链接</returns>
+        public string getGiftLink()
+        {
+            return giftLink;
+        }
+
+        /// <summary>
+        /// 礼包码UI弹窗快爆app链接
+        /// </summary>
+        /// <returns>礼包码UI弹窗快爆app链接</returns>
+        public string getGiftKbLink()
+        {
+            return giftKbLink;
+        }
+
+        /// <summary>
+        /// 礼包码UI弹窗链接标题
+        /// </summary>
+        /// <returns>礼包码UI弹窗链接标题</returns>
+        public string getGiftLinkTitle()
+        {
+            return giftLinkTitle;
+        }
+
+        /// <summary>
+        /// 链接地址状态:1、显示;0、关闭
+        /// </summary>
+        /// <returns>链接地址状态</returns>
+        public int getGiftLinkStatus()
+        {
+            return giftLinkStatus;
+        }
+
+
+    }
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6ce581c5713688742983783141504275
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f4c628af66a231d4392275521ef9fdcc
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 33 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs

@@ -0,0 +1,33 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 激活码状态检测回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbAuxActivationCheckListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 激活码状态
+        /// </summary>
+        public HykbAuxActivationCheckListener() : base("com.m3839.sdk.auxs.listener.HykbAuxActivationCheckListener") { }
+
+        /// <summary>
+        /// 校验结果回调
+        /// </summary>
+        /// <param name="hasActivation">是否激活过</param>
+        public void onActivationCheck(bool hasActivation)
+        {
+            OnActivationCheck(hasActivation);
+        }
+
+        /// <summary>
+        /// 校验接口回调
+        /// </summary>
+        /// <param name="hasActivation">是否激活过</param>
+        public abstract void OnActivationCheck(bool hasActivation);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2f11859083f5843409ed419f6b5dbdd0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs

@@ -0,0 +1,36 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 激活码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbAuxActivationListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 激活码校验回调接口
+        /// </summary>
+        public HykbAuxActivationListener() : base("com.m3839.sdk.auxs.listener.HykbAuxActivationListener") { }
+
+        /// <summary>
+        /// 校验结果回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">激活码,校验通过之后,返回的信息</param>
+        public void onResult(int code, string message)
+        {
+            OnResult(code, message);
+        }
+
+        /// <summary>
+        /// 校验接口回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">激活码,校验通过之后,返回的信息</param>
+        public abstract void OnResult(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 792773838f2ffa544b957a911271bd3c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 38 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs

@@ -0,0 +1,38 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 礼包码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbAuxGiftListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 礼包码回调接口
+        /// </summary>
+        public HykbAuxGiftListener() : base("com.m3839.sdk.auxs.listener.HykbAuxGiftListener") { }
+
+        /// <summary>
+        /// 校验结果回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">礼包码,校验通过之后,返回的信息</param>
+        /// <param name="codeName">兑换成功,返回的礼包名称</param>
+        public void onResult(int code, string message, string codeName)
+        {
+            OnResult(code, message, codeName);
+        }
+
+        /// <summary>
+        /// 校验接口回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">礼包码,校验通过之后,返回的信息</param>
+        /// <param name="codeName">兑换成功,返回的礼包名称</param>
+        public abstract void OnResult(int code, string message, string codeName);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 735386047038cb4408c3775e70a5d20c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs

@@ -0,0 +1,36 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbAuxInitListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// SDK进行初始化的回调监听
+        /// </summary>
+        public HykbAuxInitListener() : base("com.m3839.sdk.auxs.listener.HykbAuxInitListener") { }
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public void onInitFinish(int code, string message)
+        {
+            OnInitFinished(code, message);
+        }
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public abstract void OnInitFinished(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6f29f207cc9cf5144a31e4ecd3fa6cdb
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs

@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 激活码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbV2AuxActivationListener : AndroidJavaProxy
+    {
+
+        /// <summary>
+        /// 激活码校验回调接口
+        /// </summary>
+        public HykbV2AuxActivationListener() : base("com.m3839.sdk.auxs.listener.HykbV2AuxActivationListener") { }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        public void onSucceed()
+        {
+            OnSucceed();
+        }
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        public abstract void OnSucceed();
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 93af1fd7d9a604749a4762901c111d6d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs

@@ -0,0 +1,51 @@
+using UnityEngine;
+using System.Collections;
+
+/// <summary>
+/// 礼包码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbV2AuxGiftListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 礼包码回调接口
+        /// </summary>
+        public HykbV2AuxGiftListener() : base("com.m3839.sdk.auxs.listener.HykbV2AuxGiftListener") { }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        /// <param name="giftName">礼包名称</param>
+        public void onSucceed(string giftName)
+        {
+            OnSucceed(giftName);
+        }
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        /// <param name="giftName">礼包名称</param>
+        public abstract void OnSucceed(string giftName);
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public abstract void OnFailed(int code, string message);
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8fbcef9b5137941b1826643b031eda09
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs

@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbV2AuxInitListener : AndroidJavaProxy
+    {
+
+        /// <summary>
+        /// SDK进行初始化的回调监听
+        /// </summary>
+        public HykbV2AuxInitListener() : base("com.m3839.sdk.auxs.listener.HykbV2AuxInitListener") { }
+
+        /// <summary>
+        /// 初始化流程结束
+        /// </summary>
+        public void onSucceed()
+        {
+            OnSucceed();
+        }
+
+        /// <summary>
+        ///初始化失败
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 初始化流程结束
+        /// </summary>
+        public abstract void OnSucceed();
+
+        /// <summary>
+        ///初始化失败
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d3deb597f6a9b4a13a2465a9612a3603
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 32f48da7b676bd5448e502ad02e78ce1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 64 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs

@@ -0,0 +1,64 @@
+using UnityEngine;
+
+/// <summary>
+/// For support android context
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk
+{
+    public sealed class HykbContext : MonoBehaviour
+    {
+        // 横屏
+        public static int SCREEN_LANDSCAPE = 0;
+        // 竖屏
+        public static int SCREEN_PORTRAIT = 1;
+
+        private AndroidJavaObject currentActivity;
+
+        private static readonly HykbContext _HykbContext = new HykbContext();
+
+       
+        /// <summary>
+        /// 获取当前实例 
+        /// </summary>
+        /// <returns></returns>
+        public static HykbContext GetInstance()
+        {
+            return _HykbContext;
+        }
+
+
+        /*
+         * 获取当前Activity       
+         */
+        public AndroidJavaObject GetActivity()
+        {
+            if (null == currentActivity)
+            {
+                currentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")
+                .GetStatic<AndroidJavaObject>("currentActivity");
+            }
+
+            return currentActivity;
+        }
+
+        /*
+         * 运行在主UI线程       
+         */
+        public void RunOnUIThread(AndroidJavaRunnable runnable)
+        {
+            GetActivity().Call("runOnUiThread", runnable);
+        }
+
+
+        /*
+         * 获取根节点的布局 
+         */
+        public AndroidJavaObject GetRootLayout()
+        {
+            AndroidJavaClass R = new AndroidJavaClass("android.R$id");
+            return currentActivity.Call<AndroidJavaObject>("findViewById", R.GetStatic<int>("content"));
+        }
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: de2e78829392548c99bbd11a367fa04a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ef9a328ba720c45a18300bad2b022896
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 124 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs

@@ -0,0 +1,124 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 好游快爆SDK
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login
+{
+    /// <summary>
+    /// 好游快爆SDK的静态方法包装,用于untiy与安卓SDK对接及交互。
+    /// </summary>
+    public class HykbLogin
+    {
+        
+        // 单例中间层对象,方便获取
+        private static AndroidJavaClass sLoginJavaClass;
+        public static AndroidJavaClass getLoginClass()
+        {
+            if (sLoginJavaClass == null)
+            {
+                sLoginJavaClass = new AndroidJavaClass("com.m3839.sdk.login.HykbLogin");
+            }
+            return sLoginJavaClass;
+        }
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="appKey">快爆开发者后台申请的appKey</param>
+        /// <param name="listener">初始化的回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void InitSdk(string appKey, int orientation, listener.HykbInitListener listener)
+        {
+            getLoginClass().CallStatic("initSdk", HykbContext.GetInstance().GetActivity(), appKey, orientation, listener);
+        }
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="appKey">快爆开发者后台申请的appKey</param>
+        /// <param name="listener">初始化的回调监听</param>
+        public static void Init(string appKey, int orientation, listener.HykbV2InitListener listener)
+        {
+            getLoginClass().CallStatic("init", HykbContext.GetInstance().GetActivity(), appKey, orientation, listener);
+        }
+
+        /// <summary>
+        /// 设置用户相关监听
+        /// </summary>
+        /// <param name="listener">用户相关的监听接口</param>
+        public static void SetUserListener(listener.HykbUserListener listener)
+        {
+            getLoginClass().CallStatic("setUserListener", listener);
+        }
+
+        /// <summary>
+        /// 设置防沉迷相关监听
+        /// </summary>
+        /// <param name="listener">防沉迷相关的监听接口</param>
+        public static void SetAntiListener(listener.HykbAntiListener listener)
+        {
+            getLoginClass().CallStatic("setAntiListener", listener);
+        }
+
+        /// <summary>
+        /// 登录
+        /// </summary>
+        /// <param name="listener">登录操作的回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void Login(listener.HykbLoginListener listener)
+        {
+            getLoginClass().CallStatic("login", HykbContext.GetInstance().GetActivity(), listener);
+        }
+
+        /// <summary>
+        /// 登录
+        /// </summary>
+        public static void Login()
+        {
+            getLoginClass().CallStatic("login", HykbContext.GetInstance().GetActivity());
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        /// <param name="listener">切换账号的回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void SwitchAccount(listener.HykbLoginListener listener)
+        {
+            getLoginClass().CallStatic("switchAccount", HykbContext.GetInstance().GetActivity(), listener);
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        public static void SwitchAccount()
+        {
+            getLoginClass().CallStatic("switchAccount", HykbContext.GetInstance().GetActivity());
+        }
+
+        /// <summary>
+        /// 获得当前用户信息
+        /// </summary>
+        /// <returns>有用户信息是返回用户信息HykbUser实例,无则返回null</returns>
+        public static bean.HykbUser GetUser()
+        {
+            AndroidJavaObject userObject = getLoginClass().CallStatic<AndroidJavaObject>("getUser");
+            return userObject == null ? null : new bean.HykbUser(userObject);
+        }
+
+        /// <summary>
+        /// 退出登录,注销用户的登录信息
+        /// </summary>
+        public static void Logout()
+        {
+            getLoginClass().CallStatic("logout", HykbContext.GetInstance().GetActivity());
+        }
+
+    }
+
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 265a5fcbb139e4c77b08182faef5fb61
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 14fc17167f51f4ebda13e6624cd4940c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 73 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs

@@ -0,0 +1,73 @@
+using UnityEngine;
+
+/// <summary>
+/// 快爆用户信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.bean
+{
+    public class HykbUser
+    {
+        private string userId;
+        private string nick;
+        private string type;
+        private string accessToken;
+
+        /// <summary>
+        /// 用户信息包装
+        /// </summary>
+        public HykbUser(AndroidJavaObject user)
+        {
+            this.userId = user.Call<string>("getUserId");
+            this.nick = user.Call<string>("getNick");
+            this.type = user.Call<string>("getType");
+            this.accessToken = user.Call<string>("getAccessToken");
+        }
+
+        /// <summary>
+        /// 获得用户ID
+        /// </summary>
+        /// <returns>用户编号字符串</returns>
+        public string getUserId()
+        {
+            return userId;
+        }
+
+        /// <summary>
+        /// 获得昵称
+        /// </summary>
+        /// <returns>昵称字符串</returns>
+        public string getNick()
+        {
+            return nick;
+        }
+
+        /// <summary>
+        /// 获得登录类型
+        /// </summary>
+        /// <returns>类型字符串</returns>
+        public string getType()
+        {
+            return type;
+        }
+
+        /// <summary>
+        /// 用来校验登录授权过程真实性,accessToken有效期两小时
+        /// </summary>
+        /// <returns>类型字符串</returns>
+        public string getAccessToken()
+        {
+            return accessToken;
+        }
+
+        public string toString()
+        {
+            return "HykbUser{" +
+                    "userId='" + userId + '\'' +
+                    ", nick='" + nick + '\'' +
+                    ", type='" + type + '\'' +
+                    ", accessToken='" + accessToken + '\'' +
+                    '}';
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e82d4ff270dc64acc9f0e34a37570e7b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48f1ef0513ba949db90d731627f0bac1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs

@@ -0,0 +1,31 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 防沉迷相关回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    public abstract class HykbAntiListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 防沉迷相关回回调监听
+        /// </summary>
+        public HykbAntiListener() : base("com.m3839.sdk.login.listener.HykbAntiListener") { }
+
+        /// <summary>
+        /// 防沉迷相关回回调
+        /// </summary>
+        /// <param name="code">响应code</param>
+        /// <param name="message">响应消息</param>
+        public void onAnti(int code, string message)
+        {
+            OnAnti(code, message);
+        }
+
+        public abstract void OnAnti(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 28c2dc2f56a444c6aaeee4a82f9c6ea3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs

@@ -0,0 +1,82 @@
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbInitListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 初始化回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbInitListener() : base("com.m3839.sdk.login.listener.HykbInitListener") { }
+
+        /// <summary>
+        /// SDK初始化成功,并根据用户登录情况返回用户信息
+        /// </summary>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public void onInitSuccess(AndroidJavaObject user)
+        {
+            if (user == null)
+            {
+                OnInitSuccess(null);
+            }
+            else
+            {
+                OnInitSuccess(new bean.HykbUser(user));
+            }
+        }
+
+        /// <summary>
+        /// 初始化失败,并返回失败码及提示
+        /// </summary>
+        /// <param name="code">失败码</param>
+        /// <param name="message">提示</param>
+        public void onInitError(int code, string message)
+        {
+            OnInitError(code, message);
+        }
+
+        /// <summary>
+        /// 初始化后有用户信息,但已失效且让玩家重新登录或切换账号
+        /// </summary>
+        /// <param name="switchUser">是否重新登录或切换账号</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public void onSwitchUser(bool switchUser, int code, AndroidJavaObject user)
+        {
+            if (user == null)
+            {
+                OnSwitchUser(switchUser, code, null);
+            }
+            else
+            {
+                OnSwitchUser(switchUser, code, new bean.HykbUser(user));
+            }
+        }
+
+        /// <summary>
+        /// SDK初始化成功,并根据用户登录情况返回用户信息
+        /// </summary>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public abstract void OnInitSuccess(bean.HykbUser user);
+
+        /// <summary>
+        /// 初始化失败,并返回失败码及提示
+        /// </summary>
+        /// <param name="code">失败码</param>
+        /// <param name="message">提示</param>
+        public abstract void OnInitError(int code, string message);
+
+        /// <summary>
+        /// 初始化后有用户信息,但已失效且让玩家重新登录或切换账号
+        /// </summary>
+        /// <param name="switchUser">是否重新登录或切换账号</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public abstract void OnSwitchUser(bool switchUser, int code, bean.HykbUser user);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c2901dea2269842d68fdb4d48ca9820b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 46 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs

@@ -0,0 +1,46 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 登录回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbLoginListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 登录或者切换账号回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbLoginListener() : base("com.m3839.sdk.login.listener.HykbLoginListener") { }
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="login">是否有登录</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public void onLoginFinished(bool login, int code, AndroidJavaObject user)
+        {
+            if (user == null)
+            {
+                OnLoginFinished(login, code, null);
+            }
+            else
+            {
+                OnLoginFinished(login, code, new bean.HykbUser(user));
+            }
+        }
+
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="login">是否有登录</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public abstract void OnLoginFinished(bool login, int code, bean.HykbUser user);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b9f46698884b04196a86b6f060d3e603
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 68 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs

@@ -0,0 +1,68 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 用户相关回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    public abstract class HykbUserListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 用户相关回回调监听
+        /// </summary>
+        public HykbUserListener() : base("com.m3839.sdk.login.listener.HykbUserListener") { }
+
+        /// <summary>
+        /// 登录成功
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public void onLoginSucceed(AndroidJavaObject user)
+        {
+            OnLoginSucceed(new bean.HykbUser(user));
+        }
+
+        /// <summary>
+        /// 登录失败
+        /// </summary>
+        /// <param name="code">返回code</param>
+        /// <param name="message">失败原因</param>
+        public void onLoginFailed(int code, string message)
+        {
+            OnLoginFailed(code, message);
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public void onSwitchUser(AndroidJavaObject user)
+        {
+            OnSwitchUser(new bean.HykbUser(user));
+        }
+
+        /// <summary>
+        /// 登录成功
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public abstract void OnLoginSucceed(bean.HykbUser user);
+
+
+        /// <summary>
+        /// 登录失败
+        /// </summary>
+        /// <param name="code">返回code</param>
+        /// <param name="message">失败原因</param>
+        public abstract void OnLoginFailed(int code, string message);
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public abstract void OnSwitchUser(bean.HykbUser user);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9fc97a3a4b479435cac792a9cff4d1a5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs

@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+
+    public abstract class HykbV2InitListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 初始化回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbV2InitListener() : base("com.m3839.sdk.login.listener.HykbV2InitListener") { }
+
+        /// <summary>
+        /// 初始化成功
+        /// </summary>
+        public void onSucceed()
+        {
+            OnSucceed();
+        }
+
+        /// <summary>
+        /// 初始化失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 初始化成功
+        /// </summary>
+        public abstract void OnSucceed();
+
+        /// <summary>
+        /// 初始化失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 000e6d821f8664586adab93817d23190
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 38192c797b276674d88de173ca3f717a
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs

@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 付费下载校验监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.paid
+{
+    public abstract class HykbCheckListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 快爆单机防沉迷回调接口
+        /// </summary>
+        public HykbCheckListener() : base("com.m3839.sdk.paid.HykbCheckListener") { }
+
+
+
+        void onAllowEnter()
+        {
+
+        }
+
+        /// <summary>
+        /// 校验不通过回调
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">返回的信息</param>
+        void onReject(int code, string errorMsg)
+        {
+
+        }
+
+
+        /// <summary>
+        /// 校验成功回调
+        /// </summary>
+        public abstract void OnAllowEnter();
+
+        /// <summary>
+        /// 校验失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnReject(int code, string message);
+
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d08f16179ba4f984ebe8c8b5cebd46e9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs

@@ -0,0 +1,31 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 付费下载校验监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.paid
+{
+    public class HykbPaidChecker 
+    {
+        static AndroidJavaClass sdkClass = new AndroidJavaClass("com.m3839.sdk.paid.HykbPaidChecker");
+
+        public static void CheckLicense(string appId, string publicKey, HykbCheckListener listener)
+        {
+            sdkClass.CallStatic("checkLicense", HykbContext.GetInstance().GetActivity(), appId, publicKey, listener);
+        }
+
+        public static void SetDebug(bool isDebug)
+        {
+            sdkClass.CallStatic("setDebug", isDebug);
+        }
+
+        public static void ReleaseSDK()
+        {
+            sdkClass.CallStatic("ReleaseSDK");
+        }
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b16be3ec01d82a3478e28f1cdd0c3783
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f9d965bcfa729b345a16ee7269b7afde
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 78 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs

@@ -0,0 +1,78 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk.pay.bean;
+
+/// <summary>
+/// 好游快爆SDK
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay
+{
+    /// <summary>
+    /// 好游快爆SDK的静态方法包装,用于untiy与安卓SDK对接及交互。
+    /// </summary>
+    public class HykbPay
+    {
+        // 单例中间层对象,方便获取
+        private static AndroidJavaClass sPayJavaClass;
+        public static AndroidJavaClass getPayClass()
+        {
+            if (sPayJavaClass == null)
+            {
+                sPayJavaClass = new AndroidJavaClass("com.m3839.sdk.pay.HykbPay");
+            }
+            return sPayJavaClass;
+        }
+
+        /// <summary>
+        /// 调用支付
+        /// </summary>
+        /// <param name="payInfo">支付信息包装</param>
+        /// <param name="listener">支付结果的回调监听</param>
+        [System.Obsolete("该方法已过期")]
+        public static void pay(bean.HykbPayInfo payInfo, listener.HykbPayListener listener)
+        {
+            getPayClass().CallStatic("pay", HykbContext.GetInstance().GetActivity(), HykbPayInfo.ToA(payInfo), listener);
+        }
+
+        /// <summary>
+        /// 调用支付
+        /// </summary>
+        /// <param name="payInfo">支付信息包装</param>
+        /// <param name="listener">支付结果的回调监听</param>
+        public static void Pay(bean.HykbPayInfo payInfo, listener.HykbV2PayListener listener)
+        {
+            getPayClass().CallStatic("pay", HykbContext.GetInstance().GetActivity(), HykbPayInfo.ToA(payInfo), listener);
+        }
+
+        /// <summary>
+        /// 商品发放上报
+        /// </summary>
+        /// <param name="cpOrderId">游戏的订单编号</param>
+        /// <param name="money">充值金额</param>
+        /// <param name="goodsName">商品名称</param>
+        public static void reportNotifyGoods(string cpOrderId, string money, string goodsName)
+        {
+            getPayClass().CallStatic("reportNotifyGoods", cpOrderId, money, goodsName);
+        }
+
+        /// <summary>
+        /// 回调通知
+        /// </summary>
+        /// <param name="cpOrderId">游戏的订单编号</param>
+        public static void unityCallBackReport(string cpOrderId)
+        {
+            getPayClass().CallStatic("unityCallBackReport", cpOrderId);
+        }
+
+        /// <summary>
+        /// 资源释放
+        /// </summary>
+        public static void ReleaseSDK()
+        {
+            getPayClass().CallStatic("releaseSDK");
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a871c3875e749493d90c376ecabcdfb8
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 950f88c1b720342cf946d1f084fd6646
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 63 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs

@@ -0,0 +1,63 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆支付信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay.bean
+{
+    public class HykbPayInfo
+    {
+        public string goodsName;
+        public int money;
+        public int server;
+        public string cpOrderId;
+        public string ext;
+        /// <summary>
+        /// 支付信息包装
+        /// </summary>
+        /// <param name="goodsName">商品信息</param>
+        /// <param name="money">下单金额,单位是元</param>
+        /// <param name="server">区服标识</param>
+        /// <param name="cpOrderId">游戏的订单编号</param>
+        /// <param name="ext">透传字段</param>
+        public HykbPayInfo(string goodsName, int money, int server, string cpOrderId, string ext)
+        {
+            this.goodsName = goodsName;
+            this.money = money;
+            this.server = server;
+            this.cpOrderId = cpOrderId;
+            this.ext = ext;
+
+            
+        }
+
+
+        /// <summary>
+        /// 支付信息包装
+        /// </summary>
+        /// <param name="payInfo">支付信java对象</param>
+        public HykbPayInfo(AndroidJavaObject payInfo)
+        {
+            this.goodsName = payInfo.Get<string>("goodsName");
+            this.money = payInfo.Get<int>("money");
+            this.server = payInfo.Get<int>("server");
+            this.cpOrderId = payInfo.Get<string>("cpOrderId");
+            this.ext = payInfo.Get<string>("ext");
+        }
+
+        public static AndroidJavaObject ToA(HykbPayInfo info)
+        {
+            AndroidJavaObject payInfo = new AndroidJavaObject("com.m3839.sdk.pay.bean.HykbPayInfo");
+            payInfo.Set<string>("cpOrderId", info.cpOrderId);
+            payInfo.Set<string>("goodsName", info.goodsName);
+            payInfo.Set<int>("money", info.money);
+            payInfo.Set<int>("server", info.server);
+            payInfo.Set<string>("ext", info.ext);
+
+            return payInfo;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e9911259892424cecb658cbc3da09c4f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cea6963349fcd4427aec3b0aba4a4db2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 39 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs

@@ -0,0 +1,39 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆支付回调接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay.listener
+{
+    public abstract class HykbPayListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 支付回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbPayListener() : base("com.m3839.sdk.pay.listener.HykbPayListener") { }
+
+        /// <summary>
+        /// 支付结果
+        /// </summary>
+        /// <param name="code">支付结果标识码</param>
+        /// <param name="message">提示</param>
+        /// <param name="payInfo">支付原始数据</param>
+        public void onPayResult(int code, string message, AndroidJavaObject payInfo)
+        {
+            bean.HykbPayInfo hykbPayInfo = new bean.HykbPayInfo(payInfo);
+            HykbPay.unityCallBackReport(hykbPayInfo.cpOrderId);
+            OnPayResult(code, message, hykbPayInfo);
+        }
+
+        /// <summary>
+        /// 支付结果
+        /// </summary>
+        /// <param name="code">支付结果标识码</param>
+        /// <param name="message">提示</param>
+        /// <param name="payInfo">支付原始数据</param>
+        public abstract void OnPayResult(int code, string message, bean.HykbPayInfo payInfo);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 613319c5376964b1cb8b51c9ce5f1b6b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 61 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs

@@ -0,0 +1,61 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆支付回调V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay.listener
+{
+    public abstract class HykbV2PayListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 支付回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbV2PayListener() : base("com.m3839.sdk.pay.listener.HykbV2PayListener") { }
+
+        /// <summary>
+        /// 充值成功
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        public void onSucceed(AndroidJavaObject payInfo)
+        {
+            bean.HykbPayInfo hykbPayInfo = new bean.HykbPayInfo(payInfo);
+            HykbPay.unityCallBackReport(hykbPayInfo.cpOrderId);
+            OnSucceed(hykbPayInfo);
+        }
+
+     
+        /// <summary>
+        /// 充值失败
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        /// <param name="code">失败code</param>
+        /// <param name="message">失败原因</param>
+        public void onFailed(AndroidJavaObject payInfo, int code, string message)
+        {
+            bean.HykbPayInfo hykbPayInfo = new bean.HykbPayInfo(payInfo);
+            OnFailed(hykbPayInfo, code, message);
+        }
+
+
+        /// <summary>
+        /// 充值成功
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        public abstract void OnSucceed(bean.HykbPayInfo payInfo);
+
+
+        /// <summary>
+        /// 充值失败
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        /// <param name="code">失败code</param>
+        /// <param name="message">失败原因</param>
+        public abstract void OnFailed(bean.HykbPayInfo payInfo, int code, string message);
+
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7a0ba8a5fe27e4a9188d28dafd07739e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ba3686d45635cc04283ad915c0e4eb40
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 35 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs

@@ -0,0 +1,35 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆单机防沉迷回调接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.single
+{
+    public abstract class UnionFcmListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 快爆单机防沉迷回调接口
+        /// </summary>
+        public UnionFcmListener() : base("com.m3839.sdk.single.UnionFcmListener") { }
+
+        /// <summary>
+        /// 回调
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">返回的信息</param>
+        public void onFcm(int code, string message)
+        {
+            OnFcm(code, message);
+        }
+
+        /// <summary>
+        /// 回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">返回的信息</param>
+        public abstract void OnFcm(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1592d956ea547e741bf1e8d9d372f2c5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Some files were not shown because too many files changed in this diff