Browse Source

增加邮件功能

jet 8 năm trước cách đây
mục cha
commit
46cccdc891

+ 1 - 0
Assets/Resource/Prefab/Object/DebugMode.prefab

@@ -120,6 +120,7 @@ MonoBehaviour:
   - {fileID: 21300078, guid: ff54675045a50274cb3e0094de4954e5, type: 3}
   - {fileID: 21300080, guid: ff54675045a50274cb3e0094de4954e5, type: 3}
   - {fileID: 21300000, guid: b302746e597587e4ea2e8d2e9765a58c, type: 3}
+  - {fileID: 1648846713598210, guid: 9b0fa99244cc9c94fa53cbfd572e5f1b, type: 2}
   Atlas2List:
   - {fileID: 21300030, guid: ff54675045a50274cb3e0094de4954e5, type: 3}
   - {fileID: 21300024, guid: ff54675045a50274cb3e0094de4954e5, type: 3}

+ 601 - 41
Assets/Resource/Prefab/PrefabUI/GroupD.prefab

@@ -11,6 +11,79 @@ Prefab:
   m_ParentPrefab: {fileID: 0}
   m_RootGameObject: {fileID: 1846155164804538}
   m_IsPrefabParent: 1
+--- !u!1 &1000916041692720
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224639982390873574}
+  - component: {fileID: 114779753155377882}
+  - component: {fileID: 222071219037806110}
+  - component: {fileID: 114384269152429656}
+  - component: {fileID: 114994059128358142}
+  m_Layer: 5
+  m_Name: Bd_ScrollRect
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1006427425384980
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224044867189511148}
+  - component: {fileID: 222875224498681192}
+  - component: {fileID: 114982812521600592}
+  - component: {fileID: 225549482170922526}
+  m_Layer: 5
+  m_Name: Bb_SignIn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!1 &1016716780683634
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224548622107083228}
+  - component: {fileID: 222687677594533728}
+  - component: {fileID: 114998374339253570}
+  - component: {fileID: 114595869186708756}
+  m_Layer: 5
+  m_Name: Bb_Get
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1025569937194234
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224511621584807628}
+  - component: {fileID: 222143506339739572}
+  - component: {fileID: 114370831380353730}
+  - component: {fileID: 225213539798143798}
+  m_Layer: 5
+  m_Name: Bd_Mail0
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
 --- !u!1 &1044851429450660
 GameObject:
   m_ObjectHideFlags: 1
@@ -89,7 +162,7 @@ GameObject:
   - component: {fileID: 222275856157760228}
   - component: {fileID: 114339921399813404}
   m_Layer: 5
-  m_Name: Bb_GetLab
+  m_Name: Bd_GetLab
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -226,7 +299,7 @@ GameObject:
   - component: {fileID: 114775608875778546}
   - component: {fileID: 114734099788569290}
   m_Layer: 5
-  m_Name: Bb_Get
+  m_Name: Bd_Get
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -371,6 +444,23 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1280221168853564
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224271189924942482}
+  - component: {fileID: 222999171217571264}
+  - component: {fileID: 114878518611647148}
+  m_Layer: 5
+  m_Name: Bb_Title
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1291548022917800
 GameObject:
   m_ObjectHideFlags: 1
@@ -774,7 +864,7 @@ GameObject:
   - component: {fileID: 222963003789513752}
   - component: {fileID: 114925187842483198}
   m_Layer: 5
-  m_Name: Bb_Title
+  m_Name: Bd_Title
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -816,6 +906,23 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1605720314457870
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224898314465273696}
+  - component: {fileID: 114000545737166184}
+  - component: {fileID: 114706724786734146}
+  m_Layer: 5
+  m_Name: Bd_Grid
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1617766036277208
 GameObject:
   m_ObjectHideFlags: 0
@@ -941,16 +1048,13 @@ GameObject:
   serializedVersion: 5
   m_Component:
   - component: {fileID: 224702851814715122}
-  - component: {fileID: 222143506339739572}
-  - component: {fileID: 114370831380353730}
-  - component: {fileID: 225213539798143798}
   m_Layer: 5
-  m_Name: Bb_SignIn
+  m_Name: Bd_Mail
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!1 &1722153107442498
 GameObject:
   m_ObjectHideFlags: 0
@@ -1224,6 +1328,23 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1927078666759638
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224413971229418218}
+  - component: {fileID: 222728723529534160}
+  - component: {fileID: 114806633150936934}
+  m_Layer: 5
+  m_Name: Bb_GetLab
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1937697851145028
 GameObject:
   m_ObjectHideFlags: 1
@@ -1427,6 +1548,28 @@ Animator:
   m_WarningMessage: 
   m_HasTransformHierarchy: 1
   m_AllowConstantClipSamplingOptimization: 1
+--- !u!114 &114000545737166184
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1605720314457870}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 55
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
 --- !u!114 &114007659393548340
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -2560,7 +2703,7 @@ MonoBehaviour:
       Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
   m_FontData:
     m_Font: {fileID: 12800000, guid: 0e86defab91f2fb4189708f6dde11005, type: 3}
-    m_FontSize: 30
+    m_FontSize: 20
     m_FontStyle: 0
     m_BestFit: 0
     m_MinSize: 2
@@ -2637,7 +2780,7 @@ MonoBehaviour:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1705255903785834}
+  m_GameObject: {fileID: 1025569937194234}
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
@@ -2719,6 +2862,33 @@ MonoBehaviour:
   m_FillAmount: 1
   m_FillClockwise: 1
   m_FillOrigin: 0
+--- !u!114 &114384269152429656
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1000916041692720}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
 --- !u!114 &114414242006789922
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3128,6 +3298,47 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u6536\u53D6"
+--- !u!114 &114595869186708756
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1016716780683634}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_DisabledColor: {r: 1, g: 1, b: 1, a: 1}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 114998374339253570}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
+      Culture=neutral, PublicKeyToken=null
 --- !u!114 &114602799121726488
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3262,6 +3473,19 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u786E\u5B9A"
+--- !u!114 &114706724786734146
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1605720314457870}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 0
 --- !u!114 &114714839516048288
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3451,6 +3675,70 @@ MonoBehaviour:
   m_FillAmount: 1
   m_FillClockwise: 1
   m_FillOrigin: 0
+--- !u!114 &114779753155377882
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1000916041692720}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1367256648, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Content: {fileID: 224898314465273696}
+  m_Horizontal: 1
+  m_Vertical: 0
+  m_MovementType: 1
+  m_Elasticity: 0.1
+  m_Inertia: 1
+  m_DecelerationRate: 0.135
+  m_ScrollSensitivity: 1
+  m_Viewport: {fileID: 0}
+  m_HorizontalScrollbar: {fileID: 0}
+  m_VerticalScrollbar: {fileID: 0}
+  m_HorizontalScrollbarVisibility: 0
+  m_VerticalScrollbarVisibility: 0
+  m_HorizontalScrollbarSpacing: 0
+  m_VerticalScrollbarSpacing: 0
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0,
+      Culture=neutral, PublicKeyToken=null
+--- !u!114 &114806633150936934
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1927078666759638}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 0e86defab91f2fb4189708f6dde11005, type: 3}
+    m_FontSize: 30
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 0
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u6536\u53D6"
 --- !u!114 &114821402301218020
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3538,6 +3826,39 @@ MonoBehaviour:
   m_FillAmount: 1
   m_FillClockwise: 1
   m_FillOrigin: 0
+--- !u!114 &114878518611647148
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1280221168853564}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 0e86defab91f2fb4189708f6dde11005, type: 3}
+    m_FontSize: 24
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u6BCF\u65E5\u7B7E\u5230"
 --- !u!114 &114896298517541424
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3666,18 +3987,18 @@ MonoBehaviour:
       Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
   m_FontData:
     m_Font: {fileID: 12800000, guid: 0e86defab91f2fb4189708f6dde11005, type: 3}
-    m_FontSize: 24
+    m_FontSize: 17
     m_FontStyle: 0
     m_BestFit: 0
-    m_MinSize: 2
-    m_MaxSize: 40
+    m_MinSize: 1
+    m_MaxSize: 114
     m_Alignment: 4
     m_AlignByGeometry: 0
     m_RichText: 1
     m_HorizontalOverflow: 0
     m_VerticalOverflow: 0
     m_LineSpacing: 1
-  m_Text: "\u6BCF\u65E5\u7B7E\u5230"
+  m_Text: "\u793C\u5305\u5956\u52B1"
 --- !u!114 &114929015117645790
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3765,6 +4086,33 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u79BB\u5F00\u671F\u95F4\u83B7\u5F97"
+--- !u!114 &114982812521600592
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1006427425384980}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.9632353, g: 0.9632353, b: 0.9632353, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: 3f36639ac83ce4a489bd621d684ea1a5, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
 --- !u!114 &114985178052036500
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -3847,6 +4195,44 @@ MonoBehaviour:
       m_Calls: []
     m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
       Culture=neutral, PublicKeyToken=null
+--- !u!114 &114994059128358142
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1000916041692720}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -146154839, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!114 &114998374339253570
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1016716780683634}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: d190acd69d12a114c851133dbcb7c5f7, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
 --- !u!222 &222003471251735386
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -3859,6 +4245,12 @@ CanvasRenderer:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1325384103514146}
+--- !u!222 &222071219037806110
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1000916041692720}
 --- !u!222 &222093092072258720
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -3882,7 +4274,7 @@ CanvasRenderer:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1705255903785834}
+  m_GameObject: {fileID: 1025569937194234}
 --- !u!222 &222144234251602748
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -4129,6 +4521,12 @@ CanvasRenderer:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1513318644423786}
+--- !u!222 &222687677594533728
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1016716780683634}
 --- !u!222 &222693201751477974
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -4141,6 +4539,12 @@ CanvasRenderer:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1790729858903622}
+--- !u!222 &222728723529534160
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1927078666759638}
 --- !u!222 &222741330332316252
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -4195,6 +4599,12 @@ CanvasRenderer:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1121767475061570}
+--- !u!222 &222875224498681192
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1006427425384980}
 --- !u!222 &222908359112102614
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -4237,6 +4647,12 @@ CanvasRenderer:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1217118552595588}
+--- !u!222 &222999171217571264
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1280221168853564}
 --- !u!224 &224009703040264054
 RectTransform:
   m_ObjectHideFlags: 1
@@ -4293,6 +4709,30 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224044867189511148
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1006427425384980}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 224548622107083228}
+  - {fileID: 224271189924942482}
+  - {fileID: 224494049001418880}
+  - {fileID: 224734471618216436}
+  - {fileID: 224472897739009488}
+  - {fileID: 224684314513372364}
+  m_Father: {fileID: 224938232921887762}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 21}
+  m_SizeDelta: {x: 641, y: 371.25}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224052309690139648
 RectTransform:
   m_ObjectHideFlags: 1
@@ -4593,6 +5033,24 @@ RectTransform:
   m_AnchoredPosition: {x: 214.07501, y: -18.5}
   m_SizeDelta: {x: 112.1, y: 36.9}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224271189924942482
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1280221168853564}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 224044867189511148}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 149.3}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224277826825650648
 RectTransform:
   m_ObjectHideFlags: 1
@@ -4873,6 +5331,24 @@ RectTransform:
   m_AnchoredPosition: {x: 0.0000008888619, y: 0}
   m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224413971229418218
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1927078666759638}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 224548622107083228}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224421956538833790
 RectTransform:
   m_ObjectHideFlags: 1
@@ -4979,7 +5455,7 @@ RectTransform:
   m_Children:
   - {fileID: 224814146550127736}
   - {fileID: 224960471895724372}
-  m_Father: {fileID: 224702851814715122}
+  m_Father: {fileID: 224044867189511148}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
@@ -5015,7 +5491,7 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
-  m_Father: {fileID: 224702851814715122}
+  m_Father: {fileID: 224044867189511148}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
@@ -5046,6 +5522,27 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224511621584807628
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1025569937194234}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 224712856311741146}
+  - {fileID: 224707825127135934}
+  - {fileID: 224639982390873574}
+  m_Father: {fileID: 224702851814715122}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 483, y: 270}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224514207117355162
 RectTransform:
   m_ObjectHideFlags: 1
@@ -5064,6 +5561,25 @@ RectTransform:
   m_AnchoredPosition: {x: 97, y: -48.499985}
   m_SizeDelta: {x: 108.96057, y: 97}
   m_Pivot: {x: 0.000000018626451, y: 0.5}
+--- !u!224 &224548622107083228
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1016716780683634}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 224413971229418218}
+  m_Father: {fileID: 224044867189511148}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: -185}
+  m_SizeDelta: {x: 161.85, y: 52}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224551959435948266
 RectTransform:
   m_ObjectHideFlags: 1
@@ -5157,6 +5673,25 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224639982390873574
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1000916041692720}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001}
+  m_Children:
+  - {fileID: 224898314465273696}
+  m_Father: {fileID: 224511621584807628}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -0.000030517578, y: -6}
+  m_SizeDelta: {x: 483, y: 124}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224664466603613810
 RectTransform:
   m_ObjectHideFlags: 1
@@ -5224,7 +5759,7 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 224890708332274924}
-  m_Father: {fileID: 224702851814715122}
+  m_Father: {fileID: 224044867189511148}
   m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
@@ -5259,21 +5794,16 @@ RectTransform:
   m_GameObject: {fileID: 1705255903785834}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994}
   m_Children:
-  - {fileID: 224712856311741146}
-  - {fileID: 224707825127135934}
-  - {fileID: 224494049001418880}
-  - {fileID: 224734471618216436}
-  - {fileID: 224472897739009488}
-  - {fileID: 224684314513372364}
+  - {fileID: 224511621584807628}
   m_Father: {fileID: 224938232921887762}
-  m_RootOrder: 0
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: 21}
-  m_SizeDelta: {x: 641, y: 371.25}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 800, y: 450}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224707825127135934
 RectTransform:
@@ -5285,13 +5815,13 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
-  m_Father: {fileID: 224702851814715122}
+  m_Father: {fileID: 224511621584807628}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: 149.3}
-  m_SizeDelta: {x: 160, y: 30}
+  m_AnchorMin: {x: 0.5, y: 0.9}
+  m_AnchorMax: {x: 0.5, y: 0.9}
+  m_AnchoredPosition: {x: 0, y: -0.73999786}
+  m_SizeDelta: {x: 160, y: 29}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224708669857040244
 RectTransform:
@@ -5342,13 +5872,13 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 224131879888782080}
-  m_Father: {fileID: 224702851814715122}
+  m_Father: {fileID: 224511621584807628}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: -185}
-  m_SizeDelta: {x: 161.85, y: 52}
+  m_AnchorMin: {x: 0.5, y: 0}
+  m_AnchorMax: {x: 0.5, y: 0}
+  m_AnchoredPosition: {x: 0, y: 1}
+  m_SizeDelta: {x: 101.1, y: 32.5}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224734146220428892
 RectTransform:
@@ -5384,7 +5914,7 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
-  m_Father: {fileID: 224702851814715122}
+  m_Father: {fileID: 224044867189511148}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
@@ -5604,6 +6134,24 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224898314465273696
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1605720314457870}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 224639982390873574}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0.000026652906, y: 0.000009059906}
+  m_SizeDelta: {x: 0, y: 124}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!224 &224928266697132482
 RectTransform:
   m_ObjectHideFlags: 1
@@ -5632,9 +6180,10 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
-  - {fileID: 224702851814715122}
+  - {fileID: 224044867189511148}
   - {fileID: 224110110965917306}
   - {fileID: 224847814436123234}
+  - {fileID: 224702851814715122}
   m_Father: {fileID: 224358377575468156}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -5805,7 +6354,7 @@ CanvasGroup:
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 1705255903785834}
+  m_GameObject: {fileID: 1025569937194234}
   m_Enabled: 1
   m_Alpha: 0
   m_Interactable: 0
@@ -5866,6 +6415,17 @@ CanvasGroup:
   m_Interactable: 1
   m_BlocksRaycasts: 1
   m_IgnoreParentGroups: 0
+--- !u!225 &225549482170922526
+CanvasGroup:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1006427425384980}
+  m_Enabled: 1
+  m_Alpha: 0
+  m_Interactable: 0
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
 --- !u!225 &225711268054836144
 CanvasGroup:
   m_ObjectHideFlags: 1

+ 294 - 0
Assets/Resource/Prefab/PrefabUI/MailItem.prefab

@@ -0,0 +1,294 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &100100000
+Prefab:
+  m_ObjectHideFlags: 1
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications: []
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 0}
+  m_RootGameObject: {fileID: 1648846713598210}
+  m_IsPrefabParent: 1
+--- !u!1 &1106609036188498
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224571280630113088}
+  - component: {fileID: 222011441835672298}
+  - component: {fileID: 114683399213544342}
+  m_Layer: 5
+  m_Name: Icon2
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1648846713598210
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224875051585414402}
+  - component: {fileID: 222684545360919032}
+  - component: {fileID: 114407301988669332}
+  m_Layer: 5
+  m_Name: MailItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1650592643924820
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224923826774362444}
+  - component: {fileID: 222001930416087314}
+  - component: {fileID: 114363837422987082}
+  m_Layer: 5
+  m_Name: Icon1
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &1687362140960934
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 224706107359982646}
+  - component: {fileID: 222091847606569542}
+  - component: {fileID: 114444284200601094}
+  m_Layer: 5
+  m_Name: Lab
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &114363837422987082
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1650592643924820}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!114 &114407301988669332
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1648846713598210}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 21300000, guid: 923ed5c7cc79e2f429661e75798e041b, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!114 &114444284200601094
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1687362140960934}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 0e86defab91f2fb4189708f6dde11005, type: 3}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 1
+    m_MinSize: 10
+    m_MaxSize: 14
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 3000
+--- !u!114 &114683399213544342
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1106609036188498}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+--- !u!222 &222001930416087314
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1650592643924820}
+--- !u!222 &222011441835672298
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1106609036188498}
+--- !u!222 &222091847606569542
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1687362140960934}
+--- !u!222 &222684545360919032
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1648846713598210}
+--- !u!224 &224571280630113088
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1106609036188498}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001}
+  m_Children: []
+  m_Father: {fileID: 224875051585414402}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -0.000030517578, y: 0.000015258789}
+  m_SizeDelta: {x: 52, y: 52}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224706107359982646
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1687362140960934}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 224875051585414402}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: 0, y: -15}
+  m_SizeDelta: {x: 36.3, y: 15.6}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224875051585414402
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1648846713598210}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 224571280630113088}
+  - {fileID: 224923826774362444}
+  - {fileID: 224706107359982646}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 75, y: 75}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!224 &224923826774362444
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1650592643924820}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 224875051585414402}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0.00000095367}
+  m_SizeDelta: {x: 52, y: 52}
+  m_Pivot: {x: 0.5, y: 0.5}

+ 8 - 0
Assets/Resource/Prefab/PrefabUI/MailItem.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9b0fa99244cc9c94fa53cbfd572e5f1b
+timeCreated: 1502334218
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: ui
+  assetBundleVariant: 

+ 2 - 2
Assets/Resource/Sprite/SpriteUI/通用界面.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 guid: 3f36639ac83ce4a489bd621d684ea1a5
-timeCreated: 1489031399
+timeCreated: 1502332903
 licenseType: Pro
 TextureImporter:
   fileIDToRecycleName: {}
@@ -39,7 +39,7 @@ TextureImporter:
   spriteMeshType: 1
   alignment: 0
   spritePivot: {x: 0.5, y: 0.5}
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteBorder: {x: 285, y: 0, z: 285, w: 185}
   spritePixelsToUnits: 100
   alphaUsage: 1
   alphaIsTransparency: 1

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

@@ -62,6 +62,8 @@
     <Bc_Lab desc=""><![CDATA[请选择一个]]></Bc_Lab>
     <Bc_Lab1 desc=""><![CDATA[获得了 ]]></Bc_Lab1>
     <Bc_ConfirmLab desc=""><![CDATA[确定]]></Bc_ConfirmLab>
+    <Bd_GetLab desc=""><![CDATA[确定]]></Bd_GetLab>
+    <Bd_Title desc=""><![CDATA[礼包奖励]]></Bd_Title>
     <L_Tit desc=""><![CDATA[设置]]></L_Tit>
     <L_UserTit desc=""><![CDATA[用户]]></L_UserTit>
     <L_ChangeLab desc=""><![CDATA[←这不是我]]></L_ChangeLab>
@@ -94,7 +96,7 @@
 
 音乐音效 十三叔
 
-程序 水
+程序 水
 ]]></Lc_CreditsContent>
     <M_Tit desc=""><![CDATA[成就]]></M_Tit>
     <J_Info0 desc=""><![CDATA[获得]]></J_Info0>
@@ -251,6 +253,7 @@
     <Star desc=""><![CDATA[小游戏冷却时间减少]]></Star>
   </Object>
   <Common>
+    <Get desc=""><![CDATA[获得]]></Get>
     <Coin desc=""><![CDATA[金币]]></Coin>
     <Diamond desc=""><![CDATA[钻石]]></Diamond>
     <Confirm desc=""><![CDATA[确定]]></Confirm>

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

@@ -62,6 +62,8 @@
     <Bc_Lab desc=""><![CDATA[請選擇一個]]></Bc_Lab>
     <Bc_Lab1 desc=""><![CDATA[獲得了 ]]></Bc_Lab1>
     <Bc_ConfirmLab desc=""><![CDATA[確定]]></Bc_ConfirmLab>
+    <Bd_GetLab desc=""><![CDATA[確定]]></Bd_GetLab>
+    <Bd_Title desc=""><![CDATA[禮包獎勵]]></Bd_Title>
     <L_Tit desc=""><![CDATA[設置]]></L_Tit>
     <L_UserTit desc=""><![CDATA[用戶]]></L_UserTit>
     <L_ChangeLab desc=""><![CDATA[←這不是我]]></L_ChangeLab>
@@ -94,7 +96,7 @@
 
 音樂音效 十三叔
 
-程式 水
+程式 水
 ]]></Lc_CreditsContent>
     <M_Tit desc=""><![CDATA[成就]]></M_Tit>
     <J_Info0 desc=""><![CDATA[獲得]]></J_Info0>
@@ -251,6 +253,7 @@
     <Star desc=""><![CDATA[小遊戲冷卻時間減少]]></Star>
   </Object>
   <Common>
+    <Get desc=""><![CDATA[觀獲]]></Get>
     <Coin desc=""><![CDATA[金幣]]></Coin>
     <Diamond desc=""><![CDATA[鉆石]]></Diamond>
     <Confirm desc=""><![CDATA[確定]]></Confirm>

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

@@ -62,6 +62,8 @@
     <Bc_Lab desc=""><![CDATA[Please pick one]]></Bc_Lab>
     <Bc_Lab1 desc=""><![CDATA[Get ]]></Bc_Lab1>
     <Bc_ConfirmLab desc=""><![CDATA[Confirm]]></Bc_ConfirmLab>
+    <Bd_GetLab desc=""><![CDATA[Confirm]]></Bd_GetLab>
+    <Bd_Title desc=""><![CDATA[Mail reward]]></Bd_Title>
     <L_Tit desc=""><![CDATA[Setting]]></L_Tit>
     <L_UserTit desc=""><![CDATA[User]]></L_UserTit>
     <L_ChangeLab desc=""><![CDATA[←Not Me]]></L_ChangeLab>
@@ -94,7 +96,7 @@ Arts 十三叔
 
 Music&Audio 十三叔
 
-Program 水
+Program 水
 ]]></Lc_CreditsContent>
     <M_Tit desc=""><![CDATA[Achievement]]></M_Tit>
     <J_Info0 desc=""><![CDATA[Get]]></J_Info0>
@@ -251,6 +253,7 @@ Increase all Coin prudoction by [&coin_person&](permanently)]]></Pack6>
     <Star desc=""><![CDATA[Reduce minigame cd ]]></Star>
   </Object>
   <Common>
+    <Get desc=""><![CDATA[Get]]></Get>
     <Coin desc=""><![CDATA[Coin]]></Coin>
     <Diamond desc=""><![CDATA[Diamond]]></Diamond>
     <Confirm desc=""><![CDATA[Confirm]]></Confirm>

BIN
Assets/Resource/Xlsx/language_config.xlsx


+ 4 - 5
Assets/Script/Manage/Initializer.cs

@@ -24,7 +24,6 @@ public class Initializer : MonoBehaviour
 
     #endregion
 
-
     private void Awake()
     {
         if (Application.platform == RuntimePlatform.IPhonePlayer)
@@ -45,7 +44,7 @@ public class Initializer : MonoBehaviour
         DontDestroyOnLoad(gameObject);
 
         ManaServer.Login(ManaCenter.LoginCallbackInitial);
-        ManaServer.GetRewardXml();
+        ManaServer.MailRequest();
 
         Instance = this;
         Transform = transform;
@@ -142,15 +141,15 @@ public class Initializer : MonoBehaviour
         GameObject.Find("I_Lab").GetComponent<Text>().text = "Error code : 6";
 
         Complete = true;
-        
+
+        ManaPlayer.InitializeDressRoom();
+
         ManaCenter.LoginCallbackInitial(new JsonData());
         
         ManaIAP.Initialize();
 
         ManaVisit.Initialize();
 
-        ManaPlayer.InitializeDressRoom();
-
         ManaReso.Get("I_BlackMask").TweenForCG();
 
         ManaReso.SetActive("I_Lab", false);

+ 3 - 35
Assets/Script/Manage/ManaCenter.cs

@@ -552,17 +552,8 @@ public class ManaCenter : Regist
 
         RegistSkill(false);
         RegistIncome();
-        
-        if (OfflineLock)
-        {
-            if (!ManaTutorial.TutorialA && !ManaTutorial.TutorialB)
-            {
-                ManaReso.Get("C_Group").TweenBacCG();
 
-                ManaReso.Get("B_SignIn").TweenForCG();
-                ManaReso.Get("Ba_Notice").TweenForCG();
-            }
-        }
+        ManaSign.ShowOfflineReward();
     }
 
     public override void Instantiate()
@@ -1011,31 +1002,7 @@ public class ManaCenter : Regist
         RegistSkill(true);
         RegistIncome();
 
-
-        if (OfflineLock)
-        {
-            if (!ManaTutorial.TutorialA)
-            {
-                ManaReso.Get("B_SignIn").TweenForCG();
-                ManaReso.Get("Ba_Notice").TweenForCG();
-            }
-        }
-        else
-        {
-            if (!ManaTutorial.TutorialA && ManaData.GetPlayerBool("QuitFlag") && ManaServer.Connect)
-            {
-                int daySpan = ManaServer.Time.Day - ManaSign.SignTime.Day;
-                int yearSpan = ManaServer.Time.Year - ManaSign.SignTime.Year;
-                int monthSpan = ManaServer.Time.Month - ManaSign.SignTime.Month;
-
-                if (daySpan >= 1 || yearSpan >= 1 || monthSpan >= 1)
-                {
-                    ManaReso.Get("B_SignIn").TweenForCG();
-                    ManaReso.Get("Bb_SignIn").TweenForCG();
-                }
-            }
-        }
-
+        ManaSign.ShowOfflineReward();
 
         Analytics.SetUserId(ManaServer.ID);
 
@@ -1169,6 +1136,7 @@ public class ManaCenter : Regist
                 LoginLock = true;
 
                 ManaServer.Login(LoginCallbackReactive);
+                ManaServer.MailRequest();
             }
         }
     }

+ 1 - 1
Assets/Script/Manage/ManaIAP.cs

@@ -53,7 +53,7 @@ public class ManaIAP : MonoBehaviour, IStoreListener
     public static void Initialize()
     {
         InitializeAD();
-
+        
         GameObject.Find("I_Lab").GetComponent<Text>().text = "AD";
 
         InitializeIAP();

+ 4 - 4
Assets/Script/Manage/ManaMiniGame.cs

@@ -941,9 +941,9 @@ public class ManaMiniGame : Regist
         {
             Flower flower = IdleList.Find(tempFlower => { return tempFlower.ID == id; });
 
-            ManaReso.GetHudText("+50", Color.white, 90, flower.ChildDic["ScorePosTra"], ManaReso.Get("D_HudParent"), true);
+            ManaReso.GetHudText("+40", Color.white, 90, flower.ChildDic["ScorePosTra"], ManaReso.Get("D_HudParent"), true);
 
-            Score += 50;
+            Score += 40;
 
             flower.PlayFlashLight();
 
@@ -994,9 +994,9 @@ public class ManaMiniGame : Regist
 
             Flower flower = FlowerDic[slotIndex];
 
-            ManaReso.GetHudText("+30", Color.white, 90, flower.ChildDic["ScorePosTra"], ManaReso.Get("D_HudParent"), true);
+            ManaReso.GetHudText("+20", Color.white, 90, flower.ChildDic["ScorePosTra"], ManaReso.Get("D_HudParent"), true);
 
-            Score += 30;
+            Score += 20;
 
             flower.PlayFlashLight();
 

+ 0 - 11
Assets/Script/Manage/ManaPlayer.cs

@@ -23,7 +23,6 @@ public class ManaPlayer : Regist
     #region 变量
 
     public static bool Complete;
-    public static bool DressRoomInitialized;
     public static Transform SeleTra;
 
     public static Player Player;
@@ -121,14 +120,6 @@ public class ManaPlayer : Regist
 
     public static void InitializeDressRoom()
     {
-        if (DressRoomInitialized)
-        {
-            return;
-        }
-
-        DressRoomInitialized = true;
-
-
         if (Initializer.Instance.DebugMode)
         {
             #if UNITY_EDITOR
@@ -196,8 +187,6 @@ public class ManaPlayer : Regist
         {
             CloseUnitDic[BoughtCloseList[i]].Unlock();
         }
-
-        ManaReso.SetActive("I_Lab", false);
     }
 
 

+ 1 - 0
Assets/Script/Manage/ManaReso.cs

@@ -50,6 +50,7 @@ public enum ObjType
     MainCamera,
 
     HudText,
+    MailItem,
     InfoItem,
     SkillItem,
     SignItem,

+ 189 - 42
Assets/Script/Manage/ManaServer.cs

@@ -11,6 +11,7 @@ using System.Text;
 using System.Net.Mail;
 using System.Collections;
 using System.Collections.Generic;
+using Random = UnityEngine.Random;
 
 public class MyCredentials : ICredentialsByHost
 {
@@ -29,6 +30,20 @@ public class MyCredentials : ICredentialsByHost
 
 public class ManaServer : Regist
 {
+    public class MailReward
+    {
+        public string Id;
+        public string Key;
+        public string Value;
+
+        public MailReward(string id, string key, string value)
+        {
+            Id = id;
+            Key = key;
+            Value = value;
+        }
+    }
+
     #region 变量
 
     public static bool Connect
@@ -87,6 +102,9 @@ public class ManaServer : Regist
     public static JsonData JsonData;
     public static DateTime Time;
 
+    public static string MailXml;
+    public static List<MailReward> MailRewardList = new List<MailReward>();
+
     #endregion
 
     public void Update()
@@ -127,85 +145,211 @@ public class ManaServer : Regist
     }
 
 
-    public static void GetReward(XmlNode xmlNode)
+    public static void MailRequest()
+    {
+        URLRequestData urlData = new URLRequestData();
+
+        URLRequest.CreateStrURLRequest
+            (
+                "https://garden.dashgame.com/xml/mail.xml",
+                urlData,
+                data =>
+                {
+                    MailXml = data;
+                }
+            );
+    }
+
+    public static void GetMainReward()
+    {
+        for (int i = 0; i < MailRewardList.Count; i++)
+        {
+            GetMainReward(MailRewardList[i]);
+        }
+    }
+
+    private static void GetMainReward(MailReward mailReward)
     {
-        if (xmlNode.Name == "pack")
+        ManaData.SavePlayerString("OneTimeReward", $"{ManaData.GetPlayerString("OneTimeReward")} {mailReward.Id}".Trim(' '));
+
+        if (mailReward.Key == "pack")
         {
-            UnityAction unityAction;
+            SkillRoot skillRoot;
 
-            if (ManaIAP.ProductActionDic.TryGetValue($"Pack{xmlNode.Value}", out unityAction))
+            if (ManaCenter.SkillDic.TryGetValue($"Pack{mailReward.Value}", out skillRoot))
             {
-                unityAction.Invoke();
+                Pack pack = (Pack) skillRoot;
+
+                pack.PurchaseResult();
+
+                Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
+
+                float newSpriteSize = 0.35f;
+
+                mailItem.GetChild(1).SetActive(false);
+
+                mailItem.GetChild(0).GetComponent<Image>().sprite = pack.Icon;
+
+                mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
+
+                mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
+
+                mailItem.GetChild(2).GetComponent<Text>().text = pack.Name;
+
+                ManaInfo.Show($"{Language.GetStr("Common", "Get")} {pack.Name}", 10);
             }
             else
             {
-                Debug.LogWarning("Unknown id");
+                Debug.LogWarning($"Unknown id {mailReward.Value}");
             }
         }
-        else if (xmlNode.Name == "close")
+        else if (mailReward.Key == "close")
         {
-            int id = int.Parse(xmlNode.Value);
+            List<int> idList = Auxiliary.IntListParse(' ', mailReward.Value, new List<int>());
             CloseUnit closeUnit;
 
-            if (ManaPlayer.CloseUnitDic.TryGetValue(id, out closeUnit))
+            for (int i = 0; i < idList.Count; i++)
             {
-                closeUnit.Unlock();
+                if (ManaPlayer.CloseUnitDic.TryGetValue(idList[i], out closeUnit))
+                {
+                    if (closeUnit.Bought == false)
+                    {
+                        closeUnit.Unlock();
 
-                ManaPlayer.BoughtCloseList.UniqueAdd(id);
-            }
-            else
-            {
-                Debug.LogWarning("Unknown id");
+                        ManaPlayer.BoughtCloseList.UniqueAdd(idList[i]);
+                    }
+
+                    Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
+
+                    float newSize = 0.6f;
+                    float newSpriteSize = closeUnit.PixelSize * newSize / closeUnit.Sprites[0].rect.width;
+
+                    mailItem.GetChild(1).GetComponent<Image>().sprite = closeUnit.Sprites[0];
+
+                    mailItem.GetChild(1).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
+
+                    mailItem.GetChild(1).transform.localPosition = new Vector2(0, closeUnit.IconOffset * newSize);
+
+                    if (closeUnit.Sprites.Length > 1)
+                    {
+                        mailItem.GetChild(0).SetActive(true);
+                        mailItem.GetChild(0).GetComponent<Image>().sprite = closeUnit.Sprites[1];
+                        mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
+                        mailItem.GetChild(0).transform.localPosition = closeUnit.IconOffset1 * newSpriteSize + new Vector2(0, closeUnit.IconOffset * newSize);
+                    }
+                    else
+                    {
+                        mailItem.GetChild(0).SetActive(false);
+                    }
+
+                    mailItem.GetChild(2).GetComponent<Text>().text = closeUnit.Name;
+
+                    ManaInfo.Show($"{Language.GetStr("Common", "Get")} {closeUnit.Name}", 10);
+                }
+                else
+                {
+                    Debug.LogWarning($"Unknown id {idList[i]}");
+                }
             }
         }
-        else if (xmlNode.Name == "flower")
+        else if (mailReward.Key == "flower")
         {
-            int id = int.Parse(xmlNode.Value);
+            List<int> idList = Auxiliary.IntListParse(' ', mailReward.Value, new List<int>());
             FlowerInfo flowerInfo;
 
-            if (ManaGarden.FlowerInfoDic.TryGetValue(id, out flowerInfo))
+            for (int i = 0; i < idList.Count; i++)
             {
-                if (flowerInfo.Unlock == false)
+                if (ManaGarden.FlowerInfoDic.TryGetValue(idList[i], out flowerInfo))
+                {
+                    if (flowerInfo.Unlock == false)
+                    {
+                        flowerInfo.Unlock = true;
+                    }
+
+                    Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
+
+                    float newSpriteSize = 0.18f;
+
+                    mailItem.GetChild(1).SetActive(false);
+
+                    mailItem.GetChild(0).GetComponent<Image>().sprite = flowerInfo.Icon;
+
+                    mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
+
+                    mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
+
+                    mailItem.GetChild(2).GetComponent<Text>().text = flowerInfo.Name;
+
+                    ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(花朵)>{flowerInfo.Name}", 10);
+                }
+                else
                 {
-                    flowerInfo.Unlock = true;
+                    Debug.LogWarning($"Unknown id {idList[i]}");
                 }
             }
-            else
-            {
-                Debug.LogWarning("Unknown id");
-            }
         }
-        else if (xmlNode.Name == "coin")
+        else if (mailReward.Key == "coin")
         {
-            ManaCenter.AddCoin(double.Parse(xmlNode.Value), StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.ServerReward);
+            ManaCenter.AddCoin(double.Parse(mailReward.Value), StaticsManager.ItemID.获得金币, StaticsManager.ConsumeModule.Mail);
+
+            Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
+
+            float newSpriteSize = 0.75f;
+
+            mailItem.GetChild(1).SetActive(false);
+
+            mailItem.GetChild(0).GetComponent<Image>().sprite = ManaReso.LoadSprite("金币", Folder.UI);
+
+            mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
+
+            mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
+
+            mailItem.GetChild(2).GetComponent<Text>().text = Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value));
+
+            ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(金币)>{Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value))}", 10);
         }
-        else if (xmlNode.Name == "diamond")
+        else if (mailReward.Key == "diamond")
         {
-            ManaCenter.AddDiamond(double.Parse(xmlNode.Value), StaticsManager.ItemID.获得钻石, StaticsManager.ConsumeModule.ServerReward);
-        }
-    }
+            ManaCenter.AddDiamond(double.Parse(mailReward.Value), StaticsManager.ItemID.获得钻石, StaticsManager.ConsumeModule.Mail);
 
-    public static void GetRewardXml()
-    {
-        URLRequestData urlData = new URLRequestData();
+            Transform mailItem = ManaReso.Get("MailItem", Folder.UI, false, ManaReso.Get("Bd_Grid"), new Vector3(), ObjType.MailItem);
+
+            float newSpriteSize = 0.75f;
+
+            mailItem.GetChild(1).SetActive(false);
+
+            mailItem.GetChild(0).GetComponent<Image>().sprite = ManaReso.LoadSprite("钻石", Folder.UI);
+
+            mailItem.GetChild(0).GetComponent<Image>().Resize(true, newSpriteSize, newSpriteSize);
 
-        URLRequest.CreateStrURLRequest("https://garden.dashgame.com/xml/mail.xml", urlData, (data => Debug.Log(data)), URLRequest.Method.GET);
+            mailItem.GetChild(0).transform.localPosition = new Vector2(0, 0);
+
+            mailItem.GetChild(2).GetComponent<Text>().text = Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value));
+
+            ManaInfo.Show($"{Language.GetStr("Common", "Get")} <(钻石)>{Auxiliary.ShrinkNumberStr(double.Parse(mailReward.Value))}", 10);
+        }
+        else
+        {
+            Debug.Log(mailReward.Key);
+        }
     }
 
-    public static void DecodeRewardXml(string rewardXml)
+    public static void DecodeMailXml(string mailXml)
     {
+        MailRewardList = new List<MailReward>();
+
         XmlDocument xmlDoc = new XmlDocument();
 
-        xmlDoc.LoadXml(rewardXml);
+        xmlDoc.LoadXml(mailXml);
 
-        XmlNodeList rewardNodeList = xmlDoc.SelectNodes("OneTimeReward");
+        XmlNodeList rewardNodeList = xmlDoc.SelectSingleNode("mail").SelectNodes("OneTimeReward");
 
         List<string> receivedIdList = Auxiliary.StringListParse(' ', ManaData.GetPlayerString("OneTimeReward"), new List<string>());
 
         for (int i = 0; i < rewardNodeList.Count; i++)
         {
-            string id = rewardNodeList[i].SelectSingleNode("id").Value;
-
+            string id = rewardNodeList[i].SelectSingleNode("id").InnerText;
+            
             if (receivedIdList.Contains(id))
             {
                 continue;
@@ -215,11 +359,14 @@ public class ManaServer : Regist
 
             for (int j = 0; j < targetIdNodeList.Count; j++)
             {
-                if (targetIdNodeList[i].Value == ID)
+                if (targetIdNodeList[j].InnerText.ToLower() == ID.ToLower())
                 {
-                    GetReward(rewardNodeList[i].SelectSingleNode("reward"));
+                    XmlNodeList xmlNodeList = rewardNodeList[i].SelectSingleNode("reward").ChildNodes;
 
-                    ManaData.SavePlayerString("OneTimeReward", $"{ManaData.GetPlayerString("OneTimeReward")} id".Trim(' '));
+                    for (int k = 0; k < xmlNodeList.Count; k++)
+                    {
+                        MailRewardList.Add(new MailReward(id, xmlNodeList[k].Name, xmlNodeList[k].InnerText));
+                    }
 
                     break;
                 }

+ 84 - 2
Assets/Script/Manage/ManaSign.cs

@@ -673,7 +673,7 @@ public class Lottery
 
             ManaPlayer.BoughtCloseList.UniqueAdd(Value);
 
-            ManaReso.SetText("Bc_Lab", Language.GetStr("UI", "Bc_Lab1") + ManaPlayer.CloseUnitDic[Value].Description);
+            ManaReso.SetText("Bc_Lab", Language.GetStr("UI", "Bc_Lab1") + ManaPlayer.CloseUnitDic[Value].Name);
         }
     }
 }
@@ -690,13 +690,95 @@ public class ManaSign : Regist
 
     #endregion
 
-    public static void Get()
+    public static bool ShowOfflineReward()
+    {
+        if (ShowOfflineIncomReward())
+        {
+            return true;
+        }
+
+        if (ShowMailReward())
+        {
+            return true;
+        }
+
+        if (ShowSignReward())
+        {
+            return true;
+        }
+
+        return false;
+    }
+
+    public static bool ShowOfflineIncomReward()
+    {
+        if (ManaCenter.OfflineLock)
+        {
+            if (!ManaTutorial.TutorialA)
+            {
+                ManaReso.Get("C_Group").TweenBacCG();
+
+                ManaReso.Get("B_SignIn").TweenForCG();
+                ManaReso.Get("Ba_Notice").TweenForCG();
+
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public static bool ShowMailReward()
+    {
+        ManaServer.DecodeMailXml(ManaServer.MailXml);
+
+        if (ManaServer.MailRewardList.Count > 0)
+        {
+            if (!ManaTutorial.TutorialA)
+            {
+                ManaServer.GetMainReward();
+
+                ManaReso.Get("C_Group").TweenBacCG();
+
+                ManaReso.Get("B_SignIn").TweenForCG();
+                ManaReso.Get("Bd_Mail0").TweenForCG();
+
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public static bool ShowSignReward()
+    {
+        if (!ManaTutorial.TutorialA && ManaData.GetPlayerBool("QuitFlag") && ManaServer.Connect)
+        {
+            int daySpan = ManaServer.Time.Day - ManaSign.SignTime.Day;
+            int yearSpan = ManaServer.Time.Year - ManaSign.SignTime.Year;
+            int monthSpan = ManaServer.Time.Month - ManaSign.SignTime.Month;
+
+            if (daySpan >= 1 || yearSpan >= 1 || monthSpan >= 1)
+            {
+                ManaReso.Get("B_SignIn").TweenForCG();
+                ManaReso.Get("Bb_SignIn").TweenForCG();
+
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+
+    public static void GetSignReward()
     {
         SignDic[SignIndex].Get();
 
         ManaCenter.SignAmt++;
     }
 
+
     public override void RegistValueB()
     {
         SignTime = DateTime.Parse(ManaData.GetPlayerString("SignTime"));

+ 42 - 12
Assets/Script/Manage/ManaUI.cs

@@ -102,6 +102,9 @@ public class ManaUI : Regist
         ManaLan.Add(ManaReso.Get<Text>("Bc_Lab"), new LanStr("UI", "Bc_Lab"));
         ManaLan.Add(ManaReso.Get<Text>("Bc_ConfirmLab"), new LanStr("UI", "Bc_ConfirmLab"));
 
+        ManaLan.Add(ManaReso.Get<Text>("Bd_GetLab"), new LanStr("UI", "Bd_GetLab"));
+        ManaLan.Add(ManaReso.Get<Text>("Bd_Title"), new LanStr("UI", "Bd_Title"));
+
         #region B_SignIn
 
         TweenRoot tween = ManaReso.Get("B_SignIn").CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad);
@@ -142,21 +145,13 @@ public class ManaUI : Regist
             {
                 ManaAudio.PlayClip(Clip.CurrentClip);
 
-                int daySpan = ManaServer.Time.Day - ManaSign.SignTime.Day;
-                int yearSpan = ManaServer.Time.Year - ManaSign.SignTime.Year;
-                int monthSpan = ManaServer.Time.Month - ManaSign.SignTime.Month;
+                ManaReso.Get("Ba_Notice").TweenBacCG();
 
-                if (daySpan >= 1 || yearSpan >= 1 || monthSpan >= 1)
-                {
-                    ManaReso.Get("Ba_Notice").TweenBacCG();
-                    ManaReso.Get("Bb_SignIn").TweenForCG();
+                ManaCenter.OfflineLock = false;
 
-                    ManaReso.SetActive("Ba_Notice", false);
-                }
-                else
+                if (!ManaSign.ShowOfflineReward())
                 {
                     ManaReso.Get("B_SignIn").TweenBacCG();
-                    ManaReso.Get("Ba_Notice").TweenBacCG();
                 }
             }
         );
@@ -171,7 +166,7 @@ public class ManaUI : Regist
             "Bb_Get",
             () =>
             {
-                ManaSign.Get();
+                ManaSign.GetSignReward();
             }
         );
 
@@ -239,6 +234,41 @@ public class ManaUI : Regist
 
         #endregion
 
+
+        #region Bd_Get
+
+        ManaReso.AddButtonEvent
+            (
+                "Bd_Get",
+                () =>
+                {
+                    ManaAudio.PlayClip(Clip.BtnClip);
+
+                    ManaReso.Get("Bd_Mail0").TweenBacCG();
+
+                    if (!ManaSign.ShowOfflineReward())
+                    {
+                        ManaReso.Get("B_SignIn").TweenBacCG();
+                    }
+                }
+            );
+
+        #endregion
+
+        #region Bd_Mail0
+
+        TweenRoot tweenRoot9 = ManaReso.Get("Bd_Mail0").CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tweenRoot9.OnBackwardFinish = () =>
+        {
+            for (int i = 0; i < ManaReso.Get("Bd_Grid").childCount; i++)
+            {
+                ManaReso.Save(ManaReso.Get("Bd_Grid").GetChild(i--));
+            }
+        };
+
+        #endregion
+
         #endregion
 
         #region C

+ 4 - 23
Assets/Script/Object/Player.cs

@@ -39,7 +39,7 @@ public class CloseUnit
 
     #region Var
 
-    public string Description
+    public string Name
     {
         get { return Language.GetStr("DressRoom", "Armature" + ID); }
     }
@@ -193,7 +193,7 @@ public class CloseUnit
                     ManaReso.SetActive("Pa_Icon1", false);
                 }
 
-                ManaReso.SetText("Pa_Lab", Description);
+                ManaReso.SetText("Pa_Lab", Name);
                 ManaReso.SetText("Pa_BtnLab", Language.GetStr("UI", "Pa_BtnLab") + Auxiliary.ImageParse(BuyCurrent) + BuyAmt);
 
                 ManaReso.SetButtonEvent
@@ -318,7 +318,7 @@ public class CloseUnit
                     Unlock();
 
                     ManaAudio.PlayClip(Clip.CurrentClip);
-
+                    Debug.Log(ID);
                     ManaPlayer.BoughtCloseList.UniqueAdd(ID);
 
                     ManaReso.Get("Pa_Info").TweenBacCG();
@@ -731,26 +731,7 @@ public class Player : Regist , IPointerClickHandler
                 EventType.ForwardFinish,
                 () =>
                 {
-                    if (!ManaPlayer.DressRoomInitialized)
-                    {
-                        ManaReso.SetText("I_Lab", Language.GetStr("UI", "I_Lab"));
-                        ManaReso.SetActive("I_Lab", true);
-
-                        Auxiliary.Instance.DelayCall
-                        (
-                            () =>
-                            {
-                                ManaPlayer.InitializeDressRoom();
-
-                                ManaReso.Get("I_BlackMask").TweenForCG();
-                            },
-                            1
-                        );
-                    }
-                    else
-                    {
-                        ManaReso.Get("I_BlackMask").TweenForCG();
-                    }
+                    ManaReso.Get("I_BlackMask").TweenForCG();
                 }
             );
     }

+ 1 - 1
Assets/Script/Object/Skill/Pack.cs

@@ -303,7 +303,7 @@ public class Pack : SkillRoot
         ManaCenter.Pay(ID, UseAmt, BuyCur, PurchaseResult, StaticsManager.ItemID.购买礼包,  StaticsManager.ConsumeModule.Charge);
     }
 
-    protected void PurchaseResult()
+    public void PurchaseResult()
     {
         int tempCoin = 0;
         int tempDiamond = (int) DiamondOnce;

+ 1 - 1
Assets/Script/ThirdParty/DataEyeStatics/StaticsManager.cs

@@ -258,7 +258,7 @@ public class StaticsManager
         Achieve,
         Income,
         ClickFlower,
-        ServerReward,
+        Mail,
     }
 
     public static string GetStringByConsumeModule(ConsumeModule module)

+ 5 - 1
Assets/Script/Tool/Auxiliary.cs

@@ -183,11 +183,15 @@ public class Auxiliary : Regist
         if (Input.GetKeyDown(KeyCode.C))
         {
             ManaMiniGame.Score = 1000;
+
+            ManaSign.SignTime = new DateTime(2007, 1, 1);
         }
 
         if (Input.GetKeyDown(KeyCode.V))
         {
-            ManaGarden.ElfTimer = 0;
+            //ManaGarden.ElfTimer = 0;
+
+            ManaServer.Time = new DateTime(2007,1,1);
         }
 
         //if (Input.GetKeyDown(KeyCode.P))

+ 3 - 3
ProjectSettings/GraphicsSettings.asset

@@ -43,13 +43,13 @@ GraphicsSettings:
     type: 0}
   m_TierSettings_Tier1:
     renderingPath: 1
-    useCascadedShadowMaps: 0
+    useCascadedShadowMaps: 1
   m_TierSettings_Tier2:
     renderingPath: 1
-    useCascadedShadowMaps: 0
+    useCascadedShadowMaps: 1
   m_TierSettings_Tier3:
     renderingPath: 1
-    useCascadedShadowMaps: 0
+    useCascadedShadowMaps: 1
   m_DefaultRenderingPath: 1
   m_DefaultMobileRenderingPath: 1
   m_TierSettings: []

+ 5 - 4
ToList.txt

@@ -1,13 +1,14 @@
-蜜蜂和按钮使用高画质
+ManaInfo中礼包和服装的图标
 
-没有解锁的花也出来了
 
+蜜蜂和按钮使用高画质(在PlayerBuilder中设置)
+
+没有解锁的花也出来了
 
-服务器奖励
 
 超值热卖的遮挡
 
-苹果的本地化
+苹果的本地化(在PlayerBuilder中设置)
 
 分享appid