Эх сурвалжийг харах

Merge remote-tracking branch 'remotes/origin/master' into douYou

# Conflicts:
#	.gitignore
#	GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs
#	GameClient/Assets/Game/Launcher/Platform/QDManagerInit.cs
#	GameClient/ProjectSettings/ProjectSettings.asset
hexiaojie 1 жил өмнө
parent
commit
f9713a91eb
100 өөрчлөгдсөн 2339 нэмэгдсэн , 467 устгасан
  1. 6 0
      .gitignore
  2. 8 0
      GameClient/.idea/.idea.GameClient/.idea/indexLayout.xml
  3. 1 1
      GameClient/Assets/AssetBundleBuilderSetting.asset
  4. 8 0
      GameClient/Assets/Demo.meta
  5. 800 0
      GameClient/Assets/Demo/Demo.cs
  6. 1 1
      GameClient/Assets/Demo/Demo.cs.meta
  7. 10 2
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  8. 30 0
      GameClient/Assets/Game/HotUpdate/Data/ActivityDataManager.cs
  9. 4 4
      GameClient/Assets/Game/HotUpdate/Data/LeagueDataManager.cs
  10. 15 0
      GameClient/Assets/Game/HotUpdate/Data/MainDataManager.cs
  11. 76 0
      GameClient/Assets/Game/HotUpdate/Data/ShareDataManager.cs
  12. 11 0
      GameClient/Assets/Game/HotUpdate/Data/ShareDataManager.cs.meta
  13. 1 1
      GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs
  14. 0 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_ActivityTeaVisitUI.cs
  15. 6 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CardSynthetic/UI_CardSyntheticUI.cs
  16. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_PhotographSaveUI.cs
  17. 13 13
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_Button6.cs
  18. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_Button6.cs.meta
  19. 3 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_ButtonModleEffect.cs
  20. 23 13
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_MainUI.cs
  21. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryDialogUI.cs
  22. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RoleInfo/UI_RoleInfoUI.cs
  23. 8 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Share.meta
  24. 110 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Share/UI_ShareUI.cs
  25. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Share/UI_ShareUI.cs.meta
  26. 0 1
      GameClient/Assets/Game/HotUpdate/HotUpdateDriver.cs
  27. 35 38
      GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs
  28. 3 0
      GameClient/Assets/Game/HotUpdate/Platform/ShareSDK.meta
  29. 124 0
      GameClient/Assets/Game/HotUpdate/Platform/ShareSDK/QDShareManager.cs
  30. 3 0
      GameClient/Assets/Game/HotUpdate/Platform/ShareSDK/QDShareManager.cs.meta
  31. 32 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/ShareRecordSProxy.cs
  32. 3 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/ShareRecordSProxy.cs.meta
  33. 16 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/ShareSProxy.cs
  34. 11 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/ShareSProxy.cs.meta
  35. 5 0
      GameClient/Assets/Game/HotUpdate/Utils/ResPathUtil.cs
  36. 2 5
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivitySyntheticView.cs
  37. 2 5
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs
  38. 6 13
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs
  39. 3 5
      GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoEntryView.cs
  40. 1 1
      GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoView.cs
  41. 1 1
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ZGTHgiftTipsView.cs
  42. 13 0
      GameClient/Assets/Game/HotUpdate/Views/Card/CardSyntheticView.cs
  43. 18 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingSelectView.cs
  44. 30 4
      GameClient/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingUpgradeView.cs
  45. 7 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographSaveView.cs
  46. 4 2
      GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs
  47. 17 2
      GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs
  48. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs
  49. 7 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  50. 70 9
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs
  51. 22 1
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  52. 53 5
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs
  53. 6 1
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/RoleInfoView.cs
  54. 8 0
      GameClient/Assets/Game/HotUpdate/Views/Share.meta
  55. 88 0
      GameClient/Assets/Game/HotUpdate/Views/Share/ShareView.cs
  56. 11 0
      GameClient/Assets/Game/HotUpdate/Views/Share/ShareView.cs.meta
  57. 10 7
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreView.cs
  58. 21 1
      GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs
  59. 20 0
      GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingShowView.cs
  60. 1 1
      GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingSwitchView.cs
  61. 1 0
      GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs
  62. 2 2
      GameClient/Assets/Game/Launcher/GameLauncher.cs
  63. 1 1
      GameClient/Assets/Game/Launcher/LauncherConfig.cs
  64. 0 2
      GameClient/Assets/Game/Launcher/LauncherController.cs
  65. 7 1
      GameClient/Assets/Game/Launcher/Platform/QDManagerInit.cs
  66. 3 0
      GameClient/Assets/Game/Launcher/Platform/ShareSDK.meta
  67. 24 0
      GameClient/Assets/Game/Launcher/Platform/ShareSDK/IShareSDKListener.cs
  68. 3 0
      GameClient/Assets/Game/Launcher/Platform/ShareSDK/IShareSDKListener.cs.meta
  69. 77 0
      GameClient/Assets/Game/Launcher/Platform/ShareSDK/QDShareManagerInit.cs
  70. 3 0
      GameClient/Assets/Game/Launcher/Platform/ShareSDK/QDShareManagerInit.cs.meta
  71. 24 28
      GameClient/Assets/Plugins/Android/AndroidManifest.xml
  72. BIN
      GameClient/Assets/Plugins/Android/ShareSDKU3D.jar
  73. 1 1
      GameClient/Assets/Plugins/Android/ShareSDKU3D.jar.meta
  74. 8 0
      GameClient/Assets/Plugins/Android/baseProjectTemplate.gradle
  75. 1 1
      GameClient/Assets/Plugins/Android/baseProjectTemplate.gradle.meta
  76. 6 0
      GameClient/Assets/Plugins/Android/gradleTemplate.properties
  77. 7 0
      GameClient/Assets/Plugins/Android/gradleTemplate.properties.meta
  78. 135 0
      GameClient/Assets/Plugins/Android/launcherTemplate.gradle
  79. 7 0
      GameClient/Assets/Plugins/Android/launcherTemplate.gradle.meta
  80. BIN
      GameClient/Assets/Plugins/Android/libs/douyou-release.aar
  81. 0 32
      GameClient/Assets/Plugins/Android/libs/douyou-release.aar.meta
  82. BIN
      GameClient/Assets/Plugins/Android/libs/douyouTT-release.aar
  83. 0 249
      GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java
  84. 8 0
      GameClient/Assets/Plugins/com/easy/bugly.meta
  85. 18 0
      GameClient/Assets/Plugins/com/easy/bugly/GamePlayerActivity.java
  86. 1 1
      GameClient/Assets/Plugins/com/easy/bugly/GamePlayerActivity.java.meta
  87. 37 0
      GameClient/Assets/ResIn/Material/EyeOpeningEffect.mat
  88. 8 0
      GameClient/Assets/ResIn/Material/EyeOpeningEffect.mat.meta
  89. 1 1
      GameClient/Assets/ResIn/Material/ImageGradient.mat.meta
  90. 125 0
      GameClient/Assets/ResIn/Shader/EyeOpeningEffect.shader
  91. 10 0
      GameClient/Assets/ResIn/Shader/EyeOpeningEffect.shader.meta
  92. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0!a.png
  93. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0.png
  94. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_1!a.png
  95. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_1.png
  96. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2!a.png
  97. 1 1
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2!a.png.meta
  98. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2.png
  99. 1 1
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2.png.meta
  100. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_3!a.png

+ 6 - 0
.gitignore

@@ -46,3 +46,9 @@
 /GameClient/Assets/StreamingAssets
 /StaticRes
 /GameClient/.idea/.idea.GameClient/.idea/indexLayout.xml
+/GameClient/Assets/Plugins/Android/libs/douyou-release.aar
+/GameClient/Assets/Plugins/Android/libs/douyou-release.aar.meta
+/GameClient/Assets/Plugins/Android/libs/douyouTT-release.aar
+/GameClient/Assets/Plugins/Android/libs/douyouTT-release.aar.meta
+/GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java
+/GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java.meta

+ 8 - 0
GameClient/.idea/.idea.GameClient/.idea/indexLayout.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="UserContentModel">
+    <attachedFolders />
+    <explicitIncludes />
+    <explicitExcludes />
+  </component>
+</project>

+ 1 - 1
GameClient/Assets/AssetBundleBuilderSetting.asset

@@ -19,4 +19,4 @@ MonoBehaviour:
   OutputNameStyle: 1
   CopyBuildinFileOption: 0
   CopyBuildinFileTags: preload
-  EncyptionClassName: FileOffsetEncryption
+  EncyptionClassName: EncryptionNone

+ 8 - 0
GameClient/Assets/Demo.meta

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

+ 800 - 0
GameClient/Assets/Demo/Demo.cs

@@ -0,0 +1,800 @@
+using UnityEngine;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using cn.sharesdk.unity3d;
+using LitJson;
+public class Demo : MonoBehaviour {
+
+	public GUISkin demoSkin;
+	public ShareSDK ssdk;
+	
+	public MobSDK mobsdk;
+	
+	// Use this for initialization
+	void Start ()
+	{	
+		ssdk = gameObject.GetComponent<ShareSDK>();
+		ssdk.authHandler = OnAuthResultHandler;
+		ssdk.shareHandler = OnShareResultHandler;
+		ssdk.showUserHandler = OnGetUserInfoResultHandler;
+		ssdk.getFriendsHandler = OnGetFriendsResultHandler;
+		ssdk.followFriendHandler = OnFollowFriendResultHandler;
+		ssdk.clientValidForAndroidHandler = onIsClientValidForAndroid;
+
+		mobsdk = gameObject.GetComponent<MobSDK>();
+        #if UNITY_ANDROID
+		//ShareSDKRestoreScene.setRestoreSceneListener(OnRestoreScene);
+		
+        #elif UNITY_IPHONE
+		mobsdk.getPolicy = OnFollowGetPolicy;
+        ssdk.wxRequestHandler = GetWXRequestTokenResultHandler;
+        //ShareSDKRestoreScene.setRestoreSceneListener(OnRestoreScene);
+        #endif
+
+    }
+
+	// Update is called once per frame
+	void Update () 
+	{
+		if (Input.GetKeyDown(KeyCode.Escape)) {
+			Application.Quit();
+		}
+	}
+	
+	void OnGUI ()
+	{
+
+		GUI.skin = demoSkin;
+		
+		float scale = 1.0f;
+
+		if (Application.platform == RuntimePlatform.IPhonePlayer)
+		{
+			scale = Screen.width / 320;
+		}
+		
+		//float btnWidth = 165 * scale;
+		float btnWidth= Screen.width / 5 * 2;
+        float btnWidth2 = btnWidth + 80 * scale;
+
+        float btnHeight = Screen.height / 25;
+		float btnTop = 30 * scale;
+		float btnGap = 20 * scale;
+		GUI.skin.button.fontSize = Convert.ToInt32(13 * scale);
+
+		if (GUI.Button(new Rect((Screen.width - btnGap) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "Authorize"))
+		{
+			print(ssdk == null);
+
+#if UNITY_ANDROID
+		    ssdk.Authorize(PlatformType.SinaWeibo);
+#elif UNITY_IPHONE
+            ssdk.Authorize(PlatformType.Twitter);
+#endif
+		}
+
+		if (GUI.Button(new Rect((Screen.width - btnGap) / 2 + btnGap, btnTop, btnWidth, btnHeight), "Get User Info"))
+		{
+            //ssdk.GetUserInfo(PlatformType.Douyin);
+
+            //print("share result :" + ssdk.GetUserInfo(PlatformType.WeChat));
+			print("share result :" + ssdk.Authorize(PlatformType.WeChat));
+			
+			
+			//print("share result : " + ssdk.GetUserInfo(PlatformType.GooglePlus));
+        }
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnGap) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "Show Share Menu"))
+		{
+            	ShareContent content = new ShareContent();
+
+            //	//(Android only) 隐藏九宫格里面不需要用到的平台(仅仅是不显示平台)
+            //	//(Android only) 也可以把jar包删除或者把Enabl属性e改成false(对应平台的全部功能将用不了)
+                String[] platfsList = {((int)PlatformType.Facebook).ToString(), ((int)PlatformType.TencentWeibo).ToString()};
+            	content.SetHidePlatforms (platfsList);
+
+            	content.SetText("this is a test string.");
+				content.SetImageUrl("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+				content.SetUrl("https://www.mob.com");
+            	content.SetTitle("test title");
+				content.SetDouyin_shareActionMode(1);
+
+            //(Android only) 针对Android绕过审核的多图分享,传图片String数组 
+            //String[] imageArray =  {"/sdcard/test.jpg", "http://f1.webshare.mob.com/dimgs/1c950a7b02087bf41bc56f07f7d3572c11dfcf36.jpg", "/sdcard/test.jpg"};
+            //content.SetImageArray (imageArray);
+
+            //content.SetTitleUrl("https://www.baidu.com/");
+            //content.SetSite("Test site params test test");
+            //content.SetSiteUrl("https://www.baidu.com/");
+            //content.SetUrl("https://www.baidu.com/");
+            //content.SetComment("test description");
+            //content.SetMusicUrl("http://i.y.qq.com/v8/playsong.html?hostuin=0&songid=&songmid=002x5Jje3eUkXT&_wv=1&source=qq&appshare=iphone&media_mid=002x5Jje3eUkXT");
+
+            content.SetShareType(ContentType.Image);
+
+			//不同平台分享不同内容
+			//ShareContent customizeShareParams = new ShareContent();
+			//customizeShareParams.SetText("Sina share content");
+			//customizeShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			//customizeShareParams.SetShareType(ContentType.Text);
+			//customizeShareParams.SetObjectID("SinaID");
+			//content.SetShareContentCustomize(PlatformType.SinaWeibo, customizeShareParams);
+
+			//KakaoTalk原生只支持分享链接
+			ShareContent kakaoTalkCustomizeShareParams = new ShareContent();
+			kakaoTalkCustomizeShareParams.SetUrl("http://www.mob.com");
+			kakaoTalkCustomizeShareParams.SetShareType(ContentType.Webpage);
+			kakaoTalkCustomizeShareParams.SetTemplateId("11820");
+			content.SetShareContentCustomize(PlatformType.KakaoTalk, kakaoTalkCustomizeShareParams);
+
+			//KakaoStory分享图片
+			ShareContent kakaoStoryCustomizeShareParams = new ShareContent();
+			kakaoStoryCustomizeShareParams.SetText("");
+			kakaoStoryCustomizeShareParams.SetTitle("http://www.mob.com");
+			kakaoStoryCustomizeShareParams.SetImageUrl("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			kakaoStoryCustomizeShareParams.SetUrl("");
+			kakaoStoryCustomizeShareParams.SetPermission("0");
+			kakaoStoryCustomizeShareParams.SetEnableShare(true);
+
+			Hashtable androidExecParams = new Hashtable();
+			androidExecParams["andParam1"] = "value1";
+			androidExecParams["andParam2"] = "value2";
+			kakaoStoryCustomizeShareParams.SetAndroidExecParam(androidExecParams);
+
+			Hashtable iOSExecParams = new Hashtable();
+			iOSExecParams["iosParam1"] = "value1";
+			iOSExecParams["iosParam2"] = "value2";
+			kakaoStoryCustomizeShareParams.SetIphoneExecParam(iOSExecParams);
+
+			kakaoStoryCustomizeShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.KakaoStory, kakaoStoryCustomizeShareParams);
+
+			//TikTok分享多图
+			String[] imageArray = { "http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg", "http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg" };
+			ShareContent tiktokCustomizeShareParams = new ShareContent();
+			tiktokCustomizeShareParams.SetImageArray(imageArray);
+			tiktokCustomizeShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.TikTok, tiktokCustomizeShareParams);
+			
+#if UNITY_IPHONE
+			//SnapChat分享图片
+			ShareContent snapChatShareParams = new ShareContent();
+			snapChatShareParams.SetTitle("https://www.mobtech.com");
+			snapChatShareParams.SetImageUrl("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			snapChatShareParams.setSnapStickerImage("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			snapChatShareParams.setSnapStickerAnimated(0);
+			snapChatShareParams.setSnapStickerRotation(0);
+			snapChatShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.SnapChat, snapChatShareParams);
+            //快手SDK-分享私信
+            ShareContent ksShareParams = new ShareContent();
+            ksShareParams.SetTitle("title");
+            ksShareParams.SetDesc("desc");
+            ksShareParams.SetLinkURL("https://www.mob.com");
+            ksShareParams.SetThumbImageUrl("http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
+            ksShareParams.SetExtraInfo("message");
+            ksShareParams.SetShareType(ContentType.Message);
+			content.SetShareContentCustomize(PlatformType.KuaiShou, ksShareParams);
+#endif
+
+			//抖音-分享系统视频
+			//ShareContent dyShareParams = new ShareContent();
+			//dyShareParams.SetAssetLocalIdsArray();  //此处应传入从相册取得的图片或者视频文件的Assetlocalidentifier集合
+			//dyShareParams.SetDouyinHashtag("hastag");
+			//Hashtable extraInfo = new Hashtable();
+			//extraInfo["iosParam1"] = "value1";
+			//extraInfo["iosParam2"] = "value2";
+			//dyShareParams.SetDouyin_extraInfo(extraInfo);
+			//dyShareParams.SetShareType(ContentType.Video);
+			//content.SetShareContentCustomize(PlatformType.Douyin, dyShareParams);
+
+			//Facebook分享图片
+			ShareContent fbShareParams = new ShareContent();
+			fbShareParams.SetText("text");
+			fbShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			fbShareParams.setFacebookShareType(FacebookShareType.Native);
+			fbShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.Facebook, fbShareParams);
+
+			//FacebookMessenger分享图片
+			ShareContent messShareParams = new ShareContent();
+			messShareParams.SetTitle("title");
+			messShareParams.SetUrl("http://www.mob.com");
+			messShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			messShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.FacebookMessenger, messShareParams);
+
+			//Instagram分享图片
+			ShareContent insShareParams = new ShareContent();
+			insShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			insShareParams.SetMenuX(0);
+			insShareParams.SetMenuY(0);
+			content.SetShareContentCustomize(PlatformType.Instagram, insShareParams);
+
+			//LinkedIn分享链接
+			ShareContent linkedInShareParams = new ShareContent();
+			linkedInShareParams.SetTitle("title");
+			linkedInShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			linkedInShareParams.SetUrl("http://www.mob.com");
+			linkedInShareParams.SetTitle("title");
+			linkedInShareParams.SetDesc("desc");
+			linkedInShareParams.SetShareType(ContentType.Webpage);
+			content.SetShareContentCustomize(PlatformType.LinkedIn, linkedInShareParams);
+
+
+			//Instapaper分享链接
+			ShareContent instapapaerShareParams = new ShareContent();
+			instapapaerShareParams.SetTitle("title");
+			instapapaerShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			instapapaerShareParams.SetUrl("http://www.mob.com");
+			instapapaerShareParams.SetTitle("title");
+			instapapaerShareParams.SetShareType(ContentType.Webpage);
+			content.SetShareContentCustomize(PlatformType.Instapaper, instapapaerShareParams);
+
+			//Pocket分享链接
+			ShareContent pocketShareParams = new ShareContent();
+			pocketShareParams.SetTitle("title");
+			pocketShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			pocketShareParams.SetUrl("http://www.mob.com");
+			pocketShareParams.SetTitle("title");
+			pocketShareParams.SetShareType(ContentType.Webpage);
+			content.SetShareContentCustomize(PlatformType.Pocket, pocketShareParams);
+
+			//有道分享图片
+			ShareContent youdaoShareParams = new ShareContent();
+			youdaoShareParams.SetText("text");
+			youdaoShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			youdaoShareParams.SetTitle("title");
+			youdaoShareParams.SetSource("MOB");
+			youdaoShareParams.SetAuthor("mob");
+			content.SetShareContentCustomize(PlatformType.YouDaoNote, youdaoShareParams);
+
+#if UNITY_IPHONE
+			//Dropbox分享图片
+			ShareContent dropboxShareParams = new ShareContent();
+			//dropboxShareParams.SetAttachmentPath("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			var files = System.IO.Directory.GetFiles(Application.dataPath, "cat.mp4", System.IO.SearchOption.AllDirectories);
+			string filePath = files[0];
+			dropboxShareParams.SetAttachmentPath(filePath);
+			content.SetShareContentCustomize(PlatformType.Dropbox, dropboxShareParams);
+#endif
+			//明道分享链接
+			ShareContent mingdaoShareParams = new ShareContent();
+			mingdaoShareParams.SetTitle("title");
+			mingdaoShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			mingdaoShareParams.SetUrl("http://www.mob.com");
+			mingdaoShareParams.SetTitle("title");
+			mingdaoShareParams.SetShareType(ContentType.Webpage);
+			content.SetShareContentCustomize(PlatformType.MingDao, mingdaoShareParams);
+
+
+			//绿洲分享图片
+			ShareContent oasisShareParams = new ShareContent();
+			oasisShareParams.SetTitle("title");
+			oasisShareParams.SetText("text");
+			oasisShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			oasisShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.Oasis, oasisShareParams);
+
+
+			//telegram分享图片
+			ShareContent telegramShareParams = new ShareContent();
+			telegramShareParams.SetText("text");
+			telegramShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+			telegramShareParams.SetShareType(ContentType.Image);
+			content.SetShareContentCustomize(PlatformType.Telegram, telegramShareParams);
+
+			////Tumblr分享视频
+			//ShareContent tumblrShareParams = new ShareContent();
+			//var files = System.IO.Directory.GetFiles(Application.dataPath, "cat.mp4", System.IO.SearchOption.AllDirectories);
+			//string filePath = files[0];
+			//tumblrShareParams.SetTitle("title");
+			//tumblrShareParams.SetMediaDataPath(filePath);
+			//tumblrShareParams.SetShareType(ContentType.Video);
+			//content.SetShareContentCustomize(PlatformType.Tumblr, tumblrShareParams);
+
+			//优先客户端分享
+			content.SetEnableClientShare(true);
+                
+            //使用微博API接口应用内分享 iOS only
+            //content.SetEnableSinaWeiboAPIShare(true);
+
+            //通过分享菜单分享
+            ssdk.ShowPlatformList (null, content, 100, 100);
+
+		}
+			
+		if (GUI.Button(new Rect((Screen.width - btnGap) / 2 + btnGap, btnTop, btnWidth, btnHeight), "Show Share View"))
+		{
+			ShareContent content = new ShareContent();
+			content.SetText("this is a test string.");
+			content.SetImageUrl("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			content.SetTitle("test title");
+			content.SetTitleUrl("http://www.mob.com");
+			content.SetSite("Mob-ShareSDK");
+			content.SetSiteUrl("http://www.mob.com");
+			content.SetUrl("http://www.mob.com");
+			content.SetComment("test description");
+			content.SetMusicUrl("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3");
+			content.SetShareType(ContentType.Image);
+
+			ssdk.ShowShareContentEditor (PlatformType.SinaWeibo, content);
+		}
+#if UNITY_ANDROID
+
+#elif UNITY_IPHONE
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "Share With Activity"))
+		{
+			//系统分享示例
+			ShareContent content = new ShareContent();
+			content.SetText("this is a test string.");
+			content.SetImageUrl("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			content.SetTitle("test title");
+			content.SetTitleUrl("http://www.mob.com");
+			content.SetUrl("http://www.mob.com");
+			content.SetShareType(ContentType.Image);
+			ssdk.ShareContentWithActivity (PlatformType.WeChat, content);
+		}
+#endif
+
+
+
+		btnTop += btnHeight + 20 * scale;
+        if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "Share Content"))
+		{
+
+            //抖音-分享本地视频
+            ShareContent content = new ShareContent();
+			//var files = System.IO.Directory.GetFiles(Application.dataPath, "cat.mp4", System.IO.SearchOption.AllDirectories);
+			//string filePath = files[0];
+			//content.SetUrl(filePath);
+			//分享图片到IM
+			content.SetImageUrl("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
+			content.SetShareType(ContentType.Image);
+			content.SetDouyin_shareActionMode(1);
+            ssdk.ShareContent(PlatformType.Douyin, content);
+
+            /*iOS Only*/
+
+            ////※单个平台的分享示例如下※:
+
+            ////调用公用参数构造方法的,通过如下方式,如TikTok分享多图
+            //String[] imageArray = { "http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg", "http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg" };
+            //content.SetImageArray(imageArray);
+            //content.SetShareType(ContentType.Image);
+            //ssdk.ShareContent(PlatformType.TikTok, content);
+
+
+            ////调用自定义的参数构造方法的,需要通过如下方式,如:KakaoTalk
+            //ShareContent customizeShareParams = new ShareContent();
+            //customizeShareParams.SetUrl("http://www.mob.com");
+            //customizeShareParams.SetShareType(ContentType.Webpage);
+            //customizeShareParams.SetTemplateId("11820");
+            //content.SetShareContentCustomize(PlatformType.KakaoTalk, customizeShareParams);
+            //ssdk.ShareContent(PlatformType.KakaoTalk, content);
+
+            ////快手SDK-分享私信
+            //ShareContent ksShareParams = new ShareContent();
+            //ksShareParams.SetTitle("title");
+            //ksShareParams.SetDesc("desc");
+            //ksShareParams.SetLinkURL("https://www.mob.com");
+            //ksShareParams.SetThumbImageUrl("http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
+            //ksShareParams.SetExtraInfo("message");
+            //ksShareParams.SetShareType(ContentType.Message);
+            //content.SetShareContentCustomize(PlatformType.KuaiShou, ksShareParams);
+            //ssdk.ShareContent(PlatformType.KuaiShou, content);
+
+            ////reddit分享链接
+            //ShareContent redditShareParams = new ShareContent();
+            //redditShareParams.SetText("text");
+            //redditShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
+            //redditShareParams.SetUrl("https://www.mob.com");
+            //redditShareParams.SetTitle("title");
+            //redditShareParams.SetShareType(ContentType.Webpage);
+            //content.SetShareContentCustomize(PlatformType.Reddit, redditShareParams);
+
+
+            // ShareContent content = new ShareContent();
+            // content.SetText("Test text");
+            // content.SetImageUrl("http://pic28.photophoto.cn/20130818/0020033143720852_b.jpg");
+            // ssdk.ShareContent (PlatformType.Twitter, content);
+
+        }
+
+		//if (GUI.Button(new Rect((Screen.width - btnGap) / 2 + btnGap, btnTop, btnWidth, btnHeight), "Get Friends SinaWeibo "))
+		//{
+		//获取新浪微博好友,第一页,每页15条数据
+		//print ("Click Btn Of Get Friends SinaWeibo");
+		//			ssdk.GetFriendList (PlatformType.SinaWeibo, 15, 0);
+		//ssdk.openMiniProgram("gh_afb25ac019c9","pages/index/index",0);
+		//}
+
+		btnTop += btnHeight + 20 * scale;
+        if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "Get Token "))
+		{
+			Hashtable authInfo = ssdk.GetAuthInfo (PlatformType.WeChat);			
+			print ("share result :");
+			print (MiniJSON.jsonEncode(authInfo));
+		}
+			
+		//if (GUI.Button(new Rect((Screen.width - btnGap) / 2 + btnGap , btnTop, btnWidth, btnHeight), "Close SSO Auth"))
+		//{
+			//ssdk.DisableSSO (true);			
+		//}
+
+		btnTop += btnHeight + 20 * scale;
+        if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "Remove Authorize "))
+		{
+			ssdk.CancelAuthorize (PlatformType.WeChat);			
+		}
+
+        //if (GUI.Button(new Rect((Screen.width - btnGap) / 2 + btnGap, btnTop, btnWidth, btnHeight), "Add Friend "))
+        //{
+        //关注新浪微博
+        //ssdk.AddFriend (PlatformType.SinaWeibo, "3189087725");			
+        //}
+
+        btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "ShareWithContentName(iOS only)"))
+		{
+			Hashtable customFields = new Hashtable ();
+			customFields["imgUrl"] = "http://ww1.sinaimg.cn/mw690/006dJESWgw1f6iyb8bzraj31kw0v67a2.jpg";
+			//根据配置文件分享【本接口功能仅暂时支持iOS】
+			ssdk.ShareWithContentName(PlatformType.SinaWeibo, "ShareSDK", customFields);		
+		}
+
+		//btnTop += btnHeight + 20 * scale;
+		//if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "ShowShareMenuWithContentName(iOS only)"))
+		//{
+		//	Hashtable customFields = new Hashtable ();
+		//	customFields["imgUrl"] = "http://ww1.sinaimg.cn/mw690/006dJESWgw1f6iyb8bzraj31kw0v67a2.jpg";
+		//	//根据配置文件展示分享菜单分享【本接口功能仅暂时支持iOS】
+		//	ssdk.ShowPlatformListWithContentName ("ShareSDK", customFields, null, 100, 100);
+		//}
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "ShowShareViewWithContentName(iOS only)"))
+		{
+			Hashtable customFields = new Hashtable ();
+			//根据配置文件展示编辑界面分享【本接口功能仅暂时支持iOS】
+			customFields["imgUrl"] = "http://ww1.sinaimg.cn/mw690/006dJESWgw1f6iyb8bzraj31kw0v67a2.jpg";
+			ssdk.ShowShareContentEditorWithContentName(PlatformType.SinaWeibo, "ShareSDK", customFields);		
+		}
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "SMS Authorize(Android only)"))
+		{
+			ssdk.Authorize(PlatformType.SMS);		
+		}
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "submitPolicyGrantResult"))
+		{
+			
+			Debug.Log("ssdk ======> " + ssdk);
+			Debug.Log("mobsdk ======> " + mobsdk);
+			
+			mobsdk.submitPolicyGrantResult(true);
+			Debug.Log("mobsdk submitPolicyGrantResult======> " + mobsdk.submitPolicyGrantResult(true).ToString());
+		}
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "getPrivacyPolicy"))
+		{
+			
+			Debug.Log("ssdk ======> " + ssdk);
+			Debug.Log("mobsdk ======> " + mobsdk);
+			#if UNITY_IPHONE
+            mobsdk.getPrivacyPolicy(true,mobsdk.getDeviceCurrentLanguage());
+#elif UNITY_ANDROID
+			mobsdk.getPrivacyPolicy(true, "en");
+			Debug.Log("mobsdk getPrivacyPolicy======> " + mobsdk.getPrivacyPolicy(true, "en"));
+#endif
+		}
+
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "Open wxMiniProgram(iOS only)"))
+		{
+#if UNITY_IPHONE
+			ssdk.openMiniProgram("gh_afb25ac019c9", "pages/index/index", 0);
+#elif UNITY_ANDROID
+#endif
+
+		}
+
+		btnTop += btnHeight + 20 * scale;
+		if (GUI.Button(new Rect((Screen.width - btnGap) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "Share wxMiniProgram"))
+		{
+#if UNITY_IPHONE
+            ShareContent content = new ShareContent ();
+			content.SetTitle ("MiniProgram");
+			content.SetText ("test MiniProgram");
+			content.SetUrl("http://www.mob.com");
+			content.SetMiniProgramPath ("pages/index/index");
+			content.SetThumbImageUrl ("http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
+			content.SetMiniProgramHdThumbImage ("http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
+			content.SetMiniProgramUserName ("gh_afb25ac019c9");
+			content.SetMiniProgramWithShareTicket (true);
+            // iOS/Android 微信小程序的版本(0-正式,1-开发,2-体验)
+            content.SetMiniProgramType (0);
+			content.SetShareType (ContentType.MiniProgram);
+
+			ShareContent shareContent = new ShareContent ();
+			shareContent.SetShareContentCustomize (PlatformType.WeChat, content);
+			ssdk.ShareContent (PlatformType.WeChat, shareContent);
+#elif UNITY_ANDROID
+            ShareContent content = new ShareContent ();
+            content.SetTitle ("MiniProgram");
+            content.SetText ("test MiniProgram");
+            content.SetUrl("http://www.mob.com");
+            content.SetMiniProgramType (0);
+            content.SetMiniProgramUserName ("gh_52568203455c");
+            content.SetImageUrl("http://pic28.photophoto.cn/20130818/0020033143720852_b.jpg");
+            content.SetShareType (ContentType.MiniProgram);
+            
+            ShareContent shareContent = new ShareContent ();
+			shareContent.SetShareContentCustomize (PlatformType.WeChat, content);
+			ssdk.ShareContent (PlatformType.WeChat, shareContent);
+#endif
+		}
+
+      btnTop += btnHeight + 20 * scale;
+        if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "isClientValidForAndroid -QQ"))
+      {
+         ssdk.isClientValidForAndroid(PlatformType.QQ);
+      }
+
+
+      btnTop += btnHeight + 20 * scale;
+      if (GUI.Button(new Rect((Screen.width - btnGap) / 2 + btnGap, btnTop, btnWidth, btnHeight), "Share qqMiniProgram(iOS only)"))
+        {
+#if UNITY_IPHONE
+            ShareContent content = new ShareContent();
+            content.SetTitle("MiniProgram");
+            content.SetText("test MiniProgram");
+            content.SetUrl("http://www.mob.com");
+            content.SetThumbImageUrl("http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
+            content.SetMiniProgramPath("pages/index/index");
+            content.SetMiniProgramHdThumbImage("http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
+            content.SetMiniProgramAppID("1109762672");
+            content.SetMiniProgramWebpageUrl("www.qq.com");
+            //iOS/Android QQ小程序的类型,默认正式版(3),可选测试版(1)、预览版(4)
+            content.SetMiniProgramType(3);
+            content.SetShareType(ContentType.MiniProgram);
+
+            ShareContent shareContent = new ShareContent();
+            shareContent.SetShareContentCustomize(PlatformType.QQ, content);
+            ssdk.ShareContent(PlatformType.QQ, shareContent);
+
+#elif UNITY_ANDROID
+            //===============================================================
+            //when you test QQ miniprogram, you should use this params
+            //At the same time, the package name and signature should 
+            //correspond to the package name signature of the specific 
+            //QQ sharing small program applied in the background of tencent
+            //===============================================================
+            //ShareContent content = new ShareContent();
+            //content.SetTitle("MiniProgram");
+            //content.SetText("test MiniProgram");
+            //content.SetTitleUrl("http://www.mob.com");
+            //content.SetImageUrl("http://www.3wyu.com/wp-content/uploads/6e0eaf15gy1fvr5tnm2dfj20f108gtad.jpg");//必须为网络图片
+            //content.SetShareType(ContentType.QQ_MINI_PROGRAM);
+            //content.SetMiniProgramAppID("1108318575");
+            //content.SetMiniProgramPath("page/share/index.html?share_name=QQ%E9%9F%B3%E4%B9%90&share_key=5aIqFGg&from=disk");
+            //content.SetQQMiniProgramType("");
+
+            //ShareContent shareContent = new ShareContent();
+            //shareContent.SetShareContentCustomize(PlatformType.QQ, content);
+            //ssdk.ShareContent(PlatformType.QQ, shareContent);
+#endif
+		}
+
+		//btnTop += btnHeight + 20 * scale;
+		//if (GUI.Button(new Rect((Screen.width - btnWidth2) / 2, btnTop, btnWidth2, btnHeight), "Share Sina LinkCard"))
+		//{
+		//#if UNITY_IPHONE
+		//ShareContent content = new ShareContent();
+		//content.SetText("sina LinkCard");
+		//content.SetUrl("http://www.mob.com");
+		//content.SetImageUrl("http://www.mob.com/assets/images/ShareSDK_pic_1-09d293a6.png");//必须为网络图片
+		//content.SetSinaLinkCard(true);
+		//content.SetSinaCardTitle("这是Title");
+		//content.SetSinaCardSummary("这是Summary");
+		//content.SetShareType(ContentType.Webpage);
+
+		//ShareContent shareContent = new ShareContent();
+		//shareContent.SetShareContentCustomize(PlatformType.SinaWeibo, content);
+		//ssdk.ShareContent(PlatformType.SinaWeibo, shareContent);
+
+
+		//#elif UNITY_ANDROID
+		//JsonData jsonData = new JsonData();
+		//jsonData["url"] = "http://wx4.sinaimg.cn/large/006WfoFPly1fq0jo9svnaj30dw0dwdhv.jpg";
+		//jsonData["width"] = "120";
+		//jsonData["height"] = "120";
+
+
+		//ShareContent content = new ShareContent();
+		//content.SetText("sina LinkCard");
+		//content.SetSinaCardCreateAtAndroid("2019-01-24");
+		//content.SetSinaCardDisplayNameAndroid("displayName");
+		//content.SetSinaCardSummary("Summary");
+		//content.SetSinaCardURLAndroid("http://www.mob.com/");
+		//content.SetSinaCardTypeAndroid("webpage");
+		//content.SetSinaCardImageAndroid(jsonData);
+		//content.SetEnableClientShare(true);
+
+		//ShareContent shareContent = new ShareContent();
+		//shareContent.SetShareContentCustomize(PlatformType.SinaWeibo, content);
+
+		//ssdk.ShareContent(PlatformType.SinaWeibo, shareContent);
+		//#endif
+		//}
+	}
+	
+	void OnAuthResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
+	{
+		if (state == ResponseState.Success)
+		{
+			if (result != null && result.Count > 0) {
+				print ("authorize success !" + "Platform :" + type + "result:" + MiniJSON.jsonEncode(result));
+			} else {
+				print ("authorize success !" + "Platform :" + type);
+			}
+		}
+		else if (state == ResponseState.Fail)
+		{
+#if UNITY_ANDROID
+			print ("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
+#elif UNITY_IPHONE
+			print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
+#endif
+		}
+		else if (state == ResponseState.Cancel) 
+		{
+			print ("cancel !");
+		}
+	}
+	
+	void OnGetUserInfoResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result)
+	{
+		if (state == ResponseState.Success)
+		{
+			print ("get user info result :");
+			print (MiniJSON.jsonEncode(result));
+            print ("AuthInfo:" + MiniJSON.jsonEncode (ssdk.GetAuthInfo (type)));
+			print ("Get userInfo success !Platform :" + type );
+		}
+		else if (state == ResponseState.Fail)
+		{
+#if UNITY_ANDROID
+			print ("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
+#elif UNITY_IPHONE
+			print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
+#endif
+		}
+		else if (state == ResponseState.Cancel) 
+		{
+			print ("cancel !");
+		}
+	}
+	
+	void OnShareResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result)
+	{
+		if (state == ResponseState.Success)
+		{
+			print ("share successfully - share result :");
+			print (MiniJSON.jsonEncode(result));
+		}
+		else if (state == ResponseState.Fail)
+		{
+#if UNITY_ANDROID
+			print ("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
+#elif UNITY_IPHONE
+			print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
+#endif
+		}
+		else if (state == ResponseState.Cancel) 
+		{
+			print ("cancel !");
+		}
+	}
+
+	void OnGetFriendsResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result)
+	{
+		if (state == ResponseState.Success)
+		{			
+			print ("get friend list result :");
+			print (MiniJSON.jsonEncode(result));
+		}
+		else if (state == ResponseState.Fail)
+		{
+#if UNITY_ANDROID
+			print ("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
+#elif UNITY_IPHONE
+			print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
+#endif
+		}
+		else if (state == ResponseState.Cancel) 
+		{
+			print ("cancel !");
+		}
+	}
+
+	void OnFollowFriendResultHandler (int reqID, ResponseState state, PlatformType type, Hashtable result)
+	{
+		if (state == ResponseState.Success)
+		{
+			print ("Follow friend successfully !");
+		}
+		else if (state == ResponseState.Fail)
+		{
+#if UNITY_ANDROID
+			print ("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
+#elif UNITY_IPHONE
+			print ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
+#endif
+		}
+		else if (state == ResponseState.Cancel) 
+		{
+			print ("cancel !");
+		}
+	}
+
+   void onIsClientValidForAndroid (int reqID, ResponseState state, PlatformType type, Hashtable result)
+   {
+      if (state == ResponseState.Success)
+      {
+         print ("IsClientValidForAndroid successfully !");
+          print ("IsClientValidForAndroid:" + MiniJSON.jsonEncode (MiniJSON.jsonEncode(result)));
+      }
+      else if (state == ResponseState.Fail)
+      {
+         print ("IsClientValidForAndroid Fail !");
+      }
+      else if (state == ResponseState.Cancel)
+      {
+         print ("cancel !");
+      }
+   }
+
+    public static void OnRestoreScene(RestoreSceneInfo scene)
+    {
+        Hashtable customParams = scene.customParams; 
+        if (customParams != null)
+        {
+            Debug.Log("[sharesdk-unity-Demo]OnRestoreScen(). path:" + scene.path.ToString() + ", params:" + scene.customParams.toJson());
+        }
+        else
+        {
+            Debug.Log("[sharesdk-unity-Demo]OnRestoreScen(). path:" + scene.path.ToString() + ", params:null");
+        }
+
+        //根据scene开发者自己处理场景转换
+        //SceneManager.LoadScene("SceneA");
+    }
+
+
+#if UNITY_IPHONE
+
+    public static void GetWXRequestTokenResultHandler(String authcode, sendWXRequestToken send)
+    {
+        Debug.Log("[GetWXRequestTokenResultHandler:" + authcode);
+        send("11", "22");
+    }
+
+    public static void GetWXRefreshTokenResultHandler(String uid, sendWXRefreshToken send)
+    {
+        send("11");
+    }
+#endif
+    //隐私协议回调
+	public static void OnFollowGetPolicy(string url)
+	{
+		Debug.Log("[OnFollowGetPolicy:" + url);
+	}
+}

+ 1 - 1
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_BtnBack0.cs.meta → GameClient/Assets/Demo/Demo.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: d055b393d18a66d4c998ef80dc39e70f
+guid: e94ace64ea93b4d60831774b3bfedaaf
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 10 - 2
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -293,7 +293,15 @@ namespace GFGGame
 
         public static void QuitToLoginView(bool logout, bool fromSdkLogoutCallback = false)
         {
-            QDDouYouManager.Instance.LoginOutBefore();
+            switch (LauncherConfig.ChannelId)
+            {
+                case (int)ChannelID.DouYouTest:
+                    QDDouYouManager.Instance.LoginOutBefore();
+                    break;
+                default:
+                    break;
+            }
+
             FieldDataManager.Instance.waitToShowFieldFightEndView = false;
             GameGlobal.AutoSevenDayLoginView = true;
             GameGlobal.AutoDailySignView = true;
@@ -354,7 +362,7 @@ namespace GFGGame
             GameGlobal.zoneScene.GetComponent<AccountInfoComponent>()?.Clear();
             if (logout)
             {
-                    QDManager.Logout(fromSdkLogoutCallback);
+                    QDManager.Logout();
             }
             ViewManager.Hide<GuideView>();
             if(!ViewManager.isViewOpen(typeof(LoginView).FullName))

+ 30 - 0
GameClient/Assets/Game/HotUpdate/Data/ActivityDataManager.cs

@@ -1,3 +1,4 @@
+using ET;
 using System.Collections.Generic;
 
 namespace GFGGame
@@ -358,5 +359,34 @@ namespace GFGGame
             }
 
         }
+
+        //根据创角时间判断活动是否开启
+        public bool CheckActivityByRoleTime(int id)
+        {
+           return ActivityGlobalDataManager.Instance.IsActivityOpen(id);
+            //ActivityOpenCfg item = ActivityOpenCfgArray.Instance.GetCfg(id);
+            //if (item == null || item.CreatTime == 0)
+            //{
+            //    return false;
+            //}
+            ////创角时间
+            //long time = GameGlobal.zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRole().CreateTime;
+            //long laterTime = (TimeHelper.ServerNow() - time) / 1000 / 60;
+            //if (laterTime >= item.CreatTime && laterTime < (item.CreatTime + item.OpenLastTime))
+            //{
+            //    return true;
+            //}
+            //return false;
+        }
+        public long GetActivityTime(int id)
+        {
+            ActivityOpenCfg _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(id);
+            int endTime = (_activityCfg.AfterCreatRoleTime * 24 * 60) + _activityCfg.OpenLastTime;
+            endTime = endTime * 60;
+            long time = GameGlobal.zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRole().CreateTime;
+            long laterTime = (TimeHelper.ServerNow() - time)/1000;
+            long curTime = (endTime - laterTime)* 1000;
+            return curTime;
+        }
     }
 }

+ 4 - 4
GameClient/Assets/Game/HotUpdate/Data/LeagueDataManager.cs

@@ -198,7 +198,7 @@ namespace GFGGame
                 switch (welfareCfg.type)
                 {
                     case LeagueWelfareType.Day:
-                        isBuy = GetNumeriValue(LeagueNumericType.LeagueWelfareDay) == 1;
+                        isBuy = GetNumeriValue(LeagueNumericType.LeagueWelfareDay) > 0;
                         isGet = GameGlobal.myNumericComponent.GetAsInt(NumericType.LeagueWelfareDay) == 1;
                         break;
                     case LeagueWelfareType.Week:
@@ -206,12 +206,12 @@ namespace GFGGame
                         isGet = GameGlobal.myNumericComponent.GetAsInt(NumericType.LeagueWelfareWeek) == 1;
                         break;
                     case LeagueWelfareType.SuperWeek:
-                        isBuy = GetNumeriValue(LeagueNumericType.LeagueWelfareSuperWeek) == 1;
-                        isGet = GameGlobal.myNumericComponent.GetAsInt(NumericType.LeagueWelfareSuperDay) == 1;
+                        isBuy = GetNumeriValue(LeagueNumericType.LeagueWelfareSuperWeek) > 0;
+                        isGet = GameGlobal.myNumericComponent.GetAsInt(NumericType.LeagueWelfareSuperWeek) == 1;
                         break;
                     case LeagueWelfareType.SuperDay:
                         isBuy = GetNumeriValue(LeagueNumericType.LeagueWelfareSuperLeftTimes) > 0;
-                        isGet = GameGlobal.myNumericComponent.GetAsInt(NumericType.LeagueWelfareSuperWeek) == 1;
+                        isGet = GameGlobal.myNumericComponent.GetAsInt(NumericType.LeagueWelfareSuperDay) == 1;
                         break;
                 }
                 // ET.Log.Debug("isBuy:" + isBuy);

+ 15 - 0
GameClient/Assets/Game/HotUpdate/Data/MainDataManager.cs

@@ -52,5 +52,20 @@ namespace GFGGame
                 _needUpdateProxyData = value;
             }
         }
+        /// <summary>
+        /// 收纳状态,0:已收纳,1:二级界面
+        /// </summary>
+        private int _StorageStatus = 0;
+        public int StorageStatus
+        {
+            get
+            {
+                return _StorageStatus;
+            }
+            set
+            {
+                _StorageStatus = value;
+            }
+        }
     }
 }

+ 76 - 0
GameClient/Assets/Game/HotUpdate/Data/ShareDataManager.cs

@@ -0,0 +1,76 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using ET;
+using FairyGUI;
+using UnityEngine;
+
+namespace GFGGame
+{
+    class ShareDataManager : SingletonBase<ShareDataManager>
+    {
+        //当前分享
+        public byte[] imageBytes;
+        public string outputImagePath; // 输出图片的路径
+        public GGroup group;
+        public void ShareImage(string imageUrl)
+        {
+            // 使用ShareSDK或其他分享插件来分享图片URL
+            // 这里需要根据具体插件的API来实现分享功能
+        }
+        //isJump:是否跳转
+        //isCapture:是否截图
+        public void CaptureCameraToImage(bool isJump = true,bool isCapture = true)
+        {
+            Timers.inst.StartCoroutine(CaptureCameraImage(isJump,isCapture));
+        }
+        private IEnumerator CaptureCameraImage(bool isJump = true, bool isCapture = true)
+        {
+            if (!isJump)
+            {
+                group.visible = false;
+            }
+            yield return new WaitForEndOfFrame();
+            SetImageTargetPath();
+            if (isCapture)
+            {
+                Rect rect = new Rect(0, 0, UnityEngine.Screen.width, UnityEngine.Screen.height);
+                Texture2D tex = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.ARGB32, false);//新建一个Texture2D对象
+                tex.ReadPixels(rect, 0, 0);//读取像素,屏幕左下角为0点
+                tex.Apply();//保存像素信息
+
+                // 将Texture2D保存为图片
+                imageBytes = tex.EncodeToPNG();
+            }
+            // 保存到磁盘
+            File.WriteAllBytes(outputImagePath, imageBytes);
+            Debug.Log("Camera capture saved to " + outputImagePath);
+            if (!isJump)
+            {
+                group.visible = true;
+            }
+            if (isJump)
+            {
+                ViewManager.Show<ShareView>();
+            }
+        }
+
+        public Texture2D ConvertBytesToTexture(byte[] imageBytes)
+        {
+            // 创建一个新的Texture2D对象
+            Texture2D texture = new Texture2D(UnityEngine.Screen.width, UnityEngine.Screen.height); // 宽度和高度需要根据图片实际尺寸来设置
+            texture.LoadImage(imageBytes); // 加载图片数据
+
+            // 应用纹理设置
+            texture.Apply();
+
+            return texture;
+        }
+
+        private void SetImageTargetPath()
+        {
+            outputImagePath = Application.persistentDataPath + "/share.png";
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/ShareDataManager.cs.meta

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

+ 1 - 1
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -198,7 +198,7 @@ namespace GFGGame
                 value = string.Format("DressUp/{0}", value);
                 string res = value.Split('/')[1];
                 animObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetStoryDialogCGPath(value, res));
-                animObj.transform.position = new Vector3(0, -8, 0);
+                animObj.transform.position = new Vector3(0, -9, 0);
                 animObj.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
                 //StoryDialogDataManager.Instance.dialogShowDelay = 0.4f;
             }

+ 0 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_ActivityTeaVisitUI.cs

@@ -13,7 +13,6 @@ namespace UI.ActivityAfternoonTea
         public GTextField m_time;
         public GLoader m_ruleIcon;
         public GList m_taskList;
-        public GImage m_visitNumTips;
         public GTextField m_visitNum;
         public const string URL = "ui://wpsqkdbznjone";
         public const string PACKAGE_NAME = "ActivityAfternoonTea";
@@ -68,7 +67,6 @@ namespace UI.ActivityAfternoonTea
             m_time = (GTextField)comp.GetChild("time");
             m_ruleIcon = (GLoader)comp.GetChild("ruleIcon");
             m_taskList = (GList)comp.GetChild("taskList");
-            m_visitNumTips = (GImage)comp.GetChild("visitNumTips");
             m_visitNum = (GTextField)comp.GetChild("visitNum");
         }
         public void Dispose(bool disposeTarget = false)
@@ -79,7 +77,6 @@ namespace UI.ActivityAfternoonTea
             m_time = null;
             m_ruleIcon = null;
             m_taskList = null;
-            m_visitNumTips = null;
             m_visitNum = null;
             if(disposeTarget && target != null)
             {

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CardSynthetic/UI_CardSyntheticUI.cs

@@ -23,6 +23,8 @@ namespace UI.CardSynthetic
         public GTextField m_txtShang;
         public GTextField m_txtJue;
         public GTextField m_txtZhi;
+        public GTextField m_skillCountText;
+        public GLoader m_skillIcon;
         public GTextField m_timesText;
         public GButton m_btnBack;
         public GButton m_btnHome;
@@ -92,6 +94,8 @@ namespace UI.CardSynthetic
             m_txtShang = (GTextField)comp.GetChild("txtShang");
             m_txtJue = (GTextField)comp.GetChild("txtJue");
             m_txtZhi = (GTextField)comp.GetChild("txtZhi");
+            m_skillCountText = (GTextField)comp.GetChild("skillCountText");
+            m_skillIcon = (GLoader)comp.GetChild("skillIcon");
             m_timesText = (GTextField)comp.GetChild("timesText");
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_btnHome = (GButton)comp.GetChild("btnHome");
@@ -118,6 +122,8 @@ namespace UI.CardSynthetic
             m_txtShang = null;
             m_txtJue = null;
             m_txtZhi = null;
+            m_skillCountText = null;
+            m_skillIcon = null;
             m_timesText = null;
             m_btnBack = null;
             m_btnHome = null;

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_PhotographSaveUI.cs

@@ -16,6 +16,7 @@ namespace UI.DressUp
         public GButton m_btnShareWX;
         public GButton m_btnShareWB;
         public GButton m_btnSavePhoto;
+        public GButton m_share;
         public const string URL = "ui://mbo439wbi3ix58";
         public const string PACKAGE_NAME = "DressUp";
         public const string RES_NAME = "PhotographSaveUI";
@@ -72,6 +73,7 @@ namespace UI.DressUp
             m_btnShareWX = (GButton)comp.GetChild("btnShareWX");
             m_btnShareWB = (GButton)comp.GetChild("btnShareWB");
             m_btnSavePhoto = (GButton)comp.GetChild("btnSavePhoto");
+            m_share = (GButton)comp.GetChild("share");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -84,6 +86,7 @@ namespace UI.DressUp
             m_btnShareWX = null;
             m_btnShareWB = null;
             m_btnSavePhoto = null;
+            m_share = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 13 - 13
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_BtnBack0.cs → GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_Button6.cs

@@ -2,20 +2,20 @@
 
 using FairyGUI;
 
-namespace UI.CommonGame
+namespace UI.Main
 {
-    public partial class UI_BtnBack0
+    public partial class UI_Button6
     {
         public GButton target;
-        public GLoader m_loaBg;
-        public const string URL = "ui://eg2y0ldpuyuxtj5";
-        public const string PACKAGE_NAME = "CommonGame";
-        public const string RES_NAME = "BtnBack0";
-        private static UI_BtnBack0 _proxy;
+        public Controller m_c1;
+        public const string URL = "ui://mfvz4q8kxfki9fzp";
+        public const string PACKAGE_NAME = "Main";
+        public const string RES_NAME = "Button6";
+        private static UI_Button6 _proxy;
 
-        public static UI_BtnBack0 Create(GObject gObject = null)
+        public static UI_Button6 Create(GObject gObject = null)
         {
-            var ui = new UI_BtnBack0();
+            var ui = new UI_Button6();
             if(gObject == null)
             	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
             else
@@ -24,11 +24,11 @@ namespace UI.CommonGame
             return ui;
         }
 
-        public static UI_BtnBack0 Proxy(GObject gObject = null)
+        public static UI_Button6 Proxy(GObject gObject = null)
         {
             if(_proxy == null)
             {
-                _proxy = new UI_BtnBack0();
+                _proxy = new UI_Button6();
             }
             var ui = _proxy;
             if(gObject == null)
@@ -55,11 +55,11 @@ namespace UI.CommonGame
 
         private void Init(GComponent comp)
         {
-            m_loaBg = (GLoader)comp.GetChild("loaBg");
+            m_c1 = comp.GetController("c1");
         }
         public void Dispose(bool disposeTarget = false)
         {
-            m_loaBg = null;
+            m_c1 = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_Button6.cs.meta

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

+ 3 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_ButtonModleEffect.cs

@@ -12,8 +12,8 @@ namespace UI.Main
         public GGraph m_holder;
         public GGraph m_holder1;
         public GLoader m_titleText;
-        public GLoader m_loaLockIcons;
         public GLoader m_iconMain;
+        public GLoader m_loaLockIcons;
         public const string URL = "ui://mfvz4q8kdkxp9fyb";
         public const string PACKAGE_NAME = "Main";
         public const string RES_NAME = "ButtonModleEffect";
@@ -66,8 +66,8 @@ namespace UI.Main
             m_holder = (GGraph)comp.GetChild("holder");
             m_holder1 = (GGraph)comp.GetChild("holder1");
             m_titleText = (GLoader)comp.GetChild("titleText");
-            m_loaLockIcons = (GLoader)comp.GetChild("loaLockIcons");
             m_iconMain = (GLoader)comp.GetChild("iconMain");
+            m_loaLockIcons = (GLoader)comp.GetChild("loaLockIcons");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -76,8 +76,8 @@ namespace UI.Main
             m_holder = null;
             m_holder1 = null;
             m_titleText = null;
-            m_loaLockIcons = null;
             m_iconMain = null;
+            m_loaLockIcons = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 23 - 13
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_MainUI.cs

@@ -10,14 +10,16 @@ namespace UI.Main
         public Controller m_type;
         public GLoader m_loaBg;
         public GComponent m_valueBar;
-        public GTextField m_grpLeaguetext;
-        public GGroup m_grpLeagueTips;
         public GGraph m_BottomEffectHolder;
         public UI_ComponentHeadBar m_headBar;
         public GButton m_btnYouJian;
         public GButton m_btnGongGao;
-        public GList m_list;
+        public UI_Button6 m_storageBtn;
         public UI_ButtonChange m_btnChange;
+        public GList m_list;
+        public GTextField m_grpLeaguetext;
+        public GGroup m_grpLeagueTips;
+        public GGroup m_listGroud;
         public UI_BtnModle2 m_btnActivityAfuGift;
         public UI_BtnModle2 m_btnWanShiLi;
         public UI_BtnModle2 m_btnTea;
@@ -32,13 +34,13 @@ namespace UI.Main
         public UI_BtnModle m_btnFirstRecharge;
         public UI_BtnModle m_btnGiftBag1;
         public UI_BtnModle m_btnGiftBag2;
-        public UI_BtnModle1 m_btnShow;
         public UI_ButtonModle1 m_btnZhaiXing;
         public UI_ButtonModleEffect m_btnMain;
         public UI_ButtonModle1 m_btnCiPai;
         public UI_ButtonModle1 m_btnXiuFang;
         public UI_ButtonModle1 m_btnHuanZhuang;
         public UI_ButtonModleEffect m_btnHaiZhiShi;
+        public UI_BtnModle1 m_btnShow;
         public UI_BtnModle1 m_btnDailyWelfare;
         public UI_BtnModle1 m_btnNewPlayerReward;
         public UI_BtnModle3 m_btnSevenReward;
@@ -50,6 +52,7 @@ namespace UI.Main
         public Transition m_openViewAction;
         public Transition m_hide;
         public Transition m_show;
+        public Transition m_storage;
         public const string URL = "ui://mfvz4q8kq08x0";
         public const string PACKAGE_NAME = "Main";
         public const string RES_NAME = "MainUI";
@@ -100,14 +103,16 @@ namespace UI.Main
             m_type = comp.GetController("type");
             m_loaBg = (GLoader)comp.GetChild("loaBg");
             m_valueBar = (GComponent)comp.GetChild("valueBar");
-            m_grpLeaguetext = (GTextField)comp.GetChild("grpLeaguetext");
-            m_grpLeagueTips = (GGroup)comp.GetChild("grpLeagueTips");
             m_BottomEffectHolder = (GGraph)comp.GetChild("BottomEffectHolder");
             m_headBar = (UI_ComponentHeadBar)UI_ComponentHeadBar.Create(comp.GetChild("headBar"));
             m_btnYouJian = (GButton)comp.GetChild("btnYouJian");
             m_btnGongGao = (GButton)comp.GetChild("btnGongGao");
-            m_list = (GList)comp.GetChild("list");
+            m_storageBtn = (UI_Button6)UI_Button6.Create(comp.GetChild("storageBtn"));
             m_btnChange = (UI_ButtonChange)UI_ButtonChange.Create(comp.GetChild("btnChange"));
+            m_list = (GList)comp.GetChild("list");
+            m_grpLeaguetext = (GTextField)comp.GetChild("grpLeaguetext");
+            m_grpLeagueTips = (GGroup)comp.GetChild("grpLeagueTips");
+            m_listGroud = (GGroup)comp.GetChild("listGroud");
             m_btnActivityAfuGift = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnActivityAfuGift"));
             m_btnWanShiLi = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnWanShiLi"));
             m_btnTea = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnTea"));
@@ -122,13 +127,13 @@ namespace UI.Main
             m_btnFirstRecharge = (UI_BtnModle)UI_BtnModle.Create(comp.GetChild("btnFirstRecharge"));
             m_btnGiftBag1 = (UI_BtnModle)UI_BtnModle.Create(comp.GetChild("btnGiftBag1"));
             m_btnGiftBag2 = (UI_BtnModle)UI_BtnModle.Create(comp.GetChild("btnGiftBag2"));
-            m_btnShow = (UI_BtnModle1)UI_BtnModle1.Create(comp.GetChild("btnShow"));
             m_btnZhaiXing = (UI_ButtonModle1)UI_ButtonModle1.Create(comp.GetChild("btnZhaiXing"));
             m_btnMain = (UI_ButtonModleEffect)UI_ButtonModleEffect.Create(comp.GetChild("btnMain"));
             m_btnCiPai = (UI_ButtonModle1)UI_ButtonModle1.Create(comp.GetChild("btnCiPai"));
             m_btnXiuFang = (UI_ButtonModle1)UI_ButtonModle1.Create(comp.GetChild("btnXiuFang"));
             m_btnHuanZhuang = (UI_ButtonModle1)UI_ButtonModle1.Create(comp.GetChild("btnHuanZhuang"));
             m_btnHaiZhiShi = (UI_ButtonModleEffect)UI_ButtonModleEffect.Create(comp.GetChild("btnHaiZhiShi"));
+            m_btnShow = (UI_BtnModle1)UI_BtnModle1.Create(comp.GetChild("btnShow"));
             m_btnDailyWelfare = (UI_BtnModle1)UI_BtnModle1.Create(comp.GetChild("btnDailyWelfare"));
             m_btnNewPlayerReward = (UI_BtnModle1)UI_BtnModle1.Create(comp.GetChild("btnNewPlayerReward"));
             m_btnSevenReward = (UI_BtnModle3)UI_BtnModle3.Create(comp.GetChild("btnSevenReward"));
@@ -140,22 +145,26 @@ namespace UI.Main
             m_openViewAction = comp.GetTransition("openViewAction");
             m_hide = comp.GetTransition("hide");
             m_show = comp.GetTransition("show");
+            m_storage = comp.GetTransition("storage");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_type = null;
             m_loaBg = null;
             m_valueBar = null;
-            m_grpLeaguetext = null;
-            m_grpLeagueTips = null;
             m_BottomEffectHolder = null;
             m_headBar.Dispose();
             m_headBar = null;
             m_btnYouJian = null;
             m_btnGongGao = null;
-            m_list = null;
+            m_storageBtn.Dispose();
+            m_storageBtn = null;
             m_btnChange.Dispose();
             m_btnChange = null;
+            m_list = null;
+            m_grpLeaguetext = null;
+            m_grpLeagueTips = null;
+            m_listGroud = null;
             m_btnActivityAfuGift.Dispose();
             m_btnActivityAfuGift = null;
             m_btnWanShiLi.Dispose();
@@ -182,8 +191,6 @@ namespace UI.Main
             m_btnGiftBag1 = null;
             m_btnGiftBag2.Dispose();
             m_btnGiftBag2 = null;
-            m_btnShow.Dispose();
-            m_btnShow = null;
             m_btnZhaiXing.Dispose();
             m_btnZhaiXing = null;
             m_btnMain.Dispose();
@@ -196,6 +203,8 @@ namespace UI.Main
             m_btnHuanZhuang = null;
             m_btnHaiZhiShi.Dispose();
             m_btnHaiZhiShi = null;
+            m_btnShow.Dispose();
+            m_btnShow = null;
             m_btnDailyWelfare.Dispose();
             m_btnDailyWelfare = null;
             m_btnNewPlayerReward.Dispose();
@@ -213,6 +222,7 @@ namespace UI.Main
             m_openViewAction = null;
             m_hide = null;
             m_show = null;
+            m_storage = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryDialogUI.cs

@@ -26,6 +26,7 @@ namespace UI.Main
         public GGroup m_comPlayName;
         public GGraph m_mask;
         public GGraph m_effect;
+        public GLoader m_eyeOpen;
         public Transition m_t0;
         public Transition m_showMask;
         public Transition m_hideMask;
@@ -98,6 +99,7 @@ namespace UI.Main
             m_comPlayName = (GGroup)comp.GetChild("comPlayName");
             m_mask = (GGraph)comp.GetChild("mask");
             m_effect = (GGraph)comp.GetChild("effect");
+            m_eyeOpen = (GLoader)comp.GetChild("eyeOpen");
             m_t0 = comp.GetTransition("t0");
             m_showMask = comp.GetTransition("showMask");
             m_hideMask = comp.GetTransition("hideMask");
@@ -130,6 +132,7 @@ namespace UI.Main
             m_comPlayName = null;
             m_mask = null;
             m_effect = null;
+            m_eyeOpen = null;
             m_t0 = null;
             m_showMask = null;
             m_hideMask = null;

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RoleInfo/UI_RoleInfoUI.cs

@@ -32,6 +32,7 @@ namespace UI.RoleInfo
         public GTextField m_txtRoleID;
         public GButton m_btnCopy;
         public GButton m_btnSetting;
+        public GButton m_btnShare;
         public Transition m_Hide;
         public Transition m_Show;
         public const string URL = "ui://374k3dwvd4iw6k";
@@ -106,6 +107,7 @@ namespace UI.RoleInfo
             m_txtRoleID = (GTextField)comp.GetChild("txtRoleID");
             m_btnCopy = (GButton)comp.GetChild("btnCopy");
             m_btnSetting = (GButton)comp.GetChild("btnSetting");
+            m_btnShare = (GButton)comp.GetChild("btnShare");
             m_Hide = comp.GetTransition("Hide");
             m_Show = comp.GetTransition("Show");
         }
@@ -139,6 +141,7 @@ namespace UI.RoleInfo
             m_txtRoleID = null;
             m_btnCopy = null;
             m_btnSetting = null;
+            m_btnShare = null;
             m_Hide = null;
             m_Show = null;
             if(disposeTarget && target != null)

+ 8 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Share.meta

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

+ 110 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Share/UI_ShareUI.cs

@@ -0,0 +1,110 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Share
+{
+    public partial class UI_ShareUI
+    {
+        public GComponent target;
+        public GGraph m_mask;
+        public GImage m_icon;
+        public GLoader m_CRCodeIcon;
+        public GComponent m_head;
+        public GTextField m_nameText;
+        public GTextField m_levelText;
+        public GButton m_btnShare;
+        public GButton m_btnShareWX;
+        public GButton m_btnShareWB;
+        public GButton m_btnShareQQ;
+        public GButton m_btnShareQQZone;
+        public GButton m_btnShareDouYin;
+        public GGroup m_shareGrade;
+        public GButton m_btnClose;
+        public const string URL = "ui://1f45z9smxfki0";
+        public const string PACKAGE_NAME = "Share";
+        public const string RES_NAME = "ShareUI";
+        private static UI_ShareUI _proxy;
+
+        public static UI_ShareUI Create(GObject gObject = null)
+        {
+            var ui = new UI_ShareUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ShareUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ShareUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_mask = (GGraph)comp.GetChild("mask");
+            m_icon = (GImage)comp.GetChild("icon");
+            m_CRCodeIcon = (GLoader)comp.GetChild("CRCodeIcon");
+            m_head = (GComponent)comp.GetChild("head");
+            m_nameText = (GTextField)comp.GetChild("nameText");
+            m_levelText = (GTextField)comp.GetChild("levelText");
+            m_btnShare = (GButton)comp.GetChild("btnShare");
+            m_btnShareWX = (GButton)comp.GetChild("btnShareWX");
+            m_btnShareWB = (GButton)comp.GetChild("btnShareWB");
+            m_btnShareQQ = (GButton)comp.GetChild("btnShareQQ");
+            m_btnShareQQZone = (GButton)comp.GetChild("btnShareQQZone");
+            m_btnShareDouYin = (GButton)comp.GetChild("btnShareDouYin");
+            m_shareGrade = (GGroup)comp.GetChild("shareGrade");
+            m_btnClose = (GButton)comp.GetChild("btnClose");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_mask = null;
+            m_icon = null;
+            m_CRCodeIcon = null;
+            m_head = null;
+            m_nameText = null;
+            m_levelText = null;
+            m_btnShare = null;
+            m_btnShareWX = null;
+            m_btnShareWB = null;
+            m_btnShareQQ = null;
+            m_btnShareQQZone = null;
+            m_btnShareDouYin = null;
+            m_shareGrade = null;
+            m_btnClose = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Share/UI_ShareUI.cs.meta

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

+ 0 - 1
GameClient/Assets/Game/HotUpdate/HotUpdateDriver.cs

@@ -10,7 +10,6 @@ namespace GFGGame
     {
         private void Awake()
         {
-            Debug.Log(1111111.ToString());
             //UniFramework
             // 初始化对象池系统
             UniPooling.Initalize();

+ 35 - 38
GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs

@@ -1,5 +1,4 @@
 using ET;
-using GFGGame.Launcher;
 using UnityEngine;
 
 namespace GFGGame
@@ -15,6 +14,7 @@ namespace GFGGame
             {
                 default:
                     QDDouYouManager.Instance.Init();
+                    QDShareManager.Instance.Init();
                     break;
             }
         }
@@ -40,7 +40,6 @@ namespace GFGGame
                     QDDouYouManager.Instance.Login();
                     break;
                 default:
-                    //QDDouYouManager.Instance.Login();
                     break;
             }
         }
@@ -59,7 +58,6 @@ namespace GFGGame
                     QDDouYouManager.Instance.OnCreateRole();
                     break;
                 default:
-                    //QDDouYouManager.Instance.OnCreateRole();
                     break;
             }
         }
@@ -78,7 +76,6 @@ namespace GFGGame
                     QDDouYouManager.Instance.OnEnterGame();
                     break;
                 default:
-                    //QDDouYouManager.Instance.OnEnterGame();
                     break;
             }
         }
@@ -98,7 +95,6 @@ namespace GFGGame
                     QDDouYouManager.Instance.OnQuitToLoginView();
                     break;
                 default:
-                    //QDDouYouManager.Instance.OnQuitToLoginView();
                     break;
             }
         }
@@ -117,12 +113,11 @@ namespace GFGGame
                     QDDouYouManager.Instance.Pay(buyID, count, orderID, price);
                     break;
                 default:
-                    //QDDouYouManager.Instance.Pay(buyID, count, orderID, price);
                     break;
             }
         }
 
-        public static void Logout(bool fromSdkLogoutCallback)
+        public static void Logout()
         {
             GameGlobal.zoneScene.GetComponent<SessionComponent>()?.Disconnect();
             GameGlobal.zoneScene.GetComponent<ServerInfosComponent>()?.ServerInfoList?.Clear();
@@ -131,16 +126,20 @@ namespace GFGGame
             {
                 PlayerPrefs.DeleteKey(GameConst.PASSWORD_LAST_LOGIN_KEY);
             }
-
+            
             switch (LauncherConfig.ChannelId)
             {
-                default:
-                    if (!fromSdkLogoutCallback)
-                    {
-                        QDDouYouManager.Instance.Logout();
-                    }
+                case (int)ChannelID.TapTap:
+
+                    break;
+                case (int)ChannelID.Test:
 
                     break;
+                case (int)ChannelID.DouYouTest:
+                    QDDouYouManager.Instance.Logout();
+                    break;
+                default:
+                    break;
             }
         }
 
@@ -155,39 +154,37 @@ namespace GFGGame
                     QDDouYouManager.Instance.Exit();
                     break;
                 default:
-                    //QDDouYouManager.Instance.Exit();
                     break;
             }
         }
 
-        //上报角色行为给sdk
-        public static void PushRoleAction(DouYouRoleLogReportType reportType)
+        public static bool IsTaptap
         {
-            //改名上报给sdk
-            var zoneScene = GameGlobal.zoneScene;
-            if (zoneScene == null) return;
-            
-            if (zoneScene.GetComponent<RoleInfosComponent>() == null ||
-                zoneScene.GetComponent<RoleInfosComponent>().IsDisposed) return;
-            
-            var roleInfo = zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRole();
-            if (roleInfo == null) return;
-            
-            if (GameGlobal.myNumericComponent == null) return;
-            int lvl = GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl);
- 
-            if (zoneScene.GetComponent<ServerInfosComponent>() == null) return;
-            if (zoneScene.GetComponent<ServerInfosComponent>().recentlyServerInfo == null) return;
-
-            string serverName = zoneScene.GetComponent<ServerInfosComponent>().recentlyServerInfo.ServerName;
-            QDDouYouManagerInit.Instance.ReportRole((int)reportType,
-                roleInfo.Id.ToString(), lvl.ToString(), roleInfo.Name, roleInfo.ServerId.ToString(),
-                serverName);
+            get { return LauncherConfig.ChannelId == (int)ChannelID.TapTap; }
+        }
+        
+        public static bool IsHYKB
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == (int)ChannelID.HYKB;
+            }
         }
 
-        public static bool IsTaptap
+        public static bool IsBiliBili
         {
-            get { return LauncherConfig.ChannelId == (int)ChannelID.TapTap; }
+            get
+            {
+                return LauncherConfig.ChannelId == (int)ChannelID.BiliBili;
+            }
+        }
+
+        public static bool IsHuaWei
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == (int)ChannelID.HUAWEI;
+            }
         }
     }
 }

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Platform/ShareSDK.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: bc4adb18ebb44800a28c1150b6f3e9d4
+timeCreated: 1717839408

+ 124 - 0
GameClient/Assets/Game/HotUpdate/Platform/ShareSDK/QDShareManager.cs

@@ -0,0 +1,124 @@
+using System.Collections;
+using cn.sharesdk.unity3d;
+using GFGGame.Launcher;
+using UnityEngine;
+
+namespace GFGGame
+{
+    public class QDShareManager : SingletonBase<QDShareManager>
+    {
+        public void Init()
+        {
+            QDShareManagerInit.Instance.shareSDKListener = new ShareSDKListener();
+        }
+
+        //回传用户隐私授权结果
+
+        /// <summary>
+        /// 构造分享信息 SetShareType
+        /// </summary>
+        /// <param name="text">分享的文字</param>
+        /// <param name="imageUrl">iOS平台,本地以及网络图片都使用此方法</param>
+        /// <param name="imageUrlArr">分享一组图片</param>
+        /// <param name="title">分享的标题</param>
+        /// <param name="titleUrl">标题的网络链接(QQ和QQ空间使用 )</param>
+        /// <param name="site"></param>
+        /// <param name="siteUrl"></param>
+        /// <param name="url">分享的链接(微信,微博,易信,Facebook等平台)</param>
+        /// <param name="comment"></param>
+        /// <param name="musicUrl"></param>
+        /// <param name="shareType">分享类型(微信,易信) ContentType</param>
+        /// <returns></returns>
+        public ShareContent NewStructureShareContent(string text, string imageUrl, string[] imageUrlArr, string title,
+            string titleUrl,
+            string site,
+            string siteUrl,
+            string url,
+            string comment,
+            string musicUrl, int shareType)
+        {
+            ShareContent content = new ShareContent();
+            content.SetText(text);
+            content.SetImageUrl(imageUrl);
+            content.SetImageArray(imageUrlArr);
+            content.SetTitle(title);
+            content.SetTitleUrl(titleUrl);
+            content.SetSite(site);
+            content.SetSiteUrl(siteUrl);
+            content.SetUrl(url);
+            content.SetComment(comment);
+            content.SetMusicUrl(musicUrl);
+            content.SetShareType(shareType);
+            return content;
+        }
+
+        /// <summary>
+        /// 回传用户隐私授权结果给sdk
+        /// </summary>
+        /// <param name="granted"></param>
+        public void SubmitPolicyGrantResult(bool granted = true)
+        {
+            QDShareManagerInit.Instance.mobsdk.submitPolicyGrantResult(granted);
+        }
+
+        //通过分享菜单分享 
+        public int ShowPlatformList(PlatformType[] platforms, ShareContent shareContent)
+        {
+            return QDShareManagerInit.Instance.shareSDK.ShowPlatformList(platforms, shareContent, 100, 100);
+        }
+
+        //直接通过编辑界面分享
+        public int ShowShareContentEditor(PlatformType platformType, ShareContent shareContent)
+        {
+            return QDShareManagerInit.Instance.shareSDK.ShowShareContentEditor(platformType, shareContent);
+        }
+
+        //直接分享
+        public int ShareContent(PlatformType platformType, ShareContent shareContent)
+        {
+            return QDShareManagerInit.Instance.shareSDK.ShareContent(platformType, shareContent);
+        }
+    }
+
+    public class ShareSDKListener : IShareSDKListener
+    {
+        public void OnAuthResult(int reqID, ResponseState state, PlatformType type, Hashtable result)
+        {
+            Debug.Log($"OnAuthResult");
+        }
+
+        public void OnGetUserInfoResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result)
+        {
+            Debug.Log($"OnGetUserInfoResult");
+        }
+
+        public void OnShareResult(int reqID, ResponseState state, PlatformType type, Hashtable result)
+        {
+            if (state == ResponseState.Success)
+            {
+                ShareRecordSProxy.ReqShareRecord().Coroutine();
+            }
+
+            Debug.Log($"OnShareResult state:" + state);
+        }
+
+        public void OnGetFriendsResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result)
+        {
+            Debug.Log($"OnGetFriendsResult");
+        }
+
+        public void OnFollowFriendResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result)
+        {
+            Debug.Log($"OnFollowFriendResult");
+        }
+
+        public void OnIsClientValidForAndroidResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result)
+        {
+            Debug.Log($"OnFollowFriendResult");
+        }
+    }
+}

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Platform/ShareSDK/QDShareManager.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: b74c0b4ef0234630ad3dcda87b3ef29a
+timeCreated: 1717839417

+ 32 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/ShareRecordSProxy.cs

@@ -0,0 +1,32 @@
+using ET;
+
+namespace GFGGame
+{
+    public class ShareRecordSProxy
+    {
+        /// <summary>
+        /// 分享成功请求服务端进行分享次数记录
+        /// </summary>
+        /// <returns></returns>
+        public static async ETTask<bool> ReqShareRecord()
+        {
+            M2C_ShareRecordTimes response;
+            response = (M2C_ShareRecordTimes)await MessageHelper.SendToServer(new C2M_ShareRecordTimes());
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    if (response.RewardList.Count > 0)
+                    {
+                        // 奖励弹窗
+                        BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.RewardList));
+                    }
+
+                    return true;
+                }
+            }
+
+            return false;
+        }
+    }
+}

+ 3 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/ShareRecordSProxy.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 1528643098e44dbdb608418961271e07
+timeCreated: 1718375771

+ 16 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/ShareSProxy.cs

@@ -0,0 +1,16 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Net;
+using System.Net.Http;
+using ET;
+using FairyGUI;
+using UnityEngine;
+using UnityEngine.Networking;
+
+namespace GFGGame
+{
+    public static class ShareSProxy
+    {
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/ShareSProxy.cs.meta

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

+ 5 - 0
GameClient/Assets/Game/HotUpdate/Utils/ResPathUtil.cs

@@ -309,5 +309,10 @@ namespace GFGGame
         {
             return $"{LUCKY_BOX_TITLE_PATH}{res}.{extName}";
         }
+        
+        public static string GetEmojiResPath(string dir, string res, string extName = "prefab")
+        {
+            return $"{ANIMATION_DIR_PATH}/{dir}/{res}.{extName}";
+        }
     }
 }

+ 2 - 5
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivitySyntheticView.cs

@@ -38,7 +38,6 @@ namespace GFGGame
             _valueBarController = new ValueBarController(_ui.m_valueBar);
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_listSynthetic.itemRenderer = RenderListSyntheticItem;
-            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("gf_hdzy_bj");
         }
 
         protected override void OnShown()
@@ -99,10 +98,8 @@ namespace GFGGame
         private void RefreshTimeText()
         {
             var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.ItemSynthetic);
-            ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.ActivityId);
-            long time = TimeUtil.DateTimeToTimestamp(activityOpenCfg.endTime) - TimeHelper.ServerNow();
-            string strTime = TimeUtil.FormattingTimeTo_DDHHmm(time);
-            _ui.m_txtTime.text = "剩余:" + strTime;
+            long curTime = ActivityDataManager.Instance.GetActivityTime(activityInfo.ActivityId);
+            _ui.m_txtTime.text = "剩余:" + TimeUtil.FormattingTimeTo_DDHHmm(curTime);
         }
         
         private void RenderListSyntheticItem(int index, GObject obj)

+ 2 - 5
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs

@@ -46,11 +46,8 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            _ui.m_Bg.url = ResPathUtil.GetBgImgPath("gfxwc_zymbj");
-            _ui.m_BgOne.url = ResPathUtil.GetBgImgPath("gfxwc_zjmlp");
-            _ui.m_oneTimeIcon.visible = false;
-            _ui.m_threeTimeIcon.visible = false;
-            _ui.m_twoTimeIcon.visible = false;
+            _ui.m_Bg.url = ResPathUtil.GetBgImgPath("gfxwc_xrbj");
+            _ui.m_BgOne.url = "";
             RedDotController.Instance.SetComRedDot(_ui.m_twoViewIcon, ActivityTeaDataManager.Instance.GetRewardRed()|| ActivityTeaDataManager.Instance.CheckVisitTaskRed());
             RedDotController.Instance.SetComRedDot(_ui.m_oneViewIcon, ActivityTeaDataManager.Instance.CheckHRDRed(),"",-85);
             RedDotController.Instance.SetComRedDot(_ui.m_threeViewIcon, ActivityTeaDataManager.Instance.GetActivitySyntheticRed(),"",-85);

+ 6 - 13
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs

@@ -50,18 +50,14 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xnbh_bg");
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_hybh");
             _ui.m_ruleIcon.data = 300028;
             activityID = 5004;
             RoleLimitData limitData = RoleLimitDataManager.GetLimitData(ActivityVisitCfgArray.Instance.dataArray[0].limitId);
             time = limitData.TotalPlayMax - limitData.PlayTimes;
             _ui.m_visitNum.text = "当前拜访次数:" + time + "/" + limitData.TotalPlayMax;
             _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length;
-            ActivityOpenCfg _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(activityID);
-            long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.endTime);
-            long curTime = TimeHelper.ServerNow();
-            TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
-            _ui.m_time.text = "剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            _ui.m_time.text = "剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(ActivityDataManager.Instance.GetActivityTime(activityID));
             Timers.inst.Add(1, 0, UpdateTime);
         }
 
@@ -87,18 +83,15 @@ namespace GFGGame
         
         private void UpdateTime(object param = null)
         {
-            ActivityOpenCfg _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(activityID);
-            long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.endTime);
-            long curTime = TimeHelper.ServerNow();
-            if (endTime < curTime)
+            long curTime = ActivityDataManager.Instance.GetActivityTime(activityID);
+            if (curTime <= 0)
             {
                 PromptController.Instance.ShowFloatTextPrompt("拜访活动已结束");
                 Timers.inst.Remove(UpdateTime);
                 GameController.GoBackToMainView();
                 return;
             }
-            TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
-            _ui.m_time.text = "剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            _ui.m_time.text = "剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(curTime);
         }
 
         private void UpdateVisitNum(EventContext context = null)
@@ -109,7 +102,7 @@ namespace GFGGame
             }
             RoleLimitData limitData = RoleLimitDataManager.GetLimitData(ActivityVisitCfgArray.Instance.dataArray[0].limitId);
             time = limitData.TotalPlayMax - limitData.PlayTimes;
-            _ui.m_visitNum.text = "当前拜访次数" + time + "/" + limitData.TotalPlayMax;
+            _ui.m_visitNum.text = "当前拜访次数:" + time + "/" + limitData.TotalPlayMax;
         }
 
         private void RenderTaskList(int index, GObject obj)

+ 3 - 5
GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoEntryView.cs

@@ -245,12 +245,10 @@ namespace GFGGame
 
         private void UpdateTime(object param)
         {
-            long curTime = TimeHelper.ServerNow();
-            var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(_activityID);
-            if (activityInfo != null)
+            long curTime = ActivityDataManager.Instance.GetActivityTime(_activityID);
+            if (curTime <= 0)
             {
-                long endTime = activityInfo.EndTime;
-                _ui.m_txtTime.text = "剩余" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+                _ui.m_txtTime.text = "剩余" + TimeUtil.FormattingTimeTo_DDHHmm(curTime);
             }
         }
 

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoView.cs

@@ -573,7 +573,7 @@ namespace GFGGame
 
         private void CheckActivityEnd(object param)
         {
-            if (!ActivityFYJYDataManager.Instance.CheckOpen())
+            if (!ActivityDataManager.Instance.CheckActivityByRoleTime(5003))
             {
                 // 活动结束时强行退回主界面
                 ViewManager.Show<MainUIView>(null, true);

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ZGTHgiftTipsView.cs

@@ -109,7 +109,7 @@ namespace GFGGame
         }
         private void OnBtnGetClick()
         {
-            _ui.m_btnBuy.target.visible = false;
+            //_ui.m_btnBuy.target.visible = false;
             ReqShopBuy(shopId).Coroutine();
         }
         private void UpdateBtn()

+ 13 - 0
GameClient/Assets/Game/HotUpdate/Views/Card/CardSyntheticView.cs

@@ -84,6 +84,8 @@ namespace GFGGame
 
             _valueBarController.OnShown();
             _ui.m_loaBg2.url = ResPathUtil.GetBgImgPath("hc_bj_1");
+            ItemCfg item = ItemCfgArray.Instance.GetCfg(_cardItem.transItem);
+            _ui.m_skillIcon.url = ResPathUtil.GetIconPath(item.res,"png");
             var response = await ClothingSyntheticSProxy.GetCardSyntheticCount(_cardId);
             cardSyntheticCount = response;
             UpdateView();
@@ -161,6 +163,17 @@ namespace GFGGame
             UpdateName(_cardItem.name);
             _ui.m_comImgCard.m_ComCardImgRes.m_loaCard.url = ResPathUtil.GetCardPath(_cardItem.res);
             _ui.m_timesText.text = string.Format("合成次数:{0}/{1}", cardSyntheticCount, _cardItem.syntheticTimes);
+            ItemData itemCount;
+            long count;
+            if (BagDataManager.Instance.GetBagData().TryGetValue(_cardItem.transItem, out itemCount))
+            {
+                count = itemCount.num;
+            }
+            else
+            {
+                count = 0;
+            }
+            _ui.m_skillCountText.text = string.Format("已拥有:{0}", count.ToString());
             UpdateSelectedItemInfo();
         }
 

+ 18 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingSelectView.cs

@@ -57,6 +57,7 @@ namespace GFGGame
             base.OnShown();
             _ui.m_bg.url = ResPathUtil.GetBgImgPath("gyp_bg");
             UpdateList();
+            Timers.inst.AddUpdate(CheckGuide);
         }
 
         protected override void RemoveEventListener()
@@ -67,6 +68,7 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(CheckGuide);
         }
         private void UpdateList()
         {
@@ -209,5 +211,21 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(ClothingSelectView).FullName);
         }
+
+        private void CheckGuide(object param)
+        {
+            GRoot.inst.touchable = true;
+            if (GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0)
+                UpdateCheckGuide(null);
+            else
+                Timers.inst.Remove(CheckGuide);
+        }
+
+        protected void UpdateCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(null, "ClothingSelectView", 4, "“估衣铺”里可以通过升级各个部位获得加成。", -1, true, _ui.target.height - 600);
+            GuideController.TryGuide(_ui.m_selectList, "ClothingSelectView", 5, "选择升级部位。",0);
+        }
     }
 }

+ 30 - 4
GameClient/Assets/Game/HotUpdate/Views/ClothingUpgarde/ClothingUpgradeView.cs

@@ -52,22 +52,26 @@ namespace GFGGame
 
             //更新数据
             Update();
+            Timers.inst.AddUpdate(CheckGuide);
         }
 
         protected override void OnHide()
         {
             itemList.Clear();
             base.OnHide();
+            Timers.inst.Remove(CheckGuide);
         }
         protected override void AddEventListener()
         {
             base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, Update);
             EventAgent.AddEventListener(ConstMessage.COLLEGE_UPGRADE, Update);
             EventAgent.AddEventListener(ConstMessage.COLLEGE_UPGRADE, LevelUpSuccessTip);
         }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, Update);
             EventAgent.RemoveEventListener(ConstMessage.COLLEGE_UPGRADE, Update);
             EventAgent.RemoveEventListener(ConstMessage.COLLEGE_UPGRADE, LevelUpSuccessTip);
         }
@@ -144,13 +148,20 @@ namespace GFGGame
                     //item.m_txtCount.SetVar("count", itemData.num.ToString()).FlushVars();
                     ItemData itemCount;
                     long count;
-                    if (BagDataManager.Instance.GetBagData().TryGetValue(collegeBoostNextCfg.consumeArr[i][0], out itemCount))
-                    {
-                        count = itemCount.num;
+                    if(itemCfg.itemType == ConstItemType.DRESS_UP)
+                    { 
+                        count = ItemDataManager.GetItemNum(collegeBoostNextCfg.consumeArr[i][0]);
                     }
                     else
                     {
-                        count = 0;
+                        if (BagDataManager.Instance.GetBagData().TryGetValue(collegeBoostNextCfg.consumeArr[i][0], out itemCount))
+                        {
+                            count = itemCount.num;
+                        }
+                        else
+                        {
+                            count = 0;
+                        }
                     }
                     item.m_txtCount.text = count.ToString() + "/" + collegeBoostNextCfg.consumeArr[i][1].ToString();
                     item.m_QualityType.selectedIndex = itemCfg.rarity - 1;
@@ -207,5 +218,20 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(ClothingUpgradeView).FullName);
         }
+        private void CheckGuide(object param)
+        {
+            GRoot.inst.touchable = true;
+            if (GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0)
+                UpdateCheckGuide(null);
+            else
+                Timers.inst.Remove(CheckGuide);
+        }
+
+        protected void UpdateCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(null, "ClothingSelectView", 6, "升级部位获得加成。", -1, true, _ui.target.height - 600);
+            GuideController.TryCompleteGuide("ClothingSelectView", 6);
+        }
     }
 }

+ 7 - 1
GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographSaveView.cs

@@ -24,6 +24,7 @@ namespace GFGGame
             _ui.m_btnClose.onClick.Add(this.Hide);
             _ui.m_btnSave.onClick.Add(this.OnClickBtnSave);
             _ui.m_btnSavePhoto.onClick.Add(this.OnClickBtnSavePhoto);
+            _ui.m_share.onClick.Add(this.BtnClickShare);
         }
 
         protected override void OnShown()
@@ -31,11 +32,13 @@ namespace GFGGame
             base.OnShown();
             tex = this.viewData as Texture2D;
             bytes = tex.EncodeToJPG();//将纹理数据,转化成一个jpg图片
+            ShareDataManager.Instance.imageBytes = bytes;
             _ui.m_imgRes.texture = new NTexture(tex);
             float width = _ui.m_imgBorder.width;
             float height = width * tex.height / tex.width;
             _ui.m_imgRes.SetSize(width, height);
             _ui.m_imgBorder.SetSize(width, height + 12);
+            _ui.m_share.visible = false;
             Timers.inst.AddUpdate(CheckGuide);
         }
 
@@ -210,7 +213,10 @@ namespace GFGGame
             _ui.m_btnSavePhoto.enabled = false;
 
         }
-
+        private void BtnClickShare()
+        {
+            ShareDataManager.Instance.CaptureCameraToImage(true,false);
+        }
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.FREEDOM_DRESS) <= 0)

+ 4 - 2
GameClient/Assets/Game/HotUpdate/Views/InstanceZones/InstanceZonesView.cs

@@ -95,7 +95,8 @@ namespace GFGGame
             if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0
-                || GuideDataManager.IsGuideFinish(ConstGuideId.POEM) <= 0)
+                || GuideDataManager.IsGuideFinish(ConstGuideId.POEM) <= 0
+                || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0)
                 //|| GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0)
             {
                 UpdateToCheckGuide(null);
@@ -119,7 +120,7 @@ namespace GFGGame
             _ui.m_btnPoem.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(PoemPhotoView).Name, false);
             _ui.m_btnStudio.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StudioView).Name, false);
             _ui.m_btnTravel.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TravelView).Name, false);
-            _ui.m_btnField.m_loaLockIcon.visible = false;//!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldView).Name, false);
+            _ui.m_btnField.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(TimeTracingShowView).Name, false);
             _ui.m_btnArena.m_loaLockIcon.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(ArenaView).Name, false);
         }
 
@@ -180,6 +181,7 @@ namespace GFGGame
             //GuideController.TryGuide(_ui.m_btnPoem.target, ConstGuideId.POEM, 1, "在“拍照”中保存的图片都会保存到这里。");
             GuideController.TryGuide(_ui.m_btnArena.target, ConstGuideId.ARENA_OPEN, 3, "在这里可以与其他小伙伴比拼搭配哦~");
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.ENTER_CHAPTER_5, 1, "", -1, false);
+            GuideController.TryGuide(_ui.m_btnField.target, "TimeTracingShowView", 3, "合成副本可获得奖励和服装哦~");
         }
 
     }

+ 17 - 2
GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs

@@ -199,8 +199,23 @@ namespace GFGGame
         private void OnClickBtnLogout()
         {
             ResetLoginButton();
-            QDDouYouManager.Instance.LoginOutBefore();
-            QDManager.Logout(false);
+
+            switch (LauncherConfig.ChannelId)
+            {
+                case (int)ChannelID.TapTap:
+
+                    break;
+                case (int)ChannelID.Test:
+
+                    break;
+                case (int)ChannelID.DouYouTest:
+                    QDDouYouManager.Instance.LoginOutBefore();
+                    break;
+                default:
+                    break;
+            }
+
+            QDManager.Logout();
         }
 
         private void OnClickBtnAge()

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs

@@ -291,6 +291,7 @@ namespace GFGGame
             _chapterCfgs = StoryChapterCfgArray.Instance.GetCfgsBysubType(subType);
             //这里+2,只是为了list左右两边为空白的表现,对于数据没啥意义
             _ui.m_listChapter.numItems = _chapterCfgs.Count + 2;
+            //_ui.m_listChapter.numItems = MainStoryDataManager.CheckChapterPassIndex(subType) + 2;
             int currentChapterIndex = 0;
             for (int i = 0; i < _ui.m_listChapter.numChildren; i++) 
             {
@@ -436,7 +437,6 @@ namespace GFGGame
             //GuideController.TryGuide(_ui.m_listChapter, ConstGuideId.ENTER_CHAPTER_4, 3, "", 1, true, _ui.target.height / 2);
             //GuideController.TryGuide(_ui.m_listChapter, ConstGuideId.ENTER_CHAPTER_5, 3, "", 1, true, _ui.target.height / 2);
             GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_PORCELAIN, 1, "点击返回主界面。");
-            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_FILING, 1, "点击返回主界面。");
         }
 
         private void DoSpecialEffect(object parm = null)

+ 7 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs

@@ -571,7 +571,10 @@ namespace GFGGame
              || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
              || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0
              || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0)
+             || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0
+             || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0
+             || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <=0
+             || GuideDataManager.IsGuideFinish("TimeTracingShowView") <=0)
             //|| GuideDataManager.IsGuideFinish(ConstGuideId.CLOTHING_DECOMPOSE) <= 0)
             {
                 UpdateToCheckGuide(null);
@@ -613,6 +616,9 @@ namespace GFGGame
             bool isGuide9 = GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.UP_CARD_STAR, 1, "点击返回主界面。");
             bool isGuide12 = GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.ARENA_OPEN, 1, "点击返回主界面。");
 
+            bool isGuide13 = GuideController.TryGuide(_ui.m_btnHome, "ClothingSelectView", 1, "点击返回主界面。");
+            bool isGuide14 = GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_FILING, 1, "点击返回主界面。");
+            bool isGuide15 = GuideController.TryGuide(_ui.m_btnHome, "TimeTracingShowView", 1, "点击返回主界面。");
             //&& !isGuide6 && !isGuide8
             _ui.m_chapter.target.scrollPane.touchEffect = !isGuide0 && !isGuide1 && !isGuide2 && !isGuide3 && !isGuide4 && !isGuide5 && !isGuide7 && !isGuide9 && !isGuide10;
 

+ 70 - 9
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs

@@ -20,6 +20,7 @@ namespace GFGGame
         private GameObject _sceneObject;
         private GameObject _animObject;
         private EffectUI _effectUI1;
+        private EffectUI _effect;
         private DressUpObj _dressUpObj;
         private GameObject _dressUpSceneObj;
         private GameObject _selfHeadImgObj;
@@ -70,6 +71,8 @@ namespace GFGGame
             _isShowLetters = false;
             EffectUIPool.Recycle(_effectUI1);
             _effectUI1 = null;
+            EffectUIPool.Recycle(_effect);
+            _effect = null;
             _onScreenEffectComplete = null;
             _typingEffect = null;
             if (_ui != null)
@@ -157,8 +160,12 @@ namespace GFGGame
             {
                 skipable = true;
             }
-
+            if (MainStoryDataManager.currentLevelCfgId == 100001001 && !InstanceZonesDataManager.CheckLevelPass(MainStoryDataManager.currentLevelCfgId))
+            {
+                skipable = false;
+            }
             _ui.m_btnSkip.visible = skipable;
+
             _ui.m_c1.selectedIndex = 0;
 
             if (_storyStartID == MainStoryDataManager.priorId)
@@ -357,6 +364,7 @@ namespace GFGGame
             _ui.m_dialogName.target.visible = false;
             _ui.m_dialogHead.target.visible = false;
             float delay = 0;
+            bool isWait = false;
             //屏幕效果
             if (_currentStepCfg != null)
             {
@@ -367,11 +375,12 @@ namespace GFGGame
                 }
                 else if (_currentStepCfg.blankScreenDur > 0)
                 {
+                    isWait = true;
                     delay = _currentStepCfg.blankScreenDur;
                     UpdatePic("0");
                 }
             }
-            if (delay > 0)
+            if (delay > 0 && !isWait)
             {
                 //转换成秒
                 delay = delay / 1000f;
@@ -379,6 +388,22 @@ namespace GFGGame
                 Timers.inst.Add(delay, 1, OnScreenEffectComplete);
                 StoryDialogDataManager.Instance.dialogShowDelay = 0.6f;
             }
+            else if (isWait)
+            {
+                if (_autoPlay)
+                {
+                    //转换成秒
+                    delay = delay / 1000f;
+                    _onScreenEffectComplete = OnScreenEffectComplete;
+                    Timers.inst.Add(delay, 1, OnScreenEffectComplete);
+                    StoryDialogDataManager.Instance.dialogShowDelay = 0.6f;
+                }
+                else
+                {
+                    _onScreenEffectComplete = OnScreenEffectComplete;
+                    StoryDialogDataManager.Instance.dialogShowDelay = 0.6f;
+                }
+            }
             else
             {
                 OnScreenEffectComplete();
@@ -414,7 +439,7 @@ namespace GFGGame
             _currentStepCfg = storyDialogCfg;
             UpdateMusic(storyDialogCfg.musicRes);
             UpdateBg(storyDialogCfg.bgRes);
-            UpdatePic(storyDialogCfg.picRes, storyDialogCfg.faceRes);
+            UpdatePic(storyDialogCfg.picRes, storyDialogCfg.faceRes, storyDialogCfg.emojiRes);
 
             UpdateAnim(storyDialogCfg.aniRes);
             UpdateRoleObj(storyDialogCfg.name);
@@ -502,7 +527,7 @@ namespace GFGGame
                 //}
             }
 
-            _ui.m_loaMask.url = ResPathUtil.GetBgImgPath(storyDialogCfg.maskRes);
+            _ui.m_loaMask.url = ResPathUtil.GetSceneBgPath(storyDialogCfg.maskRes);
             _ui.m_btnAutoPlay.enabled = true;
             _ui.m_list.visible = false;
             var content = storyDialogCfg.content.Replace("self", RoleDataManager.roleName);
@@ -792,7 +817,7 @@ namespace GFGGame
             }
         }
 
-        private void UpdatePic(string value, string faceValue = "")
+        private void UpdatePic(string value, string faceValue = "", string emojiValue = "")
         {
             if (IsTeaParty)
             {
@@ -803,13 +828,26 @@ namespace GFGGame
             {
                 SceneController.UpdateDialogPic(value, _sceneObject);
             }
-
             if (faceValue.Length > 0)
             {
                 SceneController.InitPicFace(faceValue, _sceneObject);
             }
+            if (emojiValue.Length > 0)
+            {
+                if(emojiValue != "0")
+                {
+                    SceneController.UpdateDialogPic("0", _sceneObject);
+                }
+                UpdateLiveEmoji(emojiValue);
+            }
+        }
+        private void UpdateLiveEmoji(string EmojiRes)
+        {
+            if (EmojiRes.Length > 0 && !IsTeaParty)
+            {
+                SceneController.UpdateEmojiAni(EmojiRes, ref _animObject);
+            }
         }
-
         private void UpdateAnim(string value)
         {
             if (value.Length > 0 && !IsTeaParty)
@@ -877,9 +915,23 @@ namespace GFGGame
             }
         }
 
-        private void PlayEffect(string[] infos)
+        private void PlayEffect(string[] value)
         {
-
+            if (value.Length > 0)
+            {
+                if (value[0] == "0")
+                {
+                    EffectUIPool.Recycle(_effect);
+                    _effect = null;
+                }
+                else
+                {
+                    EffectUIPool.Recycle(_effect);
+                    _effect = null;
+                    _effect = EffectUIPool.CreateEffectUI(_ui.m_effect, "ui_gyp", value[0]);
+                    _ui.m_effect.visible = true;
+                }
+            }
         }
 
         private void PlayShake(int[] shakeInfoArr)
@@ -1016,6 +1068,15 @@ namespace GFGGame
                         resList.Add(aniRes);
                     }
                 }
+                if (cfg.emojiRes.Length > 0 && cfg.emojiRes != "0")
+                {
+                    string EmojiPath = string.Format("DressUp/{0}", cfg.emojiRes);
+                    string aniRes = ResPathUtil.GetEmojiResPath(EmojiPath, cfg.emojiRes);
+                    if (!resList.Contains(aniRes))
+                    {
+                        resList.Add(aniRes);
+                    }
+                }
             }
 
             ResourceDownloaderOperation downloaderOperation = YooAssets.CreateBundleDownloader(resList.ToArray(), 3, 3);

+ 22 - 1
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -146,6 +146,8 @@ namespace GFGGame
             _ui.m_btnChange.m_c1.selectedIndex = 1;
             _ui.m_btnChange.target.selected = true;
 
+            _ui.m_storageBtn.target.onClick.Add(OnBtnStorageClick);
+
             firstIn = true;
             //这个是东8时区的0时间戳
             unixStartTime = new DateTime(1970, 1, 1, 8, 0, 0);
@@ -371,6 +373,21 @@ namespace GFGGame
             }
         }
 
+        private void OnBtnStorageClick()
+        {
+
+            if(MainDataManager.Instance.StorageStatus == 0)
+            {
+                MainDataManager.Instance.StorageStatus = 1;
+                _ui.m_listGroud.visible = false;
+            }
+            else
+            {
+                MainDataManager.Instance.StorageStatus = 0;
+                _ui.m_listGroud.visible = true;
+            }
+            _ui.m_storageBtn.m_c1.selectedIndex = MainDataManager.Instance.StorageStatus;
+        }
         private void OnClickBtnMain()
         {
             isOpen = MainControllerr.GotoStoryChapter(isOpen);
@@ -1224,7 +1241,8 @@ namespace GFGGame
                 || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0
                 || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0
-                || GuideDataManager.IsGuideFinish(ConstGuideId.SUIT_LIST_VIEW) <= 0)
+                || GuideDataManager.IsGuideFinish(ConstGuideId.SUIT_LIST_VIEW) <= 0
+                || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -1270,6 +1288,9 @@ namespace GFGGame
 
             bool isStudioPropertyGuide = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, ConstGuideId.STUDIO_PROPERTY, 1, "进入副本", -1, false, _ui.target.height - 700);
 
+            bool isGuide13 = GuideController.TryGuide(_ui.m_btnXiuFang.target, "ClothingSelectView", 2, "进入绣纺。");
+            bool isGuide14 = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, "TimeTracingShowView", 2, "进入副本。");
+
             _ui.m_loaGuidestudio.visible = false;
             // if (isStudioMetalGuide || isStudioFilingGuide || isFieldGuide || isStudioPropertyGuide)
             // {

+ 53 - 5
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs

@@ -1,6 +1,7 @@
 using FairyGUI;
 using System.Collections.Generic;
 using System.Text.RegularExpressions;
+using cn.sharesdk.unity3d;
 using UI.RoleInfo;
 using ET;
 
@@ -16,6 +17,7 @@ namespace GFGGame
             {
                 _ui.Dispose();
             }
+
             _ui = null;
             base.Dispose();
         }
@@ -132,6 +134,7 @@ namespace GFGGame
                 {
                     messageSuc = "已扣除物品" + itemId + "*" + itemNum;
                 }
+
                 GMController.SendGMCommand($"getItem {itemId} {itemNum}", messageSuc).Coroutine();
             }
             else
@@ -148,6 +151,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("请输入数字");
                 return;
             }
+
             string lv = _ui.m_ComBtn.m_txtRoleLv.text;
             string messageSuc = "等级提升至" + lv;
 
@@ -164,6 +168,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("请输入数字");
                 return;
             }
+
             string content = _ui.m_ComBtn.m_txtChapter.text + " " + _ui.m_ComBtn.m_txtChapterLv.text;
             string messageSuc = string.Format("当前关卡第{0}章第{1}关", _ui.m_ComBtn.m_txtChapter.text,
                 _ui.m_ComBtn.m_txtChapterLv.text);
@@ -255,6 +260,7 @@ namespace GFGGame
                 {
                     continue;
                 }
+
                 LeagueSkillCfg skillCfg = LeagueSkillCfgArray.Instance.GetCfg(skillId);
                 // List<LeagueSkillCfg> lastSkillCfgs = LeagueSkillCfgArray.Instance.GetCfgsBytypeAndlayer(_type, skillCfg.layer - 1);
                 // for (int j = 0; j < lastSkillCfgs.Count; j++)
@@ -271,8 +277,10 @@ namespace GFGGame
                     PromptController.Instance.ShowFloatTextPrompt("消耗不足");
                     break;
                 }
+
                 await SkillSProxy.ReqActiveSkill(SkillType.LeagueSkill, skillId);
             }
+
             PromptController.Instance.ShowFloatTextPrompt("学习结束");
         }
 
@@ -283,6 +291,7 @@ namespace GFGGame
             {
                 GameGlobal.skipGuide = true;
             }
+
             OnClickBtnGetAllDressUpItem();
             OnClickBtnGetAllCardItem();
 
@@ -298,7 +307,8 @@ namespace GFGGame
         {
             var chapterCount = StoryChapterCfgArray.Instance.GetCfgsBysubType(ConstInstanceZonesSubType.Normal).Count;
             _ui.m_ComBtn.m_txtChapter.text = "" + chapterCount;
-            StoryChapterCfg storyChapterCfg = StoryChapterCfgArray.Instance.GetCfgBysubTypeAndorder(ConstInstanceZonesSubType.Normal, chapterCount);
+            StoryChapterCfg storyChapterCfg =
+                StoryChapterCfgArray.Instance.GetCfgBysubTypeAndorder(ConstInstanceZonesSubType.Normal, chapterCount);
             _ui.m_ComBtn.m_txtChapterLv.text = "" + storyChapterCfg.levelCount;
         }
 
@@ -306,6 +316,7 @@ namespace GFGGame
         {
             FightDataManager.Instance.maxFightSpeed = 8;
         }
+
         private void OnClickBtnMaterials()
         {
             List<ItemCfg> itemCfgs = ItemCfgArray.Instance.GetCfgsByitemType(ConstItemType.ITEM);
@@ -316,7 +327,6 @@ namespace GFGGame
                 string successMessage = string.Format("已获取 【{0} * {1}】", itemCfgs[i].name, 1000);
                 GMController.SendGMCommand("getItem " + content, successMessage).Coroutine();
             }
-
         }
 
         private void OnClickBtnGetSuit()
@@ -327,6 +337,7 @@ namespace GFGGame
             {
                 PromptController.Instance.ShowFloatTextPrompt("套装配置不存在");
             }
+
             for (int i = 0; i < suitCfg.partsArr.Length; i++)
             {
                 string content = string.Format("{0} {1}", suitCfg.partsArr[i], 1);
@@ -334,6 +345,7 @@ namespace GFGGame
                 string successMessage = string.Format("已获取 【{0} * {1}】", name, 1000);
                 GMController.SendGMCommand("getItem " + content, successMessage).Coroutine();
             }
+
             for (int i = 0; i < suitCfg.partsOptionalArr.Length; i++)
             {
                 string content = string.Format("{0} {1}", suitCfg.partsOptionalArr[i], 1);
@@ -342,6 +354,7 @@ namespace GFGGame
                 GMController.SendGMCommand("getItem " + content, successMessage).Coroutine();
             }
         }
+
         private void OnClickBtnGM(EventContext context)
         {
             string content = _ui.m_inputGM.text;
@@ -351,6 +364,7 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("请按照指定格式输入物品信息", MessageType.ERR);
                 return;
             }
+
             switch (infos[0])
             {
                 case "cjstime":
@@ -359,6 +373,7 @@ namespace GFGGame
                         PromptController.Instance.ShowFloatTextPrompt("请输入以秒为单位的正确的时间戳");
                         return;
                     }
+
                     LuckyBoxDataManager.Instance.startTime = int.Parse(infos[1]);
                     PromptController.Instance.ShowFloatTextPrompt("设置成功");
 
@@ -369,6 +384,7 @@ namespace GFGGame
                         PromptController.Instance.ShowFloatTextPrompt("请输入以秒为单位的正确的时间戳");
                         return;
                     }
+
                     LuckyBoxDataManager.Instance.endTime = int.Parse(infos[1]);
                     PromptController.Instance.ShowFloatTextPrompt("设置成功");
                     break;
@@ -397,17 +413,49 @@ namespace GFGGame
             if (string.IsNullOrEmpty(num)) return;
             GMController.SendGMCommand($"addNum {roleNumType} {num}", "").Coroutine();
         }
+
         private void OnClickShareTest1(EventContext context = null)
         {
-
+            QDShareManager.Instance.SubmitPolicyGrantResult();
+            ShareContent content = new ShareContent();
+            content.SetText("this is a test string.");
+            content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/1.jpg");
+            content.SetTitle("test title");
+            content.SetSite("Mob-ShareSDK");
+            content.SetComment("test description");
+            content.SetShareType(ContentType.Image);
+            PlatformType[] platformTypes = new[]
+                { PlatformType.WeChatMoments, PlatformType.WeChat, PlatformType.WeChatFavorites };
+            QDShareManager.Instance.ShowPlatformList(platformTypes, content);
         }
+
         private void OnClickShareTest2(EventContext context = null)
         {
-
+            ShareContent content = new ShareContent();
+            content.SetText("this is a test string.");
+            content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/1.jpg");
+            content.SetTitle("test title");
+            content.SetTitleUrl("http://www.mob.com");
+            content.SetSite("Mob-ShareSDK");
+            content.SetSiteUrl("http://www.mob.com");
+            content.SetUrl("http://www.mob.com");
+            content.SetComment("test description");
+            //content.SetMusicUrl("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3");
+            content.SetShareType(ContentType.Image);
+            QDShareManager.Instance.ShowShareContentEditor(PlatformType.WeChat, content);
         }
+
         private void OnClickShareTest3(EventContext context = null)
         {
-
+            ShareDataManager.Instance.CaptureCameraToImage();
+            //ShareContent content = new ShareContent();
+            //content.SetText("this is a test string.");
+            //content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/1.jpg");
+            //content.SetTitle("test title");
+            //content.SetSite("Mob-ShareSDK");
+            //content.SetComment("test description");
+            //content.SetShareType(ContentType.Image);
+            //QDShareManager.Instance.ShareContent(PlatformType.WeChat, content);
         }
     }
 }

+ 6 - 1
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/RoleInfoView.cs

@@ -42,6 +42,7 @@ namespace GFGGame
             _ui.m_btnCardGuide.target.onClick.Add(OnBtnCardGuideClick);
             _ui.m_btnTaskArchieveGuide.target.onClick.Add(OnBtnTaskArchieveClick);
 
+            _ui.m_btnShare.onClick.Add(OnBtnShareClick);
             _ui.m_btnSkill.onClick.Add(OnBtnSkillClick);
             _ui.m_btnSetting.onClick.Add(OnBtnSettingClick);
             _ui.m_btnCopy.onClick.Add(OnBtnCopyClick);
@@ -81,7 +82,7 @@ namespace GFGGame
 
             _ui.m_txtSlogan.text = RoleDataManager.slogan;
             UpdateAllInfo();
-
+            _ui.m_btnShare.visible = false;
         }
 
         protected override void OnHide()
@@ -261,6 +262,10 @@ namespace GFGGame
             SettingView.refresh = true;
             ViewManager.Show<SettingView>();
         }
+        private void OnBtnShareClick()
+        {
+            ShareDataManager.Instance.CaptureCameraToImage();
+        }
 
         private void OnBtnCopyClick()
         {

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Views/Share.meta

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

+ 88 - 0
GameClient/Assets/Game/HotUpdate/Views/Share/ShareView.cs

@@ -0,0 +1,88 @@
+using ET;
+using FairyGUI;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.EventSystems;
+using System.IO;
+using UnityEngine.Networking;
+using cn.sharesdk.unity3d;
+using UI.Share;
+
+namespace GFGGame
+{
+    public class ShareView : BaseView
+    {
+        private UI_ShareUI _ui;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_ShareUI.PACKAGE_NAME;
+            _ui = UI_ShareUI.Create();
+            this.viewCom = _ui.target;
+            isfullScreen = true;
+            isReturnView = true;
+
+            _ui.m_btnShare.onClick.Add(BtnOnclickShare);
+            _ui.m_btnClose.onClick.Add(this.Hide);
+            _ui.m_btnShareWB.onClick.Add(BtnOnclickShareWb);
+            _ui.m_btnShareWX.onClick.Add(BtnOnClickShareWX);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_btnShareWB.visible = false;
+            _ui.m_btnShareQQ.visible = false;
+            _ui.m_btnShareQQZone.visible = false;
+            _ui.m_btnShareDouYin.visible = false;
+            RoleInfoManager.Instance.UpdateHead(_ui.m_head, RoleDataManager.headId, RoleDataManager.headBorderId);
+            _ui.m_levelText.text = RoleDataManager.lvl.ToString();
+            _ui.m_nameText.text = RoleDataManager.roleName;
+            ShareDataManager.Instance.group = _ui.m_shareGrade;
+            Texture2D imageText = ShareDataManager.Instance.ConvertBytesToTexture(ShareDataManager.Instance.imageBytes);
+            _ui.m_icon.texture = new NTexture(imageText);
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+        private void BtnOnclickShare()
+        {
+            ShareDataManager.Instance.CaptureCameraToImage(false);
+            ShareSDKFun(PlatformType.WeChatMoments);
+        }
+        private void BtnOnclickShareWb()
+        {
+            ShareDataManager.Instance.CaptureCameraToImage(false);
+            ShareSDKFun(PlatformType.SinaWeibo);
+        }
+        private void BtnOnClickShareWX()
+        {
+            ShareDataManager.Instance.CaptureCameraToImage(false);
+            ShareSDKFun(PlatformType.WeChat);
+        }
+        private void ShareSDKFun(PlatformType platformType)
+        {
+            QDShareManager.Instance.SubmitPolicyGrantResult();
+            ShareContent content = new ShareContent();
+            content.SetText("万世镜");
+            content.SetImagePath(ShareDataManager.Instance.outputImagePath);
+            content.SetTitle("wsj");
+            content.SetSite("Mob-ShareSDK");
+            content.SetComment("test description");
+            content.SetShareType(ContentType.Image);
+            QDShareManager.Instance.ShareContent(platformType, content);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/Share/ShareView.cs.meta

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

+ 10 - 7
GameClient/Assets/Game/HotUpdate/Views/Store/StoreView.cs

@@ -187,15 +187,18 @@ namespace GFGGame
                 //成长基金单独处理
                 if (_storeTabCfgs[index][0] == "成长基金")
                 {
-                    //ActivityOpenCfg activityCfg = ActivityOpenCfgArray.Instance.GetCfg(3002);
-                    //if (RoleDataManager.lvl < activityCfg.level)
+                    ActivityOpenCfg activityCfg = ActivityOpenCfgArray.Instance.GetCfg(3002);
+                    if (RoleDataManager.lvl < activityCfg.level)
                     {
-                        item.visible = false;
+                        if (!RedDotDataManager.Instance.GetGrowthFundRewardRed())
+                        {
+                            item.visible = false;
+                        }
+                    }
+                    else
+                    {
+                        item.visible = true;
                     }
-                    //else
-                    //{
-                    //    item.visible = true;
-                    //}
                 }
                 item.title = _storeTabCfgs[index][0];
                 menu2 = int.Parse(_storeTabCfgs[index][1]);

+ 21 - 1
GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs

@@ -61,13 +61,15 @@ namespace GFGGame
             UpdateView();
             UpdateSuitNum();
             UpdateFirst();
-            UpdateproBar();  
+            UpdateproBar();
+            Timers.inst.AddUpdate(CheckGuide);
         }
 
         protected override void OnHide()
         {
             _valueBarController.OnHide();
             base.OnHide();
+            Timers.inst.Remove(CheckGuide);
         }
         protected override void AddEventListener()
         {
@@ -208,6 +210,7 @@ namespace GFGGame
 
                 //}
                 item.m_c1.selectedIndex = TimeTracingDataManager.Instance.GetChapterRewardIDStatus(datas[i].id, datas[i].paramsArr[0]);
+                RedDotController.Instance.SetComRedDot(item.target, TimeTracingDataManager.Instance.GetChapterRewardIDStatus(datas[i].id, datas[i].paramsArr[0]) == 1, "", -10, 25);
                 item.m_icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(datas[i].bonusArr[0][0]).res, "png");
                 item.m_count.text = datas[i].count.ToString();
                 if (item.target.data == null)
@@ -252,5 +255,22 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(TimeTracingLevelView).FullName);
         }
+        private void CheckGuide(object param)
+        {
+            GRoot.inst.touchable = true;
+            if (GuideDataManager.IsGuideFinish("TimeTracingShowView") <= 0)
+                UpdateCheckGuide(null);
+            else
+                Timers.inst.Remove(CheckGuide);
+        }
+
+        protected void UpdateCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            MainStoryDataManager.currentLevelCfgId = 100003003;
+            GuideController.TryGuide(_ui.m_level1.target, "TimeTracingShowView", 5, "挑战。");
+            GuideController.TryGuide(_ui.m_btnBack, "TimeTracingShowView", 6, "点击返回。");
+            
+        }
     }
 }

+ 20 - 0
GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingShowView.cs

@@ -60,6 +60,7 @@ namespace GFGGame
             UpdateView();
             RedDotController.Instance.SetComRedDot(_ui.m_switchBtn.target, TimeTracingDataManager.Instance.GetLevelRewardStatus() || TimeTracingDataManager.Instance.GetAllChapterReward(),"",-200,-10);
             RedDotController.Instance.SetComRedDot(_ui.m_challgeBtn, TimeTracingDataManager.Instance.GetChapterIDRewardStatus(ChapterID), "", -100,50);
+            Timers.inst.AddUpdate(CheckGuide);
         }
 
         protected override void OnHide()
@@ -71,6 +72,7 @@ namespace GFGGame
             //{
             //    dressUpObjUI.Dispose();
             //}
+            Timers.inst.Remove(CheckGuide);
         }
 
         private void UpdateView()
@@ -148,5 +150,23 @@ namespace GFGGame
                 }
             }
         }
+
+        private void CheckGuide(object param)
+        {
+            GRoot.inst.touchable = true;
+            if (GuideDataManager.IsGuideFinish("TimeTracingShowView") <= 0)
+                UpdateCheckGuide(null);
+            else
+                Timers.inst.Remove(CheckGuide);
+        }
+
+        protected void UpdateCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_challgeBtn, "TimeTracingShowView", 4, "进入副本。");
+            GuideController.TryGuide(_ui.m_switchBtn.target, "TimeTracingShowView", 7, "点击选择副本。");
+            GuideController.TryGuide(_ui.m_btnBack, "TimeTracingShowView", 8, "点击返回。");
+            GuideController.TryCompleteGuide("TimeTracingShowView", 8);
+        }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingSwitchView.cs

@@ -95,7 +95,7 @@ namespace GFGGame
             {
                 listItem.target.onClick.Add(OnClickListChapterItem);
             }
-            RedDotController.Instance.SetComRedDot(listItem.target, TimeTracingDataManager.Instance.GetChapterIDRewardStatus(chapterIdList[index - 1]));
+            RedDotController.Instance.SetComRedDot(listItem.target, TimeTracingDataManager.Instance.GetChapterIDRewardStatus(chapterIdList[index - 1]), "", 0, 65);
             listItem.target.data = new List<int>() { index, suitIdList[index - 1], chapterIdList[index - 1], isLock };
             UI_TimeTracingSwitchItem.ProxyEnd();
         }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs

@@ -140,6 +140,7 @@ namespace GFGGame
 
 
             GuideController.TryGuide(_ui.m_component.m_btnClothingUpgrade.target, ConstGuideId.SUIT_LIST_VIEW, 2, "");
+            bool isGuide13 = GuideController.TryGuide(_ui.m_component.m_btnGYP.target, "ClothingSelectView", 3, "进入估衣铺。");
         }
     }
 }

+ 2 - 2
GameClient/Assets/Game/Launcher/GameLauncher.cs

@@ -7,7 +7,6 @@ using UnityEngine.SceneManagement;
 public class GameLauncher : MonoBehaviour
 {
     public static GameLauncher Instance;
-
     /// <summary>
     /// 资源系统运行模式
     /// </summary>
@@ -26,4 +25,5 @@ public class GameLauncher : MonoBehaviour
         Screen.sleepTimeout = SleepTimeout.NeverSleep;
         Application.runInBackground = true;
     }
-}
+
+}

+ 1 - 1
GameClient/Assets/Game/Launcher/LauncherConfig.cs

@@ -57,7 +57,7 @@ namespace GFGGame
             ChannelId = (int)ChannelID.TapTap;
 #elif PT_DOUYOU
             netType = EnumNetType.LOCAL;
-            cfgName = "cfg_douYou";
+            cfgName = "cfg_sdkTest";
             ChannelId = 22;
 #elif PT_IOS
             netType = EnumNetType.PUBLIC;

+ 0 - 2
GameClient/Assets/Game/Launcher/LauncherController.cs

@@ -15,7 +15,6 @@ namespace GFGGame
         {
             LauncherView.Instance.SetDesc("正在检查更新...");
             var url = LauncherConfig.cfgUrl.Replace("{cfgName}", LauncherConfig.cfgName);
-            Debug.Log(url);
             url = url + "?t=" + DateTime.Now.Ticks;
             HttpTool.Instance.Get(url, (string json) =>
             {
@@ -71,7 +70,6 @@ namespace GFGGame
         private static void OnInitPlatform(IEventMessage obj)
         {
             LauncherEvent.InitPlatformResult initPlatformResult = obj as LauncherEvent.InitPlatformResult;
-            OnInitSDKSuccess();
             if (initPlatformResult != null)
             {
                 if(initPlatformResult.success)

+ 7 - 1
GameClient/Assets/Game/Launcher/Platform/QDManagerInit.cs

@@ -1,4 +1,5 @@
 using UnityEngine;
+using UniFramework.Event;
 
 namespace GFGGame.Launcher
 {
@@ -8,8 +9,13 @@ namespace GFGGame.Launcher
         {
             switch (LauncherConfig.ChannelId)
             {
+                case (int)ChannelID.DouYouTest:
+                    QDDouYouManagerInit.Instance.InitSDK(QDDouYouManagerInit.Instance.GetAdId());
+                    QDShareManagerInit.Instance.InitSDK();
+                    break;
                 default:
-                    QDDouYouManagerInit.Instance.InitSDK(LauncherConfig.douYouAdId);
+                    UniEvent.SendMessage(new LauncherEvent.InitPlatformResult() { success = true });
+                    QDShareManagerInit.Instance.InitSDK();
                     break;
             }
         }

+ 3 - 0
GameClient/Assets/Game/Launcher/Platform/ShareSDK.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c9cb7c77ebd34ca590c681fdc3a6695d
+timeCreated: 1717838023

+ 24 - 0
GameClient/Assets/Game/Launcher/Platform/ShareSDK/IShareSDKListener.cs

@@ -0,0 +1,24 @@
+using System.Collections;
+using cn.sharesdk.unity3d;
+
+namespace GFGGame.Launcher
+{
+    public interface IShareSDKListener
+    {
+        public void OnAuthResult(int reqID, ResponseState state, PlatformType type, Hashtable result);
+
+        public void OnGetUserInfoResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result);
+
+        public void OnShareResult(int reqID, ResponseState state, PlatformType type, Hashtable result);
+
+        public void OnGetFriendsResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result);
+
+        public void OnFollowFriendResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result);
+
+        public void OnIsClientValidForAndroidResult(int reqID, ResponseState state, PlatformType type,
+            Hashtable result);
+    }
+}

+ 3 - 0
GameClient/Assets/Game/Launcher/Platform/ShareSDK/IShareSDKListener.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f343722126ec4daf867c548368730e75
+timeCreated: 1717838042

+ 77 - 0
GameClient/Assets/Game/Launcher/Platform/ShareSDK/QDShareManagerInit.cs

@@ -0,0 +1,77 @@
+using System.Collections;
+using cn.sharesdk.unity3d;
+using UnityEngine;
+
+namespace GFGGame.Launcher
+{
+    public class QDShareManagerInit : SingletonBase<QDShareManagerInit>
+    {
+        public IShareSDKListener shareSDKListener;
+
+        public GameObject gameObject;
+
+        public MobSDK mobsdk;
+
+        public ShareSDK shareSDK;
+
+        public void InitSDK()
+        {
+            ShareSDKKHandler eventHandler = GameObject.Find("ShareSDKGameObject")
+                ?.GetComponent<ShareSDKKHandler>();
+            if (eventHandler == null)
+            {
+                gameObject = new GameObject("ShareSDKGameObject");
+                gameObject.AddComponent<ShareSDKKHandler>();
+                GameObject.DontDestroyOnLoad(gameObject);
+            }
+
+            GameObject mainCameraObject = GameObject.Find("GameLauncher");
+            mobsdk = mainCameraObject.GetComponent<MobSDK>();
+            shareSDK = mainCameraObject.GetComponent<ShareSDK>();
+        }
+
+        public class ShareSDKKHandler : AbShareSDKHandler
+        {
+            public override void OnAuthResult(int reqID, ResponseState state, PlatformType type, Hashtable result)
+            {
+                Debug.Log($"OnAuthResult xx");
+                QDShareManagerInit.Instance.shareSDKListener.OnAuthResult(reqID, state, type, result);
+            }
+
+            public override void OnGetUserInfoResult(int reqID, ResponseState state, PlatformType type,
+                Hashtable result)
+            {
+                Debug.Log($"OnGetUserInfoResult xx");
+                QDShareManagerInit.Instance.shareSDKListener.OnGetUserInfoResult(reqID, state, type, result);
+            }
+
+            public override void OnShareResult(int reqID, ResponseState state, PlatformType type, Hashtable result)
+            {
+                Debug.Log($"OnShareResult xx" + (int)type);
+                QDShareManagerInit.Instance.shareSDKListener.OnShareResult(reqID, state, type, result);
+            }
+
+            public override void OnGetFriendsResult(int reqID, ResponseState state, PlatformType type,
+                Hashtable result)
+            {
+                Debug.Log($"OnGetFriendsResult xx");
+                QDShareManagerInit.Instance.shareSDKListener.OnGetFriendsResult(reqID, state, type, result);
+            }
+
+            public override void OnFollowFriendResult(int reqID, ResponseState state, PlatformType type,
+                Hashtable result)
+            {
+                Debug.Log($"OnFollowFriendResult xx");
+                QDShareManagerInit.Instance.shareSDKListener.OnFollowFriendResult(reqID, state, type, result);
+            }
+
+            public override void OnIsClientValidForAndroidResult(int reqID, ResponseState state, PlatformType type,
+                Hashtable result)
+            {
+                Debug.Log($"OnIsClientValidForAndroidResult xx");
+                QDShareManagerInit.Instance.shareSDKListener
+                    .OnIsClientValidForAndroidResult(reqID, state, type, result);
+            }
+        }
+    }
+}

+ 3 - 0
GameClient/Assets/Game/Launcher/Platform/ShareSDK/QDShareManagerInit.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 0e3b50e6054444febfcae364a9bdd607
+timeCreated: 1717838161

+ 24 - 28
GameClient/Assets/Plugins/Android/AndroidManifest.xml

@@ -1,37 +1,33 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.sdk.gfg"
+<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.unity3d.player"
     xmlns:tools="http://schemas.android.com/tools"
-    android:installLocation="auto" >
-
+	android:installLocation="preferExternal">
+    <!--bugly配置权限start-->
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.READ_LOGS" />
+    <!--bugly配置权限end-->
+	<!-- 权限组:STORAGE == 读取存储相关的权限申请 -->
+	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <application
-        android:name="com.sdk.douyou.DouyouApplication"
         android:allowBackup="true"
-		android:usesCleartextTraffic="true"
 		android:icon="@drawable/ic_launcher"
-		android:label="万世镜_douyou_dev">
-
-	<activity
-            android:name="com.easy.bridge.DouYouMainActivity"
+		android:label="万世镜local">
+		<activity android:name="com.unity3d.player.UnityPlayerActivity"
             android:configChanges="mnc|keyboardHidden|screenSize|orientation|keyboard"
             android:screenOrientation="portrait"
-            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <meta-data android:name="android.permission.READ_LOGS" 
-            android:value="true" />
-        <meta-data android:name="android.permission.SYSTEM_ALERT_WINDOW" android:value="true" />
-        <meta-data android:name="android.permission.SYSTEM_OVERLAY_WINDOW" android:value="true" />
-        <meta-data android:name="android.permission.BLUETOOTH" android:value="true"/>
-        <meta-data android:name="android.permission.QUERY_ALL_PACKAGES" android:value="true"/>
-        <meta-data
-            android:name="unityplayer.ForwardNativeEventsToDalvik"
-            android:value="true" />
-        <meta-data
-            android:name="unityplayer.UnityActivity"
-            android:value="true" />
+            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
+			<intent-filter>
+				<action android:name="android.intent.action.MAIN" />
+				<category android:name="android.intent.category.LAUNCHER" />
+			</intent-filter>
+		</activity>
     </application>
+
 </manifest>

BIN
GameClient/Assets/Plugins/Android/ShareSDKU3D.jar


+ 1 - 1
GameClient/Assets/Plugins/Android/libs/douyouTT-release.aar.meta → GameClient/Assets/Plugins/Android/ShareSDKU3D.jar.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 3a452077ab5726045aefeac7735faeb6
+guid: 1a995e0952a7d4839b616a51ec83deca
 PluginImporter:
   externalObjects: {}
   serializedVersion: 2

+ 8 - 0
GameClient/Assets/Plugins/Android/baseProjectTemplate.gradle

@@ -5,6 +5,8 @@ allprojects {
         repositories {**ARTIFACTORYREPOSITORY**
             google()
             jcenter()
+            maven {
+            url "https://mvn.mob.com/android/"}
         }
 
         dependencies {
@@ -13,6 +15,8 @@ allprojects {
             // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
             // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version
             classpath 'com.android.tools.build:gradle:3.4.3'
+            // Add MobSDK classpath dependency
+            classpath "com.mob.sdk:MobSDK2:+"
             **BUILD_SCRIPT_DEPS**
         }
     }
@@ -23,6 +27,10 @@ allprojects {
         flatDir {
             dirs "${project(':unityLibrary').projectDir}/libs"
         }
+         // Add MobSDK Maven repository
+        maven {
+            url "https://mvn.mob.com/android/"
+        }
     }
 }
 

+ 1 - 1
GameClient/Assets/Plugins/Android/baseProjectTemplate.gradle.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 66a4560ec1a0dd640b1cb6888270c552
+guid: af9cc692d722e2a4299568439af42567
 DefaultImporter:
   externalObjects: {}
   userData: 

+ 6 - 0
GameClient/Assets/Plugins/Android/gradleTemplate.properties

@@ -0,0 +1,6 @@
+org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
+org.gradle.parallel=true
+android.enableR8=**MINIFY_WITH_R_EIGHT**
+unityStreamingAssets=.unity3d**STREAMING_ASSETS**
+MobSDK.spEdition=FP
+**ADDITIONAL_PROPERTIES**

+ 7 - 0
GameClient/Assets/Plugins/Android/gradleTemplate.properties.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4f713b8861a31a841a13e8666d75549d
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 135 - 0
GameClient/Assets/Plugins/Android/launcherTemplate.gradle

@@ -0,0 +1,135 @@
+// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
+
+apply plugin: 'com.android.application'
+
+dependencies {
+    implementation project(':unityLibrary')
+    }
+
+android {
+    compileSdkVersion **APIVERSION**
+    buildToolsVersion '**BUILDTOOLS**'
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+
+    defaultConfig {
+        minSdkVersion **MINSDKVERSION**
+        targetSdkVersion **TARGETSDKVERSION**
+        applicationId '**APPLICATIONID**'
+        ndk {
+            abiFilters **ABIFILTERS**
+        }
+        versionCode **VERSIONCODE**
+        versionName '**VERSIONNAME**'
+    }
+
+    aaptOptions {
+        noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
+        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
+    }**SIGN**
+
+    lintOptions {
+        abortOnError false
+    }
+
+    buildTypes {
+        debug {
+            minifyEnabled **MINIFY_DEBUG**
+            proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
+            jniDebuggable true
+        }
+        release {
+            minifyEnabled **MINIFY_RELEASE**
+            proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG**
+        }
+    }**PACKAGING_OPTIONS****PLAY_ASSET_PACKS****SPLITS**
+**BUILT_APK_LOCATION**
+    bundle {
+        language {
+            enableSplit = false
+        }
+        density {
+            enableSplit = false
+        }
+        abi {
+            enableSplit = true
+        }
+    }
+}**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP**
+
+apply plugin: 'com.mob.sdk'
+
+MobSDK {
+    appKey "39cb75f714db3"
+    appSecret "7fdbd1e2d3fd5beaa360d7eca51d844e"
+    ShareSDK {
+        //第三方平台配置
+        devInfo {
+            SinaWeibo {
+                id 1
+                sortId 59
+                appKey "568898243"
+                appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
+                callbackUri "http://www.sharesdk.cn"
+                shareByAppClient true
+                enable true
+            }
+
+            TencentWeibo {
+                id 2
+                sortId 2
+                appKey "801307650"
+                appSecret "ae36f4ee3946e1cbb98d6965b0b2ff5c"
+                callbackUri "http://sharesdk.cn"
+                enable true
+            }
+            Wechat {
+                id 4
+                sortId 4
+                appId "wxf8452955e8de2e46"
+                appSecret "f9fcae1666d6e9e24cac0f7dd395433d"
+                withShareTicket true
+                bypassApproval true
+                enable true
+            }
+            WechatMoments {
+                id 5
+                sortId 5
+                appId "wxf8452955e8de2e46"
+                appSecret "f9fcae1666d6e9e24cac0f7dd395433d"
+                bypassApproval true
+                enable true
+            }
+            WeChatFavorites{
+                id 6
+                sortId 6
+                appId "wxf8452955e8de2e46"
+                appSecret "f9fcae1666d6e9e24cac0f7dd395433d"
+                bypassApproval true
+                enable true
+            }
+            QZone {
+                id 3
+                sortId 3
+                appId "100371282"
+                appKey "aed9b0303e3ed1e27bae87c33761161d"
+                shareByAppClient true
+                bypassApproval false
+                enable true
+            }
+             QQ {
+                id 7
+                sortId 7
+                appId "100371282"
+                appKey "aed9b0303e3ed1e27bae87c33761161d"
+                shareByAppClient true
+                bypassApproval false
+                enable true
+            }
+            //如果需要,添加其他第三方平台的配置
+        }
+    }
+}

+ 7 - 0
GameClient/Assets/Plugins/Android/launcherTemplate.gradle.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9c684b72e4e62e54093076fcc306c48f
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/Plugins/Android/libs/douyou-release.aar


+ 0 - 32
GameClient/Assets/Plugins/Android/libs/douyou-release.aar.meta

@@ -1,32 +0,0 @@
-fileFormatVersion: 2
-guid: 586f79cda14c10f46bfc629a29771d7d
-PluginImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  iconMap: {}
-  executionOrder: {}
-  defineConstraints: []
-  isPreloaded: 0
-  isOverridable: 0
-  isExplicitlyReferenced: 0
-  validateReferences: 1
-  platformData:
-  - first:
-      Android: Android
-    second:
-      enabled: 1
-      settings: {}
-  - first:
-      Any: 
-    second:
-      enabled: 0
-      settings: {}
-  - first:
-      Editor: Editor
-    second:
-      enabled: 0
-      settings:
-        DefaultValueInitialized: true
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
GameClient/Assets/Plugins/Android/libs/douyouTT-release.aar


+ 0 - 249
GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java

@@ -1,249 +0,0 @@
-package com.easy.bridge;
-
-import android.os.Bundle;
-
-import android.content.Intent;
-import android.content.res.Configuration;
-
-import com.sdk.douyou.DouYou;
-import com.sdk.douyou.listen.ActiveGameInterface;
-import com.sdk.douyou.listen.EnterGameInterface;
-import com.sdk.douyou.listen.SwitchAccountInterface;
-import com.sdk.douyou.adapter.DouYouSDKListenerAdapter;
-import com.sdk.douyou.listen.DouYouSDKListener;
-import com.sdk.douyou.bean.OrderInfoBean;
-import com.sdk.douyou.bean.RoleInfoBean;
-import com.sdk.douyou.util.LogUtil;
-import com.tencent.bugly.crashreport.CrashReport;
-import com.unity3d.player.UnityPlayer;
-import com.unity3d.player.UnityPlayerActivity;
-
-public class DouYouMainActivity extends UnityPlayerActivity
-{
-    private int uid;
-
-    private Bundle _savedInstanceState;
-
-    @Override protected void onCreate(Bundle savedInstanceState)
-    {
-        _savedInstanceState = savedInstanceState;
-        super.onCreate(savedInstanceState);
-
-        CrashReport.initCrashReport(getApplicationContext(), "766c5bdb0f", false);
-    }
-
-    //初始化douYou Sdk
-    public void initDouYou(String adId) {
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "ReceiveMessage", "SDK 实例化开始");
-        DouYou.getInstance().reportActive(this, adId);
-        DouYou.getInstance().setActivesuccessCallBack(new ActiveGameInterface() {
-            @Override
-            public void Activesuccess() {
-                UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "InitSuccess", "SDK 实例化成功");
-            }
-        });
-
-        DouYou.getInstance().init(this, adId, true, new EnterGameInterface() {
-            @Override
-            public void enter(int resUid, String token) {
-                uid = resUid;
-                // 登录成功后的处理逻辑,可以将 uid 和 token 发送给Unity
-                DouYou.getInstance().showFloatBall(DouYouMainActivity.this);
-                UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "LoginSuccess", resUid + "|gfg|" + token);
-            }
-        }, new SwitchAccountInterface() {
-            @Override
-            public void home() {
-                // 切换账号或退出登录后的处理逻辑,可以通知Unity返回游戏登录界面
-                UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "OutLoginSuccess",  "退出登录成功!");
-            }
-        });
-
-        DouYou.getInstance().onCreate(this, _savedInstanceState);
-
-        //监听支付回调
-        DouYou.getInstance().setSDKListener(new DouYouSDKListenerAdapter(){
-            @Override
-            public void onPayResult(int code, OrderInfoBean params) {
-                // params.getOrderID() 研发ID
-                // params.getXxx() 是DouYou的订单ID
-                switch (code) {
-                    case DouYouSDKListener.CODE_PAY_FAIL: //支付失败
-                        LogUtil.debug("pay fail : " + params.toString());
-                        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "PayFail", code + "|gfg|" + params.toString());
-                        break;
-                    case DouYouSDKListener.CODE_PAY_SUCCESS:  //支付成功
-                        LogUtil.debug("pay success : " + params.toString());
-                        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "PaySuccess", code + "|gfg|" + params.toString());
-                        break;
-                }
-            }
-        });
-    }
-
-    //显示登录界面
-    public void extShowLogin(){
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "ReceiveMessage", "显示登录界面");
-        DouYou.getInstance().showLogin(DouYouMainActivity.this);
-    }
-
-    //角色登录数据上报
-    public void extReportRoleLogin(String id, String level, String nickname, String sid, String serverName){
-        RoleInfoBean roleInfo = new RoleInfoBean();
-        roleInfo.setType(RoleInfoBean.TYPE_ENTER_GAME);
-        roleInfo.setSid(sid);
-        roleInfo.setServerName(serverName);
-        roleInfo.setId(id);
-        roleInfo.setNickname(nickname);
-        roleInfo.setLevel(level);
-       
-        DouYou.getInstance().reportRoleLogin(DouYouMainActivity.this, roleInfo);
-    }
-
-    //角色数据上报
-    public void extReportRole(int logType, String id, String level, String nickname, String sid, String serverName){
-        RoleInfoBean roleInfo = new RoleInfoBean();
-        roleInfo.setType(logType);
-        roleInfo.setSid(sid);
-        roleInfo.setServerName(serverName);
-        roleInfo.setId(id);
-        roleInfo.setNickname(nickname);
-        roleInfo.setLevel(level);
-
-        // 获取当前时间的毫秒级时间戳
-        long currentTimeMillis = System.currentTimeMillis();
-        // 将毫秒级时间戳转换为秒级时间戳
-        long currentTimeSeconds = currentTimeMillis / 1000;
-        if(logType == RoleInfoBean.TYPE_CREATE_ROLE){
-            roleInfo.setRoleCreateTime(currentTimeSeconds + "");
-        }
-        else if(logType == RoleInfoBean.TYPE_LEVEL_UP){
-            roleInfo.setRoleLevelUpTime(currentTimeSeconds + "");
-        }
-
-        DouYou.getInstance().reportRole(DouYouMainActivity.this, roleInfo);
-    }
-
-    //退出登录
-    public void extShowLogout(){
-        DouYou.getInstance().showLogout(DouYouMainActivity.this);
-    }
-
-    //退出app
-    public void extExitApp(){
-        DouYou.getInstance().exit();
-    }
-
-    //cp激励广告订单id  登录后用户uid  角色id
-    public void extOpenGroMoreAD(String cpAdOrderId, String roleId){
-        DouYou.getInstance().openGroMoreAD(cpAdOrderId, Integer.toString(uid), roleId);
-    }
-
-    //调起支付
-    public void extShowSwitchPayment(String orderId, String orderMoney, String productId, String productName, String productDesc, String roleServiceId, String serviceName, String roleId, String roleName, String roleLevel, String other){
-        OrderInfoBean orderInfoBean = new OrderInfoBean();
-        orderInfoBean.setOrderID(orderId);
-        orderInfoBean.setCpOrderMoney(orderMoney);
-        orderInfoBean.setProductId(productId);
-        orderInfoBean.setProductName(productName);
-        orderInfoBean.setProductDesc(productDesc);
-        orderInfoBean.setRoleServiceId(roleServiceId);
-        orderInfoBean.setRoleServiceName(serviceName);
-        orderInfoBean.setRoleId(roleId);
-        orderInfoBean.setRoleName(roleName);
-        orderInfoBean.setRoleLevel(roleLevel);
-        orderInfoBean.setOther(other);
-        
-        DouYou.getInstance().showSwitchPayment(DouYouMainActivity.this, orderInfoBean);
-    }
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-        DouYou.getInstance().onStart(this);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnStart", "onStart finish");
-    }
-
-    @Override
-    protected void onPause() {
-        super.onPause();
-        DouYou.getInstance().onPause(this);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnPause", "onPause finish");
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        DouYou.getInstance().onResume(this);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnResume", "onResume finish");
-    }
-
-    @Override
-    protected void onStop() {
-        super.onStop();
-        DouYou.getInstance().onStop(this);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnStop", "onStop finish");
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        DouYou.getInstance().onDestroy(this);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnDestroy", "onDestroy finish");
-    }
-
-    @Override
-    protected void onRestart() {
-        super.onRestart();
-        DouYou.getInstance().onRestart(this);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnRestart", "onRestart finish");
-    }
-
-    @Override
-    public void onBackPressed() {
-        DouYou.getInstance().onBackPressed();
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnBackPressed", "onBackPressed finish");
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-        DouYou.getInstance().onNewIntent(intent);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnNewIntent", "onNewIntent finish");
-    }
-
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-        DouYou.getInstance().onConfigurationChanged(newConfig);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnConfigurationChanged", "onConfigurationChanged finish");
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        DouYou.getInstance().onSaveInstanceState(outState);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnSaveInstanceState", "onSaveInstanceState finish");
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        DouYou.getInstance().onActivityResult(requestCode, resultCode, data);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnActivityResult", "onActivityResult finish");
-    }
-
-    @Override
-    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
-        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-        DouYou.getInstance().onRequestPermissionResult(DouYouMainActivity.this,requestCode,permissions,grantResults);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnRequestPermissionResult", "onRequestPermissionsResult finish");
-    }
-
-    @Override
-    public void onWindowFocusChanged(boolean hasFocus) {
-        super.onWindowFocusChanged(hasFocus);
-        DouYou.getInstance().onWindowFocusChanged(hasFocus);
-        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnWindowFocusChanged", "onWindowFocusChanged finish");
-    }
-}

+ 8 - 0
GameClient/Assets/Plugins/com/easy/bugly.meta

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

+ 18 - 0
GameClient/Assets/Plugins/com/easy/bugly/GamePlayerActivity.java

@@ -0,0 +1,18 @@
+package com.easy.bugly;
+
+import android.os.Bundle;
+import android.view.Window;
+
+import com.tencent.bugly.crashreport.CrashReport;
+import com.unity3d.player.UnityPlayer;
+import com.unity3d.player.UnityPlayerActivity;
+
+public class GamePlayerActivity extends UnityPlayerActivity
+{
+    @Override protected void onCreate(Bundle savedInstanceState)
+    {
+        super.onCreate(savedInstanceState);
+
+        CrashReport.initCrashReport(getApplicationContext(),"766c5bdb0f", false);
+    }
+}

+ 1 - 1
GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java.meta → GameClient/Assets/Plugins/com/easy/bugly/GamePlayerActivity.java.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: d9bab6b10a929ac46bfc239972f59adc
+guid: 504e29108f13a9a4795c61901d4fffc8
 PluginImporter:
   externalObjects: {}
   serializedVersion: 2

+ 37 - 0
GameClient/Assets/ResIn/Material/EyeOpeningEffect.mat

@@ -0,0 +1,37 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: EyeOpeningEffect
+  m_Shader: {fileID: 4800000, guid: e5af28e603185bf4da6c89af113219cb, type: 3}
+  m_ShaderKeywords: UNITY_UI_ALPHACLIP
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 2334f4e20bc3d8743984f3658a485597, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _ColorMask: 15
+    - _Stencil: 0
+    - _StencilComp: 8
+    - _StencilOp: 0
+    - _StencilReadMask: 255
+    - _StencilWriteMask: 255
+    - _UseUIAlphaClip: 1
+    m_Colors:
+    - _Color: {r: 0, g: 0, b: 0, a: 1}
+    - _Param: {r: 0.8, g: 0, b: 1, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
GameClient/Assets/ResIn/Material/EyeOpeningEffect.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 15688f2d6c5fcb6438aa5b1841360133
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
GameClient/Assets/ResIn/Material/ImageGradient.mat.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 15688f2d6c5fcb6438aa5b1841360133
+guid: c82f80e0d03b1434b8fa7d4106b4ec39
 NativeFormatImporter:
   externalObjects: {}
   mainObjectFileID: 2100000

+ 125 - 0
GameClient/Assets/ResIn/Shader/EyeOpeningEffect.shader

@@ -0,0 +1,125 @@
+// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
+
+Shader "FairyGUI/EyeOpeningEffect"
+{
+	Properties
+	{
+		_MainTex("Base (RGB), Alpha (A)", 2D) = "black" {}
+
+		_StencilComp("Stencil Comparison", Float) = 8
+		_Stencil("Stencil ID", Float) = 0
+		_StencilOp("Stencil Operation", Float) = 0
+		_StencilWriteMask("Stencil Write Mask", Float) = 255
+		_StencilReadMask("Stencil Read Mask", Float) = 255
+
+		_ColorMask("Color Mask", Float) = 15
+
+		[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip("Use Alpha Clip", Float) = 0
+
+		[Space(100)]
+		_Param("Param", vector) = (0.6, 0.3, 1, 1)
+	}
+
+		SubShader
+		{
+			Tags
+		{
+			"Queue" = "Transparent"
+			"IgnoreProjector" = "True"
+			"RenderType" = "Transparent"
+			"PreviewType" = "Plane"
+			"CanUseSpriteAtlas" = "True"
+		}
+
+			Stencil
+		{
+			Ref[_Stencil]
+			Comp[_StencilComp]
+			Pass[_StencilOp]
+			ReadMask[_StencilReadMask]
+			WriteMask[_StencilWriteMask]
+		}
+
+			Cull Off
+			Lighting Off
+			ZWrite Off
+			ZTest[unity_GUIZTestMode]
+			Blend SrcAlpha OneMinusSrcAlpha
+			ColorMask[_ColorMask]
+
+			Pass
+		{
+			Name "Default"
+			CGPROGRAM
+	#pragma vertex vert
+	#pragma fragment frag
+	#pragma target 2.0
+
+	#include "UnityCG.cginc"
+	#include "UnityUI.cginc"
+
+	#pragma multi_compile __ UNITY_UI_CLIP_RECT
+	#pragma multi_compile __ UNITY_UI_ALPHACLIP
+
+
+			struct appdata_t
+		{
+			float4 vertex   : POSITION;
+			float4 color    : COLOR;
+			float2 texcoord : TEXCOORD0;
+			UNITY_VERTEX_INPUT_INSTANCE_ID
+		};
+
+		struct v2f
+		{
+			float4 vertex   : SV_POSITION;
+			fixed4 color : COLOR;
+			float2 texcoord  : TEXCOORD0;
+			float4 worldPosition : TEXCOORD1;
+			UNITY_VERTEX_OUTPUT_STEREO
+		};
+
+		sampler2D _MainTex;
+		fixed4 _Color;
+		fixed4 _TextureSampleAdd;
+		float4 _ClipRect;
+		float4 _MainTex_ST;
+		half3 _Param;
+
+		v2f vert(appdata_t v)
+		{
+			v2f OUT;
+			UNITY_SETUP_INSTANCE_ID(v);
+			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
+			OUT.worldPosition = v.vertex;
+			OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
+
+			OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
+
+			OUT.color = v.color * _Color;
+			return OUT;
+		}
+
+		fixed4 frag(v2f IN) : SV_Target
+		{
+			//half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
+			half4 color = IN.color;
+			half x = IN.texcoord.x - 0.5;
+			half y = IN.texcoord.y - 0.5;
+			half oval = x * x / (_Param.x * _Param.x) + y * y / (_Param.y * _Param.y);
+			color.a = oval;
+
+	#ifdef UNITY_UI_CLIP_RECT
+			color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
+	#endif
+
+	#ifdef UNITY_UI_ALPHACLIP
+			clip(color.a - 0.001);
+	#endif
+
+			return color;
+		}
+			ENDCG
+		}
+		}
+}

+ 10 - 0
GameClient/Assets/ResIn/Shader/EyeOpeningEffect.shader.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: e5af28e603185bf4da6c89af113219cb
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0.png


BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_1!a.png


BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_1.png


BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2!a.png


+ 1 - 1
GameClient/Assets/ResIn/UI/Main/Main_atlas0_12!a.png.meta → GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2!a.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: d06b8e9b9b1383649ba24125db5e5180
+guid: beffb798d25e5044fa3cecce83b411b7
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2.png


+ 1 - 1
GameClient/Assets/ResIn/UI/Main/Main_atlas0_12.png.meta → GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_2.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: ade88abf4648c9243884ab5e09bf2f2a
+guid: e356af68b295d2646b03a29c244a1bb6
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0_3!a.png


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно