Quellcode durchsuchen

增加收起侧边栏功能 增加新的小游戏

LiuQilin vor 7 Jahren
Ursprung
Commit
15fb8d416b

+ 0 - 25
Assets/Plugins/Alipay/IOS/AlipaySDK.framework.meta

@@ -1,25 +0,0 @@
-fileFormatVersion: 2
-guid: 786969225a8dc4e0eb4e00a91e7e1501
-folderAsset: yes
-timeCreated: 1502698138
-licenseType: Pro
-PluginImporter:
-  serializedVersion: 1
-  iconMap: {}
-  executionOrder: {}
-  isPreloaded: 0
-  isOverridable: 0
-  platformData:
-    Any:
-      enabled: 0
-      settings: {}
-    Editor:
-      enabled: 0
-      settings:
-        DefaultValueInitialized: true
-    iOS:
-      enabled: 1
-      settings: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 108 - 3
Assets/Resource/Logo.unity

@@ -409,6 +409,110 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1315531080
+Prefab:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_RootOrder
+      value: 4
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 224229560457679016, guid: 8647d80b558fa724a84d05f9e6aee9bc,
+        type: 2}
+      propertyPath: m_Pivot.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1948781497737682, guid: 8647d80b558fa724a84d05f9e6aee9bc, type: 2}
+      propertyPath: m_Name
+      value: Canvas (1)
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 100100000, guid: 8647d80b558fa724a84d05f9e6aee9bc, type: 2}
+  m_IsPrefabParent: 0
 --- !u!1 &1511433816
 GameObject:
   m_ObjectHideFlags: 0
@@ -612,10 +716,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: f1828554d8ffa12449b221fe29b2c32c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  AuditEdition: 1
-  DebugMode: 0
+  AuditEdition: 0
+  DebugMode: 1
   CatchException: 0
-  DebugModeGo: {fileID: 0}
+  DebugModeGo: {fileID: 1264531325540048, guid: b22fd2d9abc702d43ac62a412537d4e9,
+    type: 2}
 --- !u!4 &1833966245
 Transform:
   m_ObjectHideFlags: 0

+ 6 - 6
Assets/Resource/Prefab/Object/Garden.prefab

@@ -827,7 +827,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1407192791261292}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0.3, y: -1.8, z: 0}
+  m_LocalPosition: {x: 0.3, y: -1.8, z: -0.001}
   m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
   m_Children: []
   m_Father: {fileID: 4008559618325982}
@@ -840,7 +840,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1353785833647074}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -5.2, y: -4.2, z: 0}
+  m_LocalPosition: {x: -5.2, y: -4.2, z: -0.002}
   m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
   m_Children: []
   m_Father: {fileID: 4008559618325982}
@@ -908,7 +908,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1728925240400126}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -1.5, y: -4.2, z: 0}
+  m_LocalPosition: {x: -1.5, y: -4.2, z: -0.002}
   m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
   m_Children: []
   m_Father: {fileID: 4008559618325982}
@@ -934,7 +934,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1991737387278072}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 2.2, y: -4.2, z: 0}
+  m_LocalPosition: {x: 2.2, y: -4.2, z: -0.002}
   m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
   m_Children: []
   m_Father: {fileID: 4008559618325982}
@@ -983,7 +983,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1918730323919874}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -3.4, y: -1.8, z: 0}
+  m_LocalPosition: {x: -3.4, y: -1.8, z: -0.001}
   m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
   m_Children: []
   m_Father: {fileID: 4008559618325982}
@@ -1035,7 +1035,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1337198292386708}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 4, y: -1.8, z: 0}
+  m_LocalPosition: {x: 4, y: -1.8, z: -0.001}
   m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
   m_Children: []
   m_Father: {fileID: 4008559618325982}

Datei-Diff unterdrückt, da er zu groß ist
+ 704 - 13
Assets/Resource/Prefab/PrefabUI/Canvas.prefab


BIN
Assets/Resource/Sprite/Editor/SpriteUI/arrow-circle.png


+ 68 - 0
Assets/Resource/Sprite/Editor/SpriteUI/arrow-circle.png.meta

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: fde368eda9204cb4bbc355f7a07c9ece
+timeCreated: 1516152394
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 1
Assets/Resource/XML/PlayerConfig.xml

@@ -1,5 +1,5 @@
 <PlayerConfig>
-  <Version value="15" />
+  <Version value="16" />
   <ReplayVersion value="1" />
   
   <ID value="Default" />
@@ -11,12 +11,14 @@
   <TutorialD value="1" />
   <TutorialE value="1" />
   <TutorialPlazaRoom value="1" />
+  <FindMissingMinigameTutorial value="1" />
   <TutorialIndexA value="1" />
   <TutorialIndexB value="1" />
   <TutorialIndexC value="1" />
   <TutorialIndexD value="1" />
   <TutorialIndexE value="1" />
   <TutorialIndexPlazaRoom value="1" />
+  <FindMissingMinigameTutorialIndex value="1" />
 
   <QuitFlag value="0" />
   <QuitTime value="4/23/2017 09:30:00 AM" />

+ 3 - 1
Assets/Resource/XML/lan/ChineseSimplified.xml

@@ -36,6 +36,7 @@
     <D_DescA desc=""><![CDATA[观察左侧花朵亮起的紫色外框,记住框中的图案,并点击右侧相应的按钮]]></D_DescA>
     <D_DescB desc=""><![CDATA[记住左侧花朵消失的顺序,在右侧按顺序点击图标依次还原]]></D_DescB>
     <D_DescC desc=""><![CDATA[找出左侧每次出现的花朵中落单的那一个,并点击右侧相应的按钮]]></D_DescC>
+    <D_FindMissingGameDesc desc=""><![CDATA[记花朵游戏的说明]]></D_FindMissingGameDesc>
     <D_QuitLab desc=""><![CDATA[退出]]></D_QuitLab>
     <D_BeginLab0 desc=""><![CDATA[开始]]></D_BeginLab0>
     <D_BeginLab1 desc=""><![CDATA[准备]]></D_BeginLab1>
@@ -895,6 +896,7 @@
   <MinigameName>
     <Punch desc=""><![CDATA[打理花园]]></Punch>
     <Memory desc=""><![CDATA[记顺序]]></Memory>
-    <Find desc=""><![CDATA[找不同]]></Find>
+    <FindMissing desc=""><![CDATA[记花朵]]></FindMissing>
+    <FindSolo desc=""><![CDATA[找不同]]></FindSolo>
   </MinigameName>
 </lan>

+ 3 - 1
Assets/Resource/XML/lan/ChineseTraditional.xml

@@ -36,6 +36,7 @@
     <D_DescA desc=""><![CDATA[觀察左側花朵亮起的紫色外框,記住框中的圖案,並點擊右側相應的按鈕]]></D_DescA>
     <D_DescB desc=""><![CDATA[記住左側花朵消失的順序,在右側按順序點擊圖標依次還原]]></D_DescB>
     <D_DescC desc=""><![CDATA[找出左側每次出現的花朵中落單的那一個,並點擊右側相應的按鈕]]></D_DescC>
+    <D_FindMissingGameDesc desc=""><![CDATA[]]></D_FindMissingGameDesc>
     <D_QuitLab desc=""><![CDATA[退出]]></D_QuitLab>
     <D_BeginLab0 desc=""><![CDATA[開始]]></D_BeginLab0>
     <D_BeginLab1 desc=""><![CDATA[準備]]></D_BeginLab1>
@@ -895,6 +896,7 @@
   <MinigameName>
     <Punch desc=""><![CDATA[]]></Punch>
     <Memory desc=""><![CDATA[]]></Memory>
-    <Find desc=""><![CDATA[]]></Find>
+    <FindMissing desc=""><![CDATA[]]></FindMissing>
+    <FindSolo desc=""><![CDATA[]]></FindSolo>
   </MinigameName>
 </lan>

+ 3 - 1
Assets/Resource/XML/lan/English.xml

@@ -36,6 +36,7 @@
     <D_DescA desc=""><![CDATA[Take a look at the purple bordered shape on the flowers in the left view, remember it, and tap the same shape in the right view.]]></D_DescA>
     <D_DescB desc=""><![CDATA[Remember the order of the flower's disappearance, and reproduce it by the icons in the right view.]]></D_DescB>
     <D_DescC desc=""><![CDATA[Find the flower which has not the same ones in the left view, and tap the same flower in the right view]]></D_DescC>
+    <D_FindMissingGameDesc desc=""><![CDATA[]]></D_FindMissingGameDesc>
     <D_QuitLab desc=""><![CDATA[Quit]]></D_QuitLab>
     <D_BeginLab0 desc=""><![CDATA[Start]]></D_BeginLab0>
     <D_BeginLab1 desc=""><![CDATA[Ready]]></D_BeginLab1>
@@ -896,6 +897,7 @@ Increase all Coin prudoction by [&coin_person&](permanently)]]></Pack12>
   <MinigameName>
     <Punch desc=""><![CDATA[]]></Punch>
     <Memory desc=""><![CDATA[]]></Memory>
-    <Find desc=""><![CDATA[]]></Find>
+    <FindMissing desc=""><![CDATA[]]></FindMissing>
+    <FindSolo desc=""><![CDATA[]]></FindSolo>
   </MinigameName>
 </lan>

BIN
Assets/Resource/Xlsx/language_config.xlsx


+ 40 - 21
Assets/Script/Label/CanvasLabel.cs

@@ -41,8 +41,18 @@ public class CanvasLabel
     public static string Ea_DecreaseLab = "Ea_DecreaseLab";
     public static string C_Main = "C_Main";
     public static string C_Main2 = "C_Main2";
+    public static string C_Group2 = "C_Group2";
+    public static string C_MiniGame = "C_MiniGame";
+    public static string C_MiniArrow0 = "C_MiniArrow0";
+    public static string C_MiniArrow1 = "C_MiniArrow1";
+    public static string C_MiniGameLab = "C_MiniGameLab";
     public static string C_Group0 = "C_Group0";
     public static string C_Group = "C_Group";
+    public static string C_RightSidePanelPosition = "C_RightSidePanelPosition";
+    public static string C_RightSidePanel = "C_RightSidePanel";
+    public static string C_CloseSidePanelButton = "C_CloseSidePanelButton";
+    public static string C_OpenSidePanelButton = "C_OpenSidePanelButton";
+    public static string C_RightSidePanelGroup = "C_RightSidePanelGroup";
     public static string C_Group1 = "C_Group1";
     public static string C_Manage = "C_Manage";
     public static string C_LevelBK = "C_LevelBK";
@@ -53,22 +63,6 @@ public class CanvasLabel
     public static string C_DressRoom = "C_DressRoom";
     public static string C_DressRoomArrow = "C_DressRoomArrow";
     public static string C_DressRoomLabPos = "C_DressRoomLabPos";
-    public static string C_Group3 = "C_Group3";
-    public static string C_NicknameParent = "C_NicknameParent";
-    public static string C_NickNameBK = "C_NickNameBK";
-    public static string C_NickNameLab = "C_NickNameLab";
-    public static string C_SocialGroup = "C_SocialGroup";
-    public static string C_CommentParent = "C_CommentParent";
-    public static string C_Comment = "C_Comment";
-    public static string C_Praise = "C_Praise";
-    public static string C_PraiseText = "C_PraiseText";
-    public static string C_NotifyParent = "C_NotifyParent";
-    public static string C_Notify = "C_Notify";
-    public static string C_FriendButtonParent = "C_FriendButtonParent";
-    public static string C_FriendButton = "C_FriendButton";
-    public static string C_RankRarent = "C_RankRarent";
-    public static string C_Rank = "C_Rank";
-    public static string C_Info = "C_Info";
     public static string C_Group4 = "C_Group4";
     public static string C_FashionShowButtonParent = "C_FashionShowButtonParent";
     public static string C_FashionShowButton = "C_FashionShowButton";
@@ -92,14 +86,25 @@ public class CanvasLabel
     public static string C_IncomeLab = "C_IncomeLab";
     public static string C_Garden = "C_Garden";
     public static string C_GardenLab = "C_GardenLab";
+    public static string C_Group3 = "C_Group3";
+    public static string C_NicknameParent = "C_NicknameParent";
+    public static string C_NickNameBK = "C_NickNameBK";
+    public static string C_NickNameLab = "C_NickNameLab";
+    public static string C_SocialGroup = "C_SocialGroup";
+    public static string C_CommentParent = "C_CommentParent";
+    public static string C_Comment = "C_Comment";
+    public static string C_Praise = "C_Praise";
+    public static string C_PraiseText = "C_PraiseText";
+    public static string C_NotifyParent = "C_NotifyParent";
+    public static string C_Notify = "C_Notify";
+    public static string C_FriendButtonParent = "C_FriendButtonParent";
+    public static string C_FriendButton = "C_FriendButton";
+    public static string C_RankRarent = "C_RankRarent";
+    public static string C_Rank = "C_Rank";
+    public static string C_Info = "C_Info";
     public static string C_WifiButton = "C_WifiButton";
     public static string C_Tip = "C_Tip";
     public static string C_TipLab = "C_TipLab";
-    public static string C_Group2 = "C_Group2";
-    public static string C_MiniGame = "C_MiniGame";
-    public static string C_MiniArrow0 = "C_MiniArrow0";
-    public static string C_MiniArrow1 = "C_MiniArrow1";
-    public static string C_MiniGameLab = "C_MiniGameLab";
     public static string La_Info = "La_Info";
     public static string La_Info0 = "La_Info0";
     public static string La_Tit = "La_Tit";
@@ -327,6 +332,20 @@ public class CanvasLabel
     public static string D_FlowerIcon9 = "D_FlowerIcon9";
     public static string D_FlowerArrow9 = "D_FlowerArrow9";
     public static string D_DescC = "D_DescC";
+    public static string D_FindMissingGamePanel = "D_FindMissingGamePanel";
+    public static string D_FindMissingGamePrepareLayout = "D_FindMissingGamePrepareLayout";
+    public static string D_FindMissingGameStatus = "D_FindMissingGameStatus";
+    public static string D_FindMissingGameButton0 = "D_FindMissingGameButton0";
+    public static string D_FindMissingGameIcon0 = "D_FindMissingGameIcon0";
+    public static string D_FindMissingGameArrow0 = "D_FindMissingGameArrow0";
+    public static string D_FindMissingGameButton2 = "D_FindMissingGameButton2";
+    public static string D_FindMissingGameIcon2 = "D_FindMissingGameIcon2";
+    public static string D_FindMissingGameArrow2 = "D_FindMissingGameArrow2";
+    public static string D_FindMissingGameButton1 = "D_FindMissingGameButton1";
+    public static string D_FindMissingGameIcon1 = "D_FindMissingGameIcon1";
+    public static string D_FindMissingGameArrow1 = "D_FindMissingGameArrow1";
+    public static string D_FindMissingGameDesc = "D_FindMissingGameDesc";
+    public static string D_FindMissingGameMask = "D_FindMissingGameMask";
     public static string Da_Info = "Da_Info";
     public static string Da_Info0 = "Da_Info0";
     public static string Da_Tit = "Da_Tit";

+ 3 - 1
Assets/Script/Label/LanguageLabel.cs

@@ -54,6 +54,7 @@ public class LanguageLabel
     	public static string UI__D_DescA = "UI__D_DescA";
     	public static string UI__D_DescB = "UI__D_DescB";
     	public static string UI__D_DescC = "UI__D_DescC";
+    	public static string UI__D_FindMissingGameDesc = "UI__D_FindMissingGameDesc";
     	public static string UI__D_QuitLab = "UI__D_QuitLab";
     	public static string UI__D_BeginLab0 = "UI__D_BeginLab0";
     	public static string UI__D_BeginLab1 = "UI__D_BeginLab1";
@@ -883,6 +884,7 @@ public class LanguageLabel
     	public static string MinigameName = "MinigameName";
     	public static string MinigameName__Punch = "MinigameName__Punch";
     	public static string MinigameName__Memory = "MinigameName__Memory";
-    	public static string MinigameName__Find = "MinigameName__Find";
+    	public static string MinigameName__FindMissing = "MinigameName__FindMissing";
+    	public static string MinigameName__FindSolo = "MinigameName__FindSolo";
     //EndMark-Used by LabelUtility-Do not remove
 }

+ 4 - 2
Assets/Script/Label/PlayerConfigLabel.cs

@@ -8,6 +8,8 @@ public class PlayerConfigLabel
     public static string DefaultID = "Default";
     public static string DefaultSerialNumber = "Default";
 
+    public static string FindMissingMinigameTutorial = "FindMissingMinigameTutorial";
+    public static string FindMissingMinigameTutorialIndex = "FindMissingMinigameTutorialIndex";
     public static string AttributeName = "value";
     public static string LastApplicantSerialNumber = "LastApplicantSerialNumber";
     public static string LastPrivateMessageDate = "LastPrivateMessageDate";
@@ -50,13 +52,13 @@ public class PlayerConfigLabel
     public static string MemoryMinigameTutorial = "TutorialB";
     public static string VisitTutorial = "TutorialC";
     public static string DressroomTutorial = "TutorialD";
-    public static string FindMinigameTutorial = "TutorialE";
+    public static string FindSoloMinigameTutorial = "TutorialE";
     public static string TutorialPlazaRoom = "TutorialPlazaRoom";
     public static string NewplayerTutorialIndex = "TutorialIndexA";
     public static string MemoryMinigameTutorialIndex = "TutorialIndexB";
     public static string VisitTutorialIndex = "TutorialIndexC";
     public static string DressroomIndex = "TutorialIndexD";
-    public static string FindMinigameTutorialIndex = "TutorialIndexE";
+    public static string FindSoloMinigameTutorialIndex = "TutorialIndexE";
     public static string TutorialIndexPlazaRoom = "TutorialIndexPlazaRoom";
     public static string FlowerList = "FlowerList";
     public static string FlowerAmtList = "FlowerAmtList";

+ 38 - 2
Assets/Script/Manage/ConfigManager.cs

@@ -551,14 +551,31 @@ public class ConfigManager : Regist
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorial).Attributes[0].Value = TutorialManager.memoryMinigameTutorial.ToInt().ToString();
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorial).Attributes[0].Value = TutorialManager.visitTutorial.ToInt().ToString();
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomTutorial).Attributes[0].Value = TutorialManager.dressroomTutorial.ToInt().ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMinigameTutorial).Attributes[0].Value = TutorialManager.findMinigameTutorial.ToInt().ToString();
+
+        if (TutorialManager.findSoloMinigameTutorial || TutorialManager.FindSoloMinigameTutorial)
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorial).Attributes[0].Value = "1";
+        }
+        else
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorial).Attributes[0].Value = "0";
+        }
+        if (TutorialManager.findMissingMinigameTutorial || TutorialManager.FindMissingMinigameTutorial)
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial).Attributes[0].Value = "1";
+        }
+        else
+        {
+            ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial).Attributes[0].Value = "0";
+        }
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom).Attributes[0].Value = TutorialManager.plazaRoomTutorial.ToInt().ToString();
 
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorialIndex).Attributes[0].Value = TutorialManager.NewplayerTutorialIndex.ToString();
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorialIndex).Attributes[0].Value = TutorialManager.MemoryMinigameTutorialIndex.ToString();
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorialIndex).Attributes[0].Value = TutorialManager.VisitTutorialIndex.ToString();
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomIndex).Attributes[0].Value = TutorialManager.DressroomTutorialIndex.ToString();
-        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindMinigameTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindSoloMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindSoloMinigameTutorialIndex.ToString();
+        ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindMissingMinigameTutorialIndex.ToString();
         ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom).Attributes[0].Value = TutorialManager.PlazaRoomTutorialIndex.ToString();
     }
 
@@ -1332,6 +1349,13 @@ public class ConfigManager : Regist
             ToVersion15(nativeDoc, defaultDoc);
         }
 
+        if (nativeVersion < 16)
+        {
+            Debug.LogWarning("UpdateArchive to 16");
+
+            ToVersion16(nativeDoc, defaultDoc);
+        }
+
         return nativeDoc;
     }
 
@@ -1598,4 +1622,16 @@ public class ConfigManager : Regist
 
         return nativeDoc;
     }
+
+    public static XmlDocument ToVersion16(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 16.ToString();
+
+        XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorial);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+        xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
+        nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
+
+        return nativeDoc;
+    }
 }

+ 8 - 4
Assets/Script/Manage/EnterMinigamePanelManager.cs

@@ -104,15 +104,20 @@ public class EnterMinigamePanelManager : Regist
             CurrentMiniGameType = MiniGameType.Memory;
             MiniGameManager.GameEnter(CurrentMiniGameType);
         }
-        else if (TutorialManager.FindMinigameTutorial)
+        else if (TutorialManager.FindSoloMinigameTutorial)
         {
-            CurrentMiniGameType = MiniGameType.Find;
+            CurrentMiniGameType = MiniGameType.FindSolo;
+            MiniGameManager.GameEnter(CurrentMiniGameType);
+        }
+        else if (TutorialManager.FindMissingMinigameTutorial)
+        {
+            CurrentMiniGameType = MiniGameType.FindMissing;
             MiniGameManager.GameEnter(CurrentMiniGameType);
         }
         else
         {
             AvailableGameTypes = new List<MiniGameType>();
-            CurrentMiniGameType = (MiniGameType) ConfigManager.GetIntFormConfig(PlayerConfigLabel.CurrentMinigameType);
+            CurrentMiniGameType = (MiniGameType)ConfigManager.GetIntFormConfig(PlayerConfigLabel.CurrentMinigameType);
             if (CurrentMiniGameType == MiniGameType.None)
             {
                 CurrentMiniGameType = MiniGameManager.SelectMinigameType(AvailableGameTypes);
@@ -226,7 +231,6 @@ public class EnterMinigamePanelManager : Regist
         ChangeButton.interactable = true;
         ConfirmButton.interactable = true;
         IsChangingGameType = false;
-        Debug.Log(ScrollMiniGameType);
         CurrentMiniGameType = ScrollMiniGameType;
         ConfigManager.SaveIntToConfig(PlayerConfigLabel.CurrentMinigameType, ScrollMiniGameType.GetHashCode());
     }

+ 11 - 3
Assets/Script/Manage/GardenManager.cs

@@ -108,11 +108,19 @@ public class GardenManager : Regist
             ResourceManager.SetText(CanvasLabel.F_FlowerLab, string.Format("{0}", TotalUnlockFlower));
             ResourceManager.SetText(CanvasLabel.G_CollectLab1, string.Format("{0}/{1}", TotalUnlockFlower, TotalFlower));
 
-            if (totalUnlockFlower >= TutorialManager.MinFlowerForFindGame && Manager.GardenLevel >= TutorialManager.FindMinigameTutorialLevel)
+            if (totalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && Manager.GardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel)
             {
-                if (TutorialManager.findMinigameTutorial)
+                if (TutorialManager.findSoloMinigameTutorial)
                 {
-                    TutorialManager.PlayFindGame();
+                    TutorialManager.PlayFindSoloGame();
+                }
+            }
+
+            if (totalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && Manager.GardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel)
+            {
+                if (TutorialManager.findMissingMinigameTutorial)
+                {
+                    TutorialManager.PlayFindMissingGame();
                 }
             }
         }

+ 9 - 3
Assets/Script/Manage/Initializer.cs

@@ -262,9 +262,12 @@ public class Initializer : MonoBehaviour
         TutorialManager.dressroomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.DressroomTutorial);
         DebugText.text = "Error code : 1-4";
 
-        TutorialManager.findMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindMinigameTutorial);
+        TutorialManager.findSoloMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindSoloMinigameTutorial);
         DebugText.text = "Error code : 1-5";
 
+        TutorialManager.findMissingMinigameTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.FindMissingMinigameTutorial);
+        DebugText.text = "Error code : 1-5-0";
+
         TutorialManager.plazaRoomTutorial = ConfigManager.GetBoolFormConfig(PlayerConfigLabel.TutorialPlazaRoom);
         DebugText.text = "Error code : 1-5-1";
 
@@ -280,9 +283,12 @@ public class Initializer : MonoBehaviour
         TutorialManager.DressroomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.DressroomIndex);
         DebugText.text = "Error code : 1-9";
 
-        TutorialManager.FindMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindMinigameTutorialIndex);
+        TutorialManager.FindSoloMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindSoloMinigameTutorialIndex);
         DebugText.text = "Error code : 1-10";
-
+        
+        TutorialManager.FindMissingMinigameTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.FindMissingMinigameTutorialIndex);
+        DebugText.text = "Error code : 1-10-0";
+        
         TutorialManager.PlazaRoomTutorialIndex = ConfigManager.GetIntFormConfig(PlayerConfigLabel.TutorialIndexPlazaRoom);
         DebugText.text = "Error code : 1-10-1";
 

+ 11 - 3
Assets/Script/Manage/Manager.cs

@@ -277,11 +277,19 @@ public class Manager : Regist
                 ResourceManager.Get<Image>(CanvasLabel.C_DressRoom).material = null;
             }
 
-            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindGame && gardenLevel >= TutorialManager.FindMinigameTutorialLevel)
+            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && gardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel)
             {
-                if (TutorialManager.findMinigameTutorial)
+                if (TutorialManager.findSoloMinigameTutorial)
                 {
-                    TutorialManager.PlayFindGame();
+                    TutorialManager.PlayFindSoloGame();
+                }
+            }
+
+            if (GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && gardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel)
+            {
+                if (TutorialManager.findMissingMinigameTutorial)
+                {
+                    TutorialManager.PlayFindMissingGame();
                 }
             }
 

+ 442 - 141
Assets/Script/Manage/MiniGameManager.cs

@@ -615,7 +615,8 @@ public enum MiniGameType
     None, //需要重置
     Punch, //打地鼠
     Memory, //记住花的消失顺序
-    Find, //找落单的花
+    FindSolo, //找落单的花
+    FindMissing, //找不见了的花
 }
 
 public class MiniGameManager : Regist 
@@ -734,11 +735,13 @@ public class MiniGameManager : Regist
     public static Transform MinigameBeginButtonParent;
     public static Transform PunchGameStatusParent;
     public static Transform MemoryGameStatusParent;
-    public static Transform FindGameStatusParent;
+    public static Transform FindSoloGameStatusParent;
+    public static Transform FindMissingGameStatusParent;
     public static Transform PunchGameOperateParent;
     public static Transform MemoryGameOperateParent;
-    public static Transform FindGameOperateParent;
-    public static Transform FindGameCorrectButtonParent;
+    public static Transform FindSoloGameOperateParent;
+    public static Transform FindSoloGameCorrectButtonParent;
+    public static Transform FindMissingGameOperateParent;
 
     public static List<Drop> DropAwardList = new List<Drop>();
     public static List<Flower> MinigameIdleFlowerList = new List<Flower>();
@@ -750,12 +753,29 @@ public class MiniGameManager : Regist
     public static List<int> PunchGameSlotIDs = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
     public static List<Flower> PunchGameOperateList = new List<Flower>();
 
-    public static int MaxFadeAmt = 6;
-    public static int FindCorrectScore = 40;
-    public static List<int> FindGameSlotIDs = new List<int> {0, 1, 2, 3, 4, 5, 6, 7, 8};
-    public static List<int> FindGameIndexList = new List<int>();
-    public static List<int> FindGameFlowerIDs = new List<int>();
-
+    public static int FindSoloCorrectScore = 40;
+    public static List<int> FindSoloGameSlotIDs = new List<int> {0, 1, 2, 3, 4, 5, 6, 7, 8};
+    public static List<int> FindSoloGameIndexList = new List<int>();
+    public static List<int> FindSoloGameFlowerIDs = new List<int>();
+
+
+    public static Flower FindMissingNewFlower;
+    public static Flower FindMissingCorrectFlower;
+    public static int FindMissingCorrectScore = 40;
+    public static float FindMissingGameFadeTimer;
+    public static float FindMissingGameCurrentFadeTime;
+    public static float FindMissingGameDecreaseTime = 0.5f;
+    public static float FindMissingGameFlowerDisappearTime = 0.5f;
+    public static float FindMissingGameFlowerMinDisplayTime = 1f;
+    public static float FindMissingGameFlowerMaxDisplayTime = 3f;
+    public static List<int> FindMissingGameSlotIDs = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+    public static List<int> FindMissingGameFlowerIDs = new List<int>();
+    public static Transform FindMissingGameMask;
+
+    public static float MemoryGameFlowerFadeTime = 2f;
+    public static float MemoryGameFlowerFadeTimer;
+    public static float MemoryGameCurrentFlowerFadeTime;
+    public static int MemoryGameMaxFadeAmt = 6;
     public static int MemoryCorrectScore = 20;
     public static float MemoryGameDecreaseRate = 0.3f;
     public static List<int> MemoryGameSlotIDs = new List<int> { 0, 1, 3, 4, 6, 7 };
@@ -782,10 +802,6 @@ public class MiniGameManager : Regist
     public static float DropDiamondTimer;
     public static bool CreateDropDiamondFlag;
 
-    public static float FlowerFadeTime = 2f;
-    public static float FlowerFadeTimer;
-    public static float CurrentFlowerFadeTime;
-
     public static float PanaltyTime = 1f;
     public static float PanaltyTimer;
 
@@ -803,9 +819,12 @@ public class MiniGameManager : Regist
     public static List<Transform> D_MemoryGameIcons = new List<Transform>();
     public static List<Transform> D_MemoryGameTicks = new List<Transform>();
     public static List<Transform> D_MemoryGameArrows = new List<Transform>();
-    public static List<Transform> D_FindGameBtns = new List<Transform>();
-    public static List<Transform> D_FindGameIcons = new List<Transform>();
-    public static List<Transform> D_FindGameArrows = new List<Transform>();
+    public static List<Transform> D_FindSoloGameBtns = new List<Transform>();
+    public static List<Transform> D_FindSoloGameIcons = new List<Transform>();
+    public static List<Transform> D_FindSoloGameArrows = new List<Transform>();
+    public static List<Transform> D_FindMissingGameBtns = new List<Transform>();
+    public static List<Transform> D_FindMissingGameIcons = new List<Transform>();
+    public static List<Transform> D_FindMissingGameArrows = new List<Transform>();
     public static List<Transform> MinigameSlots = new List<Transform>();
 
     public static MinigameAward MinigameAward;
@@ -825,7 +844,9 @@ public class MiniGameManager : Regist
 
             MemoryGameThread();
 
-            FindGameThread();
+            FindSoloGameThread();
+
+            FindMissingGameThread();
         }
 
         if (IsPrepare)
@@ -903,13 +924,13 @@ public class MiniGameManager : Regist
             }
         }
         
-        if (MemoryGameFadeList.Count < MaxFadeAmt)
+        if (MemoryGameFadeList.Count < MemoryGameMaxFadeAmt)
         {
-            FlowerFadeTimer -= Time.deltaTime;
+            MemoryGameFlowerFadeTimer -= Time.deltaTime;
             
-            if (FlowerFadeTimer <= 0)
+            if (MemoryGameFlowerFadeTimer <= 0)
             {
-                FlowerFadeTimer = CurrentFlowerFadeTime;
+                MemoryGameFlowerFadeTimer = MemoryGameCurrentFlowerFadeTime;
 
                 MemoryGameFadeNext();
             }
@@ -918,9 +939,38 @@ public class MiniGameManager : Regist
         DropAwardThread();
     }
 
-    private void FindGameThread()
+    private void FindSoloGameThread()
+    {
+        if (miniGameType != MiniGameType.FindSolo)
+        {
+            return;
+        }
+
+        GameTimer += Time.deltaTime;
+
+        if (GameTimer >= GameTime)
+        {
+            GameOver();
+
+            return;
+        }
+
+        if (Panalty)
+        {
+            PanaltyTimer -= Time.deltaTime;
+
+            if (PanaltyTimer <= 0)
+            {
+                Panalty = false;
+            }
+        }
+
+        DropAwardThread();
+    }
+
+    private void FindMissingGameThread()
     {
-        if (miniGameType != MiniGameType.Find)
+        if (miniGameType != MiniGameType.FindMissing)
         {
             return;
         }
@@ -944,9 +994,20 @@ public class MiniGameManager : Regist
             }
         }
 
+        if (FindMissingGameFadeTimer >= 0)
+        {
+            FindMissingGameFadeTimer -= Time.deltaTime;
+
+            if (FindMissingGameFadeTimer <= 0)
+            {
+                FindMissingFadeFlowers();
+            }
+        }
+
         DropAwardThread();
     }
 
+
     private void DropAwardThread()
     {
         DropGoldTimer -= Time.deltaTime;
@@ -999,10 +1060,15 @@ public class MiniGameManager : Regist
 
         PunchGameStatusParent = ResourceManager.Get(CanvasLabel.D_Status1);
         MemoryGameStatusParent = ResourceManager.Get(CanvasLabel.D_Status2);
-        FindGameStatusParent = ResourceManager.Get(CanvasLabel.D_Status3);
+        FindSoloGameStatusParent = ResourceManager.Get(CanvasLabel.D_Status3);
+        FindMissingGameStatusParent = ResourceManager.Get(CanvasLabel.D_FindMissingGameStatus);
         PunchGameOperateParent = ResourceManager.Get(CanvasLabel.D_Operate1);
         MemoryGameOperateParent = ResourceManager.Get(CanvasLabel.D_Operate2);
-        FindGameOperateParent = ResourceManager.Get(CanvasLabel.D_Operate3);
+        FindSoloGameOperateParent = ResourceManager.Get(CanvasLabel.D_Operate3);
+        FindMissingGameOperateParent = ResourceManager.Get(CanvasLabel.D_FindMissingGamePanel);
+
+        FindMissingGameMask = ResourceManager.Get(CanvasLabel.D_FindMissingGameMask);
+        FindMissingGameMask.CreateTweenGra(0, 0.25f, true, false, Curve.EaseOutQuad);
 
         MinigameTimerText = ResourceManager.Get<Text>(CanvasLabel.D_TimerLab);
         PrepareText = ResourceManager.Get<Text>(CanvasLabel.D_PrepareLab);
@@ -1047,17 +1113,29 @@ public class MiniGameManager : Regist
         D_MemoryGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow5));
         D_MemoryGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow6));
 
-        D_FindGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FlowerBtn7));
-        D_FindGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FlowerBtn8));
-        D_FindGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FlowerBtn9));
+        D_FindSoloGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FlowerBtn7));
+        D_FindSoloGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FlowerBtn8));
+        D_FindSoloGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FlowerBtn9));
 
-        D_FindGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FlowerIcon7));
-        D_FindGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FlowerIcon8));
-        D_FindGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FlowerIcon9));
+        D_FindSoloGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FlowerIcon7));
+        D_FindSoloGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FlowerIcon8));
+        D_FindSoloGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FlowerIcon9));
 
-        D_FindGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow7));
-        D_FindGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow8));
-        D_FindGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow9));
+        D_FindSoloGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow7));
+        D_FindSoloGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow8));
+        D_FindSoloGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FlowerArrow9));
+
+        D_FindMissingGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameButton0));
+        D_FindMissingGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameButton1));
+        D_FindMissingGameBtns.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameButton2));
+
+        D_FindMissingGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon0));
+        D_FindMissingGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon1));
+        D_FindMissingGameIcons.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon2));
+
+        D_FindMissingGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameArrow0));
+        D_FindMissingGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameArrow1));
+        D_FindMissingGameArrows.Add(ResourceManager.Get(CanvasLabel.D_FindMissingGameArrow2));
     }
 
 
@@ -1096,70 +1174,39 @@ public class MiniGameManager : Regist
     {
         PunchGameOperateParent.SetActive(false);
         MemoryGameOperateParent.SetActive(false);
-        FindGameOperateParent.SetActive(false);
+        FindSoloGameOperateParent.SetActive(false);
+        FindMissingGameOperateParent.SetActive(false);
 
         bool memoryGameAvailable = Manager.GardenLevel >= TutorialManager.MemoryMinigameTutorialLevel;
-        bool findGameAvailable = GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindGame && Manager.GardenLevel >= TutorialManager.FindMinigameTutorialLevel;
+        bool findSoloGameAvailable = GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindSoloGame && Manager.GardenLevel >= TutorialManager.FindSoloMinigameTutorialLevel;
+        bool findMissingGameAvailable = GardenManager.TotalUnlockFlower >= TutorialManager.MinFlowerForFindMissingGame && Manager.GardenLevel >= TutorialManager.FindMissingMinigameTutorialLevel;
+
         availableGameTypes.Add(MiniGameType.Punch);
         if (memoryGameAvailable)
         {
             availableGameTypes.Add(MiniGameType.Memory);
         }
-        if (findGameAvailable)
-        {
-            availableGameTypes.Add(MiniGameType.Find);
-        }
-
-
-        float punchGameThreshold;
-        float memoryGameThreshold;
-        float findGameThreshold;
-
-        if (memoryGameAvailable && findGameAvailable)
-        {
-            punchGameThreshold = 0.33f;
-            memoryGameThreshold = 0.66f;
-            findGameThreshold = 1f;
-        }
-        else if (memoryGameAvailable)
-        {
-            punchGameThreshold = 0.5f;
-            memoryGameThreshold = 1;
-            findGameThreshold = 0;
-        }
-        else if (findGameAvailable)
+        if (findSoloGameAvailable)
         {
-            punchGameThreshold = 0.5f;
-            memoryGameThreshold = 0;
-            findGameThreshold = 1;
+            availableGameTypes.Add(MiniGameType.FindSolo);
         }
-        else
+        if (findMissingGameAvailable)
         {
-            punchGameThreshold = 1;
-            memoryGameThreshold = 0;
-            findGameThreshold = 0;
+            availableGameTypes.Add(MiniGameType.FindMissing);
         }
-
+        
         float posibility = Random.Range(0f, 1f);
-
-        if (posibility <= punchGameThreshold)
-        {
-            miniGameType = MiniGameType.Punch;
-        }
-        else if (posibility <= memoryGameThreshold)
+        for (int i = 0; i < availableGameTypes.Count; i++)
         {
-            miniGameType = MiniGameType.Memory;
-        }
-        else if (posibility <= findGameThreshold)
-        {
-            miniGameType = MiniGameType.Find;
-        }
-        else
-        {
-            throw new Exception();
+            float average = 1f/availableGameTypes.Count;
+            float leftBorder = average*i;
+            float rightBorder = average*(i+1);
+            if (posibility >= leftBorder && posibility <= rightBorder)
+            {
+                return availableGameTypes[i];
+            }
         }
-
-        return miniGameType;
+        return MiniGameType.Punch;
     }
 
 
@@ -1179,9 +1226,14 @@ public class MiniGameManager : Regist
             EnterMemoryGame();
         }
 
-        if (miniGameType == MiniGameType.Find)
+        if (miniGameType == MiniGameType.FindSolo)
+        {
+            EnterFindSoloGame();
+        }
+
+        if (miniGameType == MiniGameType.FindMissing)
         {
-            EnterFindGame();
+            EnterFindMissingGame();
         }
 
         ScoreTextPrefix = Language.GetStr(LanguageLabel.UI__D_ScoreLab);
@@ -1205,11 +1257,12 @@ public class MiniGameManager : Regist
         Score = 0;
 
         CreateOperateTimer = CreateOperateTime;
-        FlowerFadeTimer = FlowerFadeTime;
+        MemoryGameFlowerFadeTimer = MemoryGameFlowerFadeTime;
+        FindMissingGameCurrentFadeTime = FindMissingGameFlowerMaxDisplayTime;
         DropGoldTimer = Random.Range(DropGoldMinIndex, DropGoldMaxIndex);
         GameTimer = 0;
         CurrentCreateOperateTime = CreateOperateTime;
-        CurrentFlowerFadeTime = FlowerFadeTime;
+        MemoryGameCurrentFlowerFadeTime = MemoryGameFlowerFadeTime;
         DropDiamondTimer = Random.Range(0f, GameTime - DropDiamondOffsetTime);
 
         StaticsManager.GetInstance().UseItem(StaticsManager.ItemID.开始小游戏, StaticsManager.ItemType.小游戏, "1", StaticsManager.ConsumeModule.None);
@@ -1227,9 +1280,14 @@ public class MiniGameManager : Regist
             MemoryGameRoundReset();
         }
 
-        if (miniGameType == MiniGameType.Find)
+        if (miniGameType == MiniGameType.FindSolo)
         {
-            FindGameRoundBegin(true);
+            FindSoloGameRoundBegin(true);
+        }
+
+        if (miniGameType == MiniGameType.FindMissing)
+        {
+            FindMissingGameRoundBegin();
         }
 
         if (Random.Range(DropDiamondMinIndex, DropDiamondMaxIndex) <= MiniGameIndex)
@@ -1260,6 +1318,7 @@ public class MiniGameManager : Regist
         ResourceManager.Get(CanvasLabel.D_DescA).SetActive(false);
         ResourceManager.Get(CanvasLabel.D_DescB).SetActive(false);
         ResourceManager.Get(CanvasLabel.D_DescC).SetActive(false);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameDesc).SetActive(false);
 
         if (miniGameType == MiniGameType.Punch)
         {
@@ -1352,7 +1411,7 @@ public class MiniGameManager : Regist
     }
 
 
-    public static void OnFindGameButtonClick(int id, int btnIndex)
+    public static void OnFindSoloGameButtonClick(int id, int btnIndex)
     {
         if (!Game)
         {
@@ -1364,27 +1423,27 @@ public class MiniGameManager : Regist
             return;
         }
 
-        if (FindGameFlowerIDs[0] == id)
+        if (FindSoloGameFlowerIDs[0] == id)
         {
             Flower flower = MinigameIdleFlowerList.Find(tempFlower => { return tempFlower.ID == id; });
 
-            ResourceManager.GetHudText($"+{FindCorrectScore}", Color.white, 90, flower.ChildDic[FlowerLabel.ScorePos], ResourceManager.Get(CanvasLabel.D_HudParent), true);
+            ResourceManager.GetHudText($"+{FindSoloCorrectScore}", Color.white, 90, flower.ChildDic[FlowerLabel.ScorePos], ResourceManager.Get(CanvasLabel.D_HudParent), true);
 
-            Score += FindCorrectScore;
+            Score += FindSoloCorrectScore;
 
             flower.PlayFlashLight();
 
             AudioManager.PlayClip(AudioLabel.ClickButton);
 
-            FindGameRoundEnd();
+            FindSoloGameRoundEnd();
         }
         else
         {
             Panalty = true;
             PanaltyTimer = PanaltyTime;
 
-            D_FindGameIcons[btnIndex].TweenForGra();
-            D_FindGameBtns[btnIndex].Shake(0.5f, 3, new Vector3(20f, 0, 0), Curve.EaseOutQuad);
+            D_FindSoloGameIcons[btnIndex].TweenForGra();
+            D_FindSoloGameBtns[btnIndex].Shake(0.5f, 3, new Vector3(20f, 0, 0), Curve.EaseOutQuad);
 
             AudioManager.PlayClip(AudioLabel.Error);
         }
@@ -1397,20 +1456,20 @@ public class MiniGameManager : Regist
             return;
         }
 
-        if (FindGameIndexList.Count == 0)
+        if (FindSoloGameIndexList.Count == 0)
         {
             return;
         }
 
 
-        if (slotIndex == FindGameIndexList[0])
+        if (slotIndex == FindSoloGameIndexList[0])
         {
             D_MemoryGameBtns[index].GetComponent<Image>().material = Lib.GrayMat;
             D_MemoryGameBtns[index].GetComponent<Button>().interactable = false;
             D_MemoryGameIcons[index].GetComponent<Image>().material = Lib.GrayMat;
             D_MemoryGameTicks[index].SetActive(true);
 
-            FindGameIndexList.RemoveAt(0);
+            FindSoloGameIndexList.RemoveAt(0);
 
 
             Flower flower = MinigameFlowerDictionary[slotIndex];
@@ -1433,7 +1492,7 @@ public class MiniGameManager : Regist
 
             TweenRoot tween = flower.FlowerIcon.TweenBacSr();
 
-            if (FindGameIndexList.Count == 0)
+            if (FindSoloGameIndexList.Count == 0)
             {
                 tween.AddEventOnetime
                 (
@@ -1692,9 +1751,9 @@ public class MiniGameManager : Regist
         }
     }
 
-    public static void EnterFindGame()
+    public static void EnterFindSoloGame()
     {
-        FindGameOperateParent.SetActive(true);
+        FindSoloGameOperateParent.SetActive(true);
 
         ResourceManager.SetActive(CanvasLabel.D_Begin, true);
         ResourceManager.SetActive(CanvasLabel.D_DescC, true);
@@ -1703,13 +1762,32 @@ public class MiniGameManager : Regist
         ResourceManager.SetActive(CanvasLabel.D_FlowerBtn8, false);
         ResourceManager.SetActive(CanvasLabel.D_FlowerBtn9, false);
 
-        MinigameBeginButtonParent.SetParent(FindGameOperateParent);
-        MinigameTimerParent.SetParent(FindGameStatusParent);
-        DisplayGrid.SetParent(FindGameStatusParent);
+        MinigameBeginButtonParent.SetParent(FindSoloGameOperateParent);
+        MinigameTimerParent.SetParent(FindSoloGameStatusParent);
+        DisplayGrid.SetParent(FindSoloGameStatusParent);
 
         PrepareText.SetParent(ResourceManager.Get(CanvasLabel.D_PrepareLayout3));
 
-        FindGameRoundReset(true);
+        FindSoloGameRoundReset(true);
+    }
+
+    public static void EnterFindMissingGame()
+    {
+        FindMissingGameOperateParent.SetActive(true);
+        MinigameTimerParent.SetParent(FindMissingGameStatusParent);
+        DisplayGrid.SetParent(FindMissingGameStatusParent);
+        MinigameBeginButtonParent.SetParent(FindMissingGameOperateParent);
+        PrepareText.SetParent(ResourceManager.Get(CanvasLabel.D_FindMissingGamePrepareLayout));
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameMask).GetTweenGra().InDestination = true;
+        for (int i = 0; i < D_FindMissingGameBtns.Count; i++)
+        {
+            D_FindMissingGameBtns[i].GetTweenCG().InOrigin = true;
+            D_FindMissingGameBtns[i].SetActive(false);
+        }
+        ResourceManager.SetActive(CanvasLabel.D_Begin, true);
+        ResourceManager.SetActive(CanvasLabel.D_FindMissingGameDesc, true);
+
+        FindMissingGameRoundReset(true);
     }
 
 
@@ -1726,20 +1804,20 @@ public class MiniGameManager : Regist
         }
 
 
-        CurrentFlowerFadeTime -= CurrentFlowerFadeTime * MemoryGameDecreaseRate;
+        MemoryGameCurrentFlowerFadeTime -= MemoryGameCurrentFlowerFadeTime * MemoryGameDecreaseRate;
 
-        FlowerFadeTimer = CurrentFlowerFadeTime;
+        MemoryGameFlowerFadeTimer = MemoryGameCurrentFlowerFadeTime;
 
 
         MemoryGameFadeList = new List<Flower>();
 
-        FindGameIndexList = new List<int>();
+        FindSoloGameIndexList = new List<int>();
 
         List<int> randomList = new List<int>(MemoryGameSlotIDs);
 
         for (int i = 0; i < randomList.Count; i++)
         {
-            FindGameIndexList.Add(randomList.Random(1, true, true)[0]);
+            FindSoloGameIndexList.Add(randomList.Random(1, true, true)[0]);
 
             i--;
         }
@@ -1790,9 +1868,9 @@ public class MiniGameManager : Regist
 
     public static void MemoryGameFadeNext()
     {
-        for (int i = 0; i < FindGameIndexList.Count; i++)
+        for (int i = 0; i < FindSoloGameIndexList.Count; i++)
         {
-            Flower flower = MinigameFlowerDictionary[FindGameIndexList[i]];
+            Flower flower = MinigameFlowerDictionary[FindSoloGameIndexList[i]];
 
             if (MemoryGameFadeList.UniqueAdd(flower))
             {
@@ -1805,7 +1883,7 @@ public class MiniGameManager : Regist
 
                 flower.FlowerIcon.TweenForSr();
 
-                if (MemoryGameFadeList.Count == MaxFadeAmt)
+                if (MemoryGameFadeList.Count == MemoryGameMaxFadeAmt)
                 {
                     MemoryGameRoundBegin();
                 }
@@ -1848,7 +1926,7 @@ public class MiniGameManager : Regist
     }
 
 
-    public static void FindGameRoundEnd()
+    public static void FindSoloGameRoundEnd()
     {
         if (MinigameIdleFlowerList[0].ID == MinigameAward.UnlockFlowerID)
         {
@@ -1871,24 +1949,24 @@ public class MiniGameManager : Regist
             {
                 if (Game)
                 {
-                    FindGameRoundReset();
+                    FindSoloGameRoundReset();
 
-                    FindGameRoundBegin();
+                    FindSoloGameRoundBegin();
                 }
             },
             1.5f
         );
     }
 
-    public static void FindGameRoundReset(bool firstRound = false)
+    public static void FindSoloGameRoundReset(bool firstRound = false)
     {
         ExtList.ForEach(MinigameIdleFlowerList, flower => { flower.FlowerIcon.SetAlpha(1); flower.FlowerIcon.SetActive(true); flower.RetrieveFlower();});
 
         MinigameIdleFlowerList = new List<Flower>();
 
-        FindGameFlowerIDs = new List<int>();
+        FindSoloGameFlowerIDs = new List<int>();
 
-        List<int> slotIDs = new List<int>(FindGameSlotIDs);
+        List<int> slotIDs = new List<int>(FindSoloGameSlotIDs);
 
 
         FlowerInfo flowerInfo;
@@ -1902,24 +1980,24 @@ public class MiniGameManager : Regist
             flowerInfo = GardenManager.FlowerInfoDictionary.Random(false, flowerIndo => { return flowerIndo.Unlock; });
         }
 
-        FindGameFlowerIDs.Add(flowerInfo.ID);
+        FindSoloGameFlowerIDs.Add(flowerInfo.ID);
 
         MinigameIdleFlowerList.Add(ResourceManager.GetFlower(flowerInfo, MinigameSlots[slotIDs.Random(1, true, true)[0]]));
 
         while (slotIDs.Count > 0)
         {
-            flowerInfo = GardenManager.FlowerInfoDictionary.Random(false, info => { return info.Unlock && info.ID != FindGameFlowerIDs[0]; });
+            flowerInfo = GardenManager.FlowerInfoDictionary.Random(false, info => { return info.Unlock && info.ID != FindSoloGameFlowerIDs[0]; });
 
             if (slotIDs.Count == 1)
             {
-                if (!FindGameFlowerIDs.Contains(flowerInfo.ID))
+                if (!FindSoloGameFlowerIDs.Contains(flowerInfo.ID))
                 {
                     continue;
                 }
             }
             else
             {
-                FindGameFlowerIDs.UniqueAdd(flowerInfo.ID);
+                FindSoloGameFlowerIDs.UniqueAdd(flowerInfo.ID);
             }
 
             int amt = Mathf.Min(Random.Range(2, 9), slotIDs.Count);
@@ -1940,20 +2018,20 @@ public class MiniGameManager : Regist
 
         List<int> idList = new List<int>()
         {
-            FindGameFlowerIDs[0],
+            FindSoloGameFlowerIDs[0],
         };
 
-        if (FindGameFlowerIDs.Count == 2)
+        if (FindSoloGameFlowerIDs.Count == 2)
         {
-            idList.Add(FindGameFlowerIDs[1]);
-            idList.Add(FindGameFlowerIDs[1]);
+            idList.Add(FindSoloGameFlowerIDs[1]);
+            idList.Add(FindSoloGameFlowerIDs[1]);
 
             idList.RemoveAt(0);
-            idList.Insert(Random.Range(0, 3), FindGameFlowerIDs[0]);
+            idList.Insert(Random.Range(0, 3), FindSoloGameFlowerIDs[0]);
         }
-        else if (FindGameFlowerIDs.Count > 2)
+        else if (FindSoloGameFlowerIDs.Count > 2)
         {
-            idList.AddRange(FindGameFlowerIDs.Random(2, true, false, id => { return id != idList[0]; }));
+            idList.AddRange(FindSoloGameFlowerIDs.Random(2, true, false, id => { return id != idList[0]; }));
 
             idList = idList.Disturb();
         }
@@ -1973,23 +2051,23 @@ public class MiniGameManager : Regist
             int id = idList[i];
             int index = i;
 
-            if (firstRound && TutorialManager.FindMinigameTutorial && id == FindGameFlowerIDs[0])
+            if (firstRound && TutorialManager.FindSoloMinigameTutorial && id == FindSoloGameFlowerIDs[0])
             {
-                FindGameCorrectButtonParent = D_FindGameBtns[i];
-                Button button = FindGameCorrectButtonParent.GetComponent<Button>();
+                FindSoloGameCorrectButtonParent = D_FindSoloGameBtns[i];
+                Button button = FindSoloGameCorrectButtonParent.GetComponent<Button>();
                 button.onClick.RemoveAllListeners();
-                button.onClick.AddListener(() => { OnFindGameButtonClick(id, index); TutorialManager.EndClickCorrectButton(); });
+                button.onClick.AddListener(() => { OnFindSoloGameButtonClick(id, index); TutorialManager.EndClickFindSoloCorrectButton(); });
             }
             else
             {
-                Button button = D_FindGameBtns[i].GetComponent<Button>();
+                Button button = D_FindSoloGameBtns[i].GetComponent<Button>();
                 button.onClick.RemoveAllListeners();
-                button.onClick.AddListener(() => { OnFindGameButtonClick(id, index); });
+                button.onClick.AddListener(() => { OnFindSoloGameButtonClick(id, index); });
             }
         }
     }
 
-    public static void FindGameRoundBegin(bool firstRound = false)
+    public static void FindSoloGameRoundBegin(bool firstRound = false)
     {
         if (firstRound && !MinigameAward.HaveNewFlowerFlag)
         {
@@ -2005,13 +2083,236 @@ public class MiniGameManager : Regist
             MinigameIdleFlowerList[i].FlowerIcon.TweenBacSr();
         }
 
-        if (firstRound && TutorialManager.FindMinigameTutorial)
+        if (firstRound && TutorialManager.FindSoloMinigameTutorial)
         {
-            TutorialManager.ShowCorrectButton(FindGameCorrectButtonParent.GetChild(1), FindGameCorrectButtonParent);
+            TutorialManager.ShowFindSoloCorrectButton(FindSoloGameCorrectButtonParent.GetChild(1), FindSoloGameCorrectButtonParent);
         }
     }
 
 
+    public static void FindMissingGameRoundStartOperate()
+    {
+        List<Flower> flowers = new List<Flower>(MinigameIdleFlowerList);
+        flowers = flowers.Disturb();
+        for (int i = 1; i < flowers.Count; i++)
+        {
+            flowers[i].FlowerIcon.TweenBacSr();
+        }
+        List<Flower> buttonFlowers = new List<Flower>();
+        buttonFlowers.Add(flowers[0]);
+        for (int i = 1; i < flowers.Count; i++)
+        {
+            int index = i;
+            if (!buttonFlowers.MyContains(flower => flower.ID == flowers[index].ID))
+            {
+                buttonFlowers.Add(flowers[index]);
+            }
+        }
+        List<Image> icons = new List<Image>();
+        for (int i = 0; i < D_FindMissingGameIcons.Count; i++)
+        {
+            icons.Add(D_FindMissingGameIcons[i].GetComponent<Image>());
+        }
+        List<Button> buttons = new List<Button>();
+        for (int i = 0; i < D_FindMissingGameBtns.Count; i++)
+        {
+            buttons.Add(D_FindMissingGameBtns[i].GetComponent<Button>());
+        }
+        FindMissingCorrectFlower = buttonFlowers[0];
+        Image correctImage = icons.Random()[0];
+        int correctIndex = icons.IndexOf(correctImage);
+        Button correctButton = buttons[correctIndex];
+        icons.RemoveAt(correctIndex);
+        buttons.RemoveAt(correctIndex);
+        correctImage.sprite = buttonFlowers[0].FlowerInfo.Icon;
+        icons[0].sprite = buttonFlowers[1].FlowerInfo.Icon;
+        icons[1].sprite = buttonFlowers[2].FlowerInfo.Icon;
+        float deltaSIzeX = 1.0625f;
+        float deltaSIzeY = 1.0625f;
+        correctImage.Resize(true, deltaSIzeX, deltaSIzeY);
+        icons[0].Resize(true, deltaSIzeX, deltaSIzeY);
+        icons[1].Resize(true, deltaSIzeX, deltaSIzeY);
+        correctButton.TweenForCG();
+        buttons[0].TweenForCG();
+        buttons[1].TweenForCG();
+        correctButton.onClick.RemoveAllListeners();
+        buttons[0].onClick.RemoveAllListeners();
+        buttons[1].onClick.RemoveAllListeners();
+        correctButton.onClick.AddListener(() => OnFindMissingGameRightButtonClick(correctButton, correctImage));
+        buttons[0].onClick.AddListener(() => OnFindMissingGameWrongButtonClick(buttons[0], icons[0]));
+        buttons[1].onClick.AddListener(() => OnFindMissingGameWrongButtonClick(buttons[1], icons[1]));
+        if (TutorialManager.FindMissingMinigameTutorial)
+        {
+            TutorialManager.ShowFindMissingCorrectButton(D_FindMissingGameArrows[correctIndex], D_FindMissingGameBtns[correctIndex]);
+            correctButton.AddButtonEventOnetime(TutorialManager.EndClickFindMissingCorrectButton);
+        }
+    }
+
+    public static void FindMissingGameRoundEnd()
+    {
+        DelayCall.Call
+        (
+            1f, () =>
+            {
+                FindMissingGameRoundReset(false);
+                FindMissingGameRoundBegin();
+            }
+        );
+    }
+
+    public static void FindMissingGameRoundReset(bool firstRound)
+    {
+        if (!firstRound)
+        {
+            FindMissingGameCurrentFadeTime -= FindMissingGameDecreaseTime;
+            FindMissingGameCurrentFadeTime = Mathf.Max(FindMissingGameCurrentFadeTime, FindMissingGameFlowerMinDisplayTime);
+            for (int i = 0; i < MinigameIdleFlowerList.Count; i++)
+            {
+                MinigameIdleFlowerList[i].RetrieveFlower();
+            }
+            MinigameIdleFlowerList = new List<Flower>();
+        }
+        List<int> idList = new List<int>(FindMissingGameSlotIDs);
+        Flower flower;
+        if (MinigameAward.HaveNewFlowerFlag)
+        {
+            List<FlowerInfo> flowerInfos = new List<FlowerInfo>(GardenManager.FlowerInfoDictionary.Values.ToList());
+            for (int i = 0; i < flowerInfos.Count; i++)
+            {
+                if (!flowerInfos[i].Unlock)
+                {
+                    flowerInfos.RemoveAt(i);
+                    i--;
+                }
+            }
+            flowerInfos = flowerInfos.Disturb();
+            for (int i = 0; i < 3; i++)
+            {
+                flower = ResourceManager.GetFlower(flowerInfos[i], MinigameSlots[idList[i]]);
+                MinigameIdleFlowerList.Add(flower);
+            }
+            for (int i = 3; i < 9; i++)
+            {
+                flower = ResourceManager.GetFlower(flowerInfos.Random()[0], MinigameSlots[idList[i]]);
+                MinigameIdleFlowerList.Add(flower);
+            }
+        }
+        else
+        {
+            int specialSlotID = idList.Random(1, true, true)[0];
+            FindMissingNewFlower = ResourceManager.GetFlower(GardenManager.FlowerInfoDictionary[MinigameAward.UnlockFlowerID], MinigameSlots[specialSlotID]);
+            FindMissingNewFlower.PlayNewFlowerEffec();
+            MinigameIdleFlowerList.Add(FindMissingNewFlower);
+            List<FlowerInfo> flowerInfos = new List<FlowerInfo>(GardenManager.FlowerInfoDictionary.Values.ToList());
+            for (int i = 0; i < flowerInfos.Count; i++)
+            {
+                if (!flowerInfos[i].Unlock || flowerInfos[i].ID == MinigameAward.UnlockFlowerID)
+                {
+                    flowerInfos.RemoveAt(i);
+                    i--;
+                }
+            }
+            flowerInfos = flowerInfos.Disturb();
+            for (int i = 0; i < 2; i++)
+            {
+                flower = ResourceManager.GetFlower(flowerInfos[i], MinigameSlots[idList[i]]);
+                MinigameIdleFlowerList.Add(flower);
+            }
+            for (int i = 2; i < 8; i++)
+            {
+                flower = ResourceManager.GetFlower(flowerInfos.Random()[0], MinigameSlots[idList[i]]);
+                MinigameIdleFlowerList.Add(flower);
+            }
+        }
+
+        for (int i = 0; i < MinigameIdleFlowerList.Count; i++)
+        {
+            MinigameIdleFlowerList[i].FlowerIcon.CreateTweenSr(1, 0, 0.25f, true, false, Curve.EaseOutQuad, false, true);
+            MinigameIdleFlowerList[i].FlowerIcon.GetTweenSr().InDestination = true;
+        }
+    }
+
+    public static void FindMissingGameRoundBegin()
+    {
+        FindMissingGameFadeTimer = FindMissingGameCurrentFadeTime;
+        for (int i = 0; i < MinigameIdleFlowerList.Count; i++)
+        {
+            MinigameIdleFlowerList[i].FlowerIcon.TweenBacSr();
+        }
+    }
+
+    public static void FindMissingFadeFlowers()
+    {
+        for (int i = 0; i < MinigameIdleFlowerList.Count; i++)
+        {
+            MinigameIdleFlowerList[i].FlowerIcon.TweenForSr();
+        }
+
+        DelayCall.Call
+        (
+            FindMissingGameFlowerDisappearTime,
+            FindMissingGameRoundStartOperate
+        );
+    }
+
+    public static void OnFindMissingGameRightButtonClick(Button button, Image icon)
+    {
+        if (!Game)
+        {
+            return;
+        }
+
+        if (Panalty)
+        {
+            return;
+        }
+
+        ResourceManager.GetHudText($"+{FindMissingCorrectScore}", Color.white, 90, FindMissingCorrectFlower.ChildDic[FlowerLabel.ScorePos], ResourceManager.Get(CanvasLabel.D_HudParent), true);
+
+        Score += FindSoloCorrectScore;
+
+        FindMissingCorrectFlower.PlayFlashLight();
+
+        AudioManager.PlayClip(AudioLabel.ClickButton);
+
+        for (int i = 0; i < D_FindMissingGameBtns.Count; i++)
+        {
+            D_FindMissingGameBtns[i].TweenBacCG();
+        }
+        if (FindMissingNewFlower != null)
+        {
+            FindMissingNewFlower.StopNewFlowerEffec();
+            FindMissingNewFlower = null;
+        }
+        for (int i = 0; i < MinigameIdleFlowerList.Count; i++)
+        {
+            MinigameIdleFlowerList[i].FlowerIcon.TweenForSr();
+        }
+        FindMissingGameRoundEnd();
+    }
+
+    public static void OnFindMissingGameWrongButtonClick(Button button, Image icon)
+    {
+        if (!Game)
+        {
+            return;
+        }
+
+        if (Panalty)
+        {
+            return;
+        }
+
+        Panalty = true;
+        PanaltyTimer = PanaltyTime;
+
+        icon.TweenForGra();
+        button.Shake(0.5f, 3, new Vector3(20f, 0, 0), Curve.EaseOutQuad);
+
+        AudioManager.PlayClip(AudioLabel.Error);
+    }
+
+
     public void OnApplicationPause(bool pause)
     {
         if (!pause)

+ 3 - 3
Assets/Script/Manage/ResourceManager.cs

@@ -650,13 +650,13 @@ public class ResourceManager : Regist
         Vector3 leftPos = Get(GardenLabel.Minigame_DropAward_LeftBorder).position;
         Vector3 rightPos;
 
-        if (MiniGameManager.miniGameType == MiniGameType.Punch || MiniGameManager.miniGameType == MiniGameType.Find)
+        if (MiniGameManager.miniGameType == MiniGameType.Memory)
         {
-            rightPos = Get(GardenLabel.FindMinigame_DropAward_RightBorder).position;
+            rightPos = Get(GardenLabel.MemoryMinigame_DropAward_RightBorder).position;
         }
         else
         {
-            rightPos = Get(GardenLabel.MemoryMinigame_DropAward_RightBorder).position;
+            rightPos = Get(GardenLabel.FindMinigame_DropAward_RightBorder).position;
         }
 
         Vector3 pos = Vector3.Lerp(leftPos, rightPos, Random.Range(0, 1f));

+ 55 - 18
Assets/Script/Manage/TutorialManager.cs

@@ -67,10 +67,12 @@ public class TutorialManager : Regist
     public static int VisitTutorialLevel = 8;
     public static int CommentTutorialLevel = 8;
     public static int DressroomTutorialLevel = 13;
-    public static int FindMinigameTutorialLevel = 22;
+    public static int FindSoloMinigameTutorialLevel = 22;
     public static int PlazaRoomTutorialLevel = 28;
     public static int SetNicknameTutorialIndex = 7;
-    public static int MinFlowerForFindGame = 2;
+    public static int MinFlowerForFindSoloGame = 2;
+    public static int MinFlowerForFindMissingGame = 3;
+    public static int FindMissingMinigameTutorialLevel = 31;
 
     public static bool NewplayerTutorial;
     public static int NewplayerTutorialIndex;
@@ -79,6 +81,10 @@ public class TutorialManager : Regist
     public static bool memoryMinigameTutorial;
     public static int MemoryMinigameTutorialIndex;
 
+    public static bool FindMissingMinigameTutorial;
+    public static bool findMissingMinigameTutorial;
+    public static int FindMissingMinigameTutorialIndex;
+
     public static bool VisitTutorial;
     public static bool visitTutorial;
     public static int VisitTutorialIndex;
@@ -87,9 +93,9 @@ public class TutorialManager : Regist
     public static bool dressroomTutorial;
     public static int DressroomTutorialIndex;
 
-    public static bool FindMinigameTutorial;
-    public static bool findMinigameTutorial;
-    public static int FindMinigameTutorialIndex;
+    public static bool FindSoloMinigameTutorial;
+    public static bool findSoloMinigameTutorial;
+    public static int FindSoloMinigameTutorialIndex;
 
     public static bool PlazaRoomTutorial;
     public static bool plazaRoomTutorial;
@@ -474,6 +480,7 @@ public class TutorialManager : Regist
         ResourceManager.SetActive(CanvasLabel.C_Coin, false);
         ResourceManager.SetActive(CanvasLabel.C_Group1, false);
         ResourceManager.SetActive(CanvasLabel.C_Group3, false);
+        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
 
         ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
 
@@ -649,6 +656,7 @@ public class TutorialManager : Regist
         ResourceManager.SetActive(CanvasLabel.C_Coin, true);
         ResourceManager.SetActive(CanvasLabel.C_Group1, true);
         ResourceManager.SetActive(CanvasLabel.C_Group3, true);
+        ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
 
         ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
 
@@ -997,7 +1005,7 @@ public class TutorialManager : Regist
 
         MiniGameManager.Pause = true;
 
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindGameIndexList[0]);
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
         Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
         Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform);
         button.AddButtonEventOnetime
@@ -1012,7 +1020,7 @@ public class TutorialManager : Regist
 
     public static void ShowSecondCorrectButton()
     {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindGameIndexList[0]);
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
         Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
         Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform);
         button.AddButtonEventOnetime
@@ -1027,7 +1035,7 @@ public class TutorialManager : Regist
 
     public static void ShowThirdCorrectButton()
     {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindGameIndexList[0]);
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
         Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
         Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform);
         button.AddButtonEventOnetime
@@ -1042,7 +1050,7 @@ public class TutorialManager : Regist
 
     public static void ShowFourthCorrectButton()
     {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindGameIndexList[0]);
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
         Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
         Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform);
         button.AddButtonEventOnetime
@@ -1057,7 +1065,7 @@ public class TutorialManager : Regist
 
     public static void ShowFifthCorrectButton()
     {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindGameIndexList[0]);
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
         Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
         Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform);
         button.AddButtonEventOnetime
@@ -1072,7 +1080,7 @@ public class TutorialManager : Regist
 
     public static void ShowSixthCorrectButton()
     {
-        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindGameIndexList[0]);
+        int index = MiniGameManager.GetMemoryGameButtonIndex(MiniGameManager.FindSoloGameIndexList[0]);
         Button button = MiniGameManager.D_MemoryGameBtns[index].GetComponent<Button>();
         Tutorial.HightScreen(MiniGameManager.D_MemoryGameArrows[index], button.transform);
         button.AddButtonEventOnetime
@@ -1085,6 +1093,35 @@ public class TutorialManager : Regist
     }
 
 
+    public static void EndClickFindMissingCorrectButton()
+    {
+        StaticsManager.GetInstance().TutoComplete("EndClickFindMissingCorrectButton");
+
+        FindMissingMinigameTutorial = false;
+
+        Tutorial.HightDisable();
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, false);
+
+        MiniGameManager.Pause = false;
+    }
+
+    public static void PlayFindMissingGame()
+    {
+        FindMissingMinigameTutorial = true;
+        findMissingMinigameTutorial = false;
+    }
+
+    public static void ShowFindMissingCorrectButton(Transform arrowTra, Transform targetTra)
+    {
+        MiniGameManager.Pause = true;
+
+        ResourceManager.SetActive(CanvasLabel.N_Tutorial, true);
+
+        Tutorial.HightScreen(arrowTra, targetTra);
+    }
+
+
     public static void EndClickDressroomButton()
     {
         StaticsManager.GetInstance().TutoComplete("EndClickDressroomButton");
@@ -1194,11 +1231,11 @@ public class TutorialManager : Regist
     }
 
 
-    public static void EndClickCorrectButton()
+    public static void EndClickFindSoloCorrectButton()
     {
-        StaticsManager.GetInstance().TutoComplete("EndClickCorrectButton");
+        StaticsManager.GetInstance().TutoComplete("EndClickFindSoloCorrectButton");
 
-        FindMinigameTutorial = false;
+        FindSoloMinigameTutorial = false;
 
         Tutorial.HightDisable();
 
@@ -1207,13 +1244,13 @@ public class TutorialManager : Regist
         MiniGameManager.Pause = false;
     }
 
-    public static void PlayFindGame()
+    public static void PlayFindSoloGame()
     {
-        FindMinigameTutorial = true;
-        findMinigameTutorial = false;
+        FindSoloMinigameTutorial = true;
+        findSoloMinigameTutorial = false;
     }
 
-    public static void ShowCorrectButton(Transform arrowTra, Transform targetTra)
+    public static void ShowFindSoloCorrectButton(Transform arrowTra, Transform targetTra)
     {
         MiniGameManager.Pause = true;
 

+ 85 - 3
Assets/Script/Manage/UIManager.cs

@@ -613,6 +613,37 @@ public class UIManager : Regist
 
         #endregion
 
+        #region C_RightPanel
+
+        ResourceManager.Get(CanvasLabel.C_RightSidePanel).CreateTweenVec2D(ResourceManager.Get(CanvasLabel.C_RightSidePanelPosition).position, 0.25f, false, true, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).CreateTweenCG(0, 0.25f, true, true, Curve.EaseOutQuad);
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_OpenSidePanelButton, () =>
+            {
+                AudioManager.PlayClip(ResourceLabel.BtnClip);
+                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenBacVec();
+                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenBacCG();
+                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, true);
+                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, false);
+            }
+        );
+
+        ResourceManager.AddButtonEvent
+        (
+            CanvasLabel.C_CloseSidePanelButton, () =>
+            {
+                AudioManager.PlayClip(ResourceLabel.BtnClip);
+                ResourceManager.Get(CanvasLabel.C_RightSidePanel).TweenForVec();
+                ResourceManager.Get(CanvasLabel.C_RightSidePanelGroup).TweenForCG();
+                ResourceManager.SetActive(CanvasLabel.C_CloseSidePanelButton, false);
+                ResourceManager.SetActive(CanvasLabel.C_OpenSidePanelButton, true);
+            }
+        );
+
+        #endregion
+
         #endregion
 
         #region D
@@ -633,6 +664,7 @@ public class UIManager : Regist
         LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescA), new MulLanStr(LanguageLabel.UI__D_DescA));
         LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescB), new MulLanStr(LanguageLabel.UI__D_DescB));
         LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_DescC), new MulLanStr(LanguageLabel.UI__D_DescC));
+        LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.D_FindMissingGameDesc), new MulLanStr(LanguageLabel.UI__D_FindMissingGameDesc));
 
         LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_Lab), new MulLanStr(LanguageLabel.UI__Da_Lab));
         LanguageManager.Add(ResourceManager.Get<Text>(CanvasLabel.Da_QuitLab), new MulLanStr(LanguageLabel.UI__Da_QuitLab));
@@ -874,9 +906,27 @@ public class UIManager : Regist
 
             #endregion
 
-            #region FindGame
+            #region FindSoloGame 
 
-            if (MiniGameManager.miniGameType == MiniGameType.Find)
+            if (MiniGameManager.miniGameType == MiniGameType.FindSolo)
+            {
+                MiniGameManager.MinigameIdleFlowerList.ForEach
+                (
+                    flower =>
+                    {
+                        flower.FlowerIcon.GetTweenSr().InOrigin = true;
+
+                        flower.RetrieveFlower();
+                    },
+                    true
+                );
+            }
+
+            #endregion
+
+            #region FindMissingGame 
+
+            if (MiniGameManager.miniGameType == MiniGameType.FindMissing)
             {
                 MiniGameManager.MinigameIdleFlowerList.ForEach
                 (
@@ -1106,7 +1156,7 @@ public class UIManager : Regist
 
         #endregion
 
-        #region FindGame
+        #region FindSoloGame
 
         ResourceManager.Get(CanvasLabel.D_FlowerBtn7).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
         ResourceManager.Get(CanvasLabel.D_FlowerBtn8).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
@@ -1138,6 +1188,38 @@ public class UIManager : Regist
 
         #endregion
 
+        #region FindMissingGame
+
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton1).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+        ResourceManager.Get(CanvasLabel.D_FindMissingGameButton2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon0).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root9 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root9.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon1).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root10 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root10.StartBackward();
+        };
+
+        tweenRoot = ResourceManager.Get(CanvasLabel.D_FindMissingGameIcon2).CreateTweenGra(new Color(1, 1, 1), new Color(1, 0.7f, 0.7f), 0.25f, true, true, Curve.EaseOutQuad);
+
+        var root11 = tweenRoot;
+        tweenRoot.OnForwardFinish = () =>
+        {
+            root11.StartBackward();
+        };
+
+        #endregion
+
         #endregion
 
         #endregion

+ 9 - 8
Assets/Script/Tool/Auxiliary.cs

@@ -155,14 +155,15 @@ public class Auxiliary : Regist
             //HttpManager.GetThanksGiftInfo(RechargeGiftManager.Init, () => Bubble.Show(null, Language.GetStr(LanguageLabel.UI__GetThanksGiftInfoFailed)));
         }
 
-        //if (Input.GetKeyDown(KeyCode.A))
-        //{
-        //    StringFilter.ContainSensitiveWord("真");
-        //    Manager.GardenLevel = 50;
-        //    Manager.Diamond = 1000;
-        //    PlayerManager.Player.ChangeClose(BodyPart.Eye, "眼睛3");
-        //    FashionShowEditPage.DisplayPlayer.ChangeClose(BodyPart.Eye, "眼睛3");
-        //}
+        if (Input.GetKeyDown(KeyCode.A))
+        {
+            //StringFilter.ContainSensitiveWord("真");
+            TutorialManager.findMissingMinigameTutorial = true;
+            DebugManager.ResetGardenLevel(30);
+            //Manager.Diamond = 1000;
+            //PlayerManager.Player.ChangeClose(BodyPart.Eye, "眼睛3");
+            //FashionShowEditPage.DisplayPlayer.ChangeClose(BodyPart.Eye, "眼睛3");
+        }
 
         //if (Input.GetKeyDown(KeyCode.S))
         //{

+ 1 - 1
Assets/Tookits/LabelUtility/Editor/LabelSetDrawer.cs

@@ -191,7 +191,7 @@ namespace labelUtility
 
                 if (drawXmlArea)
                 {
-                    position = DrawButton(position, "Create Label From LanguageXml", () => { LabelUtility.CreateLabelFromLanguageXml(Instance); }); //todo Ôö¼Ó
+                    position = DrawButton(position, "Create Label From LanguageXml", () => { LabelUtility.CreateLabelFromLanguageXml(Instance); });
                 }
                 else if (drawLabelArea)
                 {

+ 15 - 15
Assets/Tookits/LabelUtility/LabelUtility.cs

@@ -38,7 +38,7 @@ namespace labelUtility
     }
 
     [Serializable]
-    public class LabelSet //todo 更新
+    public class LabelSet
     {
         public string Name;
 
@@ -59,7 +59,7 @@ namespace labelUtility
         public List<string> RegistExtraLines;
         public TextAsset ComponentScript;
 
-        public List<TextAsset> Languages; //todo 需要更新为LanguageXml
+        public List<TextAsset> Languages;
         public List<GameObject> Prefabs;
 
         public bool FoldOut;
@@ -69,7 +69,7 @@ namespace labelUtility
     }
 
     [Serializable]
-    public enum ComponentType //todo 更新
+    public enum ComponentType
     {
         None,
         Text,
@@ -99,14 +99,14 @@ namespace labelUtility
         public List<ComponentEventString> EventStrings;
         public List<LabelSet> LabelSets;
 
-        public static string StartMark = "//StartMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string EndMark = "//EndMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string RegistStartMark = "//RegistStartMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string RegistEndMark = "//RegistEndMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string EventStartMark = "//EventStartMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string EventEndMark = "//EventEndMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string RegistEventStartMark = "//RegistEventStartMark-Used by LabelUtility-Do not remove"; //todo 更新
-        public static string RegistEventEndMark = "//RegistEventEndMark-Used by LabelUtility-Do not remove"; //todo 更新
+        public static string StartMark = "//StartMark-Used by LabelUtility-Do not remove";
+        public static string EndMark = "//EndMark-Used by LabelUtility-Do not remove";
+        public static string RegistStartMark = "//RegistStartMark-Used by LabelUtility-Do not remove";
+        public static string RegistEndMark = "//RegistEndMark-Used by LabelUtility-Do not remove";
+        public static string EventStartMark = "//EventStartMark-Used by LabelUtility-Do not remove";
+        public static string EventEndMark = "//EventEndMark-Used by LabelUtility-Do not remove";
+        public static string RegistEventStartMark = "//RegistEventStartMark-Used by LabelUtility-Do not remove";
+        public static string RegistEventEndMark = "//RegistEventEndMark-Used by LabelUtility-Do not remove";
         public static string Prefix = "public static string ";
 
         #endregion
@@ -238,7 +238,7 @@ namespace labelUtility
         }
 
 
-        public static void CreateLabelFromPrefab(LabelSet labelSet, bool showWarning = true, bool regist = false) //todo 更新
+        public static void CreateLabelFromPrefab(LabelSet labelSet, bool showWarning = true, bool regist = false)
         {
             if (labelSet.LabelScript == null)
             {
@@ -273,7 +273,7 @@ namespace labelUtility
             }
         }
 
-        public static void CreateLabelFromLanguageXml(LabelSet labelSet, bool showWarning = true) //todo 更新
+        public static void CreateLabelFromLanguageXml(LabelSet labelSet, bool showWarning = true)
         {
             if (labelSet.LabelScript == null)
             {
@@ -304,7 +304,7 @@ namespace labelUtility
             InsertLineToScript(StartMark, EndMark, labelSet.LabelScript, labels);
         }
 
-        private static List<string> GetAllLabelFromXmlNode(XmlNode node, LabelSet labelSet) //todo 增加
+        private static List<string> GetAllLabelFromXmlNode(XmlNode node, LabelSet labelSet)
         {
             List<string> labels = new List<string>();
             for (int i = 0; i < node.ChildNodes.Count; i++)
@@ -341,7 +341,7 @@ namespace labelUtility
         }
 
 
-        public static void CreateComponentsFromPrefab(LabelSet labelSet, bool showWarning = true)  //todo 更新
+        public static void CreateComponentsFromPrefab(LabelSet labelSet, bool showWarning = true)
         {
             if (labelSet.ComponentScript == null)
             {

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.