LiuQilin 8 years ago
parent
commit
47b27c2e69
46 changed files with 1148 additions and 77 deletions
  1. BIN
      .vs/MyLovelyGarden/v14/.suo
  2. BIN
      Assets/Resource/Garden.unity
  3. BIN
      Assets/Resource/Prefab/Object/Bird.prefab
  4. BIN
      Assets/Resource/Prefab/Object/Garden.prefab
  5. BIN
      Assets/Resource/Prefab/Object/Player.prefab
  6. BIN
      Assets/Resource/Prefab/Object/PlayerBlond.prefab
  7. 2 2
      Assets/Resource/Prefab/Object/PlayerBlond.prefab.meta
  8. BIN
      Assets/Resource/Prefab/Object/PlayerBrown.prefab
  9. 8 0
      Assets/Resource/Prefab/Object/PlayerBrown.prefab.meta
  10. BIN
      Assets/Resource/Prefab/Object/PlayerPink.prefab
  11. 8 0
      Assets/Resource/Prefab/Object/PlayerPink.prefab.meta
  12. BIN
      Assets/Resource/Prefab/Object/Rainbow.prefab
  13. 8 0
      Assets/Resource/Prefab/Object/Rainbow.prefab.meta
  14. BIN
      Assets/Resource/Prefab/Object/Tree1.prefab
  15. 8 0
      Assets/Resource/Prefab/Object/Tree1.prefab.meta
  16. BIN
      Assets/Resource/Prefab/Object/Tutorial.prefab
  17. 8 0
      Assets/Resource/Prefab/Object/Tutorial.prefab.meta
  18. BIN
      Assets/Resource/Prefab/PrefabUI/Canvas.prefab
  19. BIN
      Assets/Resource/Sprite/SpriteUI/选人物.png
  20. 68 0
      Assets/Resource/Sprite/SpriteUI/选人物.png.meta
  21. 3 3
      Assets/Resource/XML/Config/ability_config.xml
  22. 6 4
      Assets/Resource/XML/PlayerConfig.xml
  23. BIN
      Assets/Resource/Xlsx/ability_config.xlsx
  24. 16 0
      Assets/Script/Interface/Regist.cs
  25. 38 0
      Assets/Script/Manage/Initializer.cs
  26. 70 8
      Assets/Script/Manage/ManaAnim.cs
  27. 17 2
      Assets/Script/Manage/ManaAudio.cs
  28. 52 6
      Assets/Script/Manage/ManaData.cs
  29. 28 0
      Assets/Script/Manage/ManaGarden.cs
  30. 11 1
      Assets/Script/Manage/ManaMiniGame.cs
  31. 25 1
      Assets/Script/Manage/ManaPlayer.cs
  32. 5 0
      Assets/Script/Manage/ManaReso.cs
  33. 24 0
      Assets/Script/Manage/ManaTutorial.cs
  34. 12 0
      Assets/Script/Manage/ManaTutorial.cs.meta
  35. 297 3
      Assets/Script/Manage/ManaUI.cs
  36. 1 1
      Assets/Script/Object/Drop.cs
  37. 5 5
      Assets/Script/Object/Flower.cs
  38. 222 26
      Assets/Script/Object/Garden.cs
  39. 16 2
      Assets/Script/Object/Player.cs
  40. 1 1
      Assets/Script/Object/Skill/Ability.cs
  41. 95 0
      Assets/Script/Object/Tutorial.cs
  42. 12 0
      Assets/Script/Object/Tutorial.cs.meta
  43. 47 4
      Assets/Script/Tool/Anim/TweenSr.cs
  44. 2 0
      Assets/Script/Tool/Data.cs
  45. 18 8
      Assets/Script/Tool/Extension.cs
  46. 15 0
      ToList.txt

BIN
.vs/MyLovelyGarden/v14/.suo


BIN
Assets/Resource/Garden.unity


BIN
Assets/Resource/Prefab/Object/Bird.prefab


BIN
Assets/Resource/Prefab/Object/Garden.prefab


BIN
Assets/Resource/Prefab/Object/Player.prefab


BIN
Assets/Resource/Prefab/Object/PlayerBlond.prefab


+ 2 - 2
Assets/Resource/Prefab/Object/Player.prefab.meta → Assets/Resource/Prefab/Object/PlayerBlond.prefab.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 18dbc98b4def64543ae0446a3e9161dd
-timeCreated: 1486109166
+guid: 034390a4ac0a8aa40863954a4a717afb
+timeCreated: 1491546640
 licenseType: Pro
 NativeFormatImporter:
   userData: 

BIN
Assets/Resource/Prefab/Object/PlayerBrown.prefab


+ 8 - 0
Assets/Resource/Prefab/Object/PlayerBrown.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2fc7256d7588e94469bd74d102d11966
+timeCreated: 1491546763
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: character
+  assetBundleVariant: 

BIN
Assets/Resource/Prefab/Object/PlayerPink.prefab


+ 8 - 0
Assets/Resource/Prefab/Object/PlayerPink.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 76da3d6b0e15306438d82fd66f45af1e
+timeCreated: 1491546826
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: character
+  assetBundleVariant: 

BIN
Assets/Resource/Prefab/Object/Rainbow.prefab


+ 8 - 0
Assets/Resource/Prefab/Object/Rainbow.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a28a704ccbf175047ad15a4a16d14bbf
+timeCreated: 1491544901
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resource/Prefab/Object/Tree1.prefab


+ 8 - 0
Assets/Resource/Prefab/Object/Tree1.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 92a79239ced61d94cbb147bbe7f3f95f
+timeCreated: 1491545441
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resource/Prefab/Object/Tutorial.prefab


+ 8 - 0
Assets/Resource/Prefab/Object/Tutorial.prefab.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8dca2c526a81c534ab9271aa85c7fe34
+timeCreated: 1491551640
+licenseType: Pro
+NativeFormatImporter:
+  userData: 
+  assetBundleName: object
+  assetBundleVariant: 

BIN
Assets/Resource/Prefab/PrefabUI/Canvas.prefab


BIN
Assets/Resource/Sprite/SpriteUI/选人物.png


+ 68 - 0
Assets/Resource/Sprite/SpriteUI/选人物.png.meta

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: bfb3173e7593a7a49812a35b653f1f68
+timeCreated: 1491548881
+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 - 3
Assets/Resource/XML/Config/ability_config.xml

@@ -1,8 +1,8 @@
 <data>
   <item id="1" name="花园" class="1" class_id="1" coin_person="1" person="1" skill_cd="" unlock_lv="" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="1" upgrade_amnt="200" upgrade_fml="a*1.07" upgrade_plus="10%" upgrade_person="10%" upgrade_cd="" desc="每人次收入 金币[&amp;coin_person&amp;][lv],每分钟来访[&amp;person&amp;*60][lv]人" icon="红-公园" anim="" label="" />
-  <item id="2" name="缤纷彩虹" class="1" class_id="5" coin_person="" person="50%" skill_cd="" unlock_lv="200" unlock_ahead_cur="2" unlock_ahead_amt="200" unlock_cur="" unlock_amnt="100" unlock_pos="" upgrade_cur="2" upgrade_amnt="" upgrade_fml="a" upgrade_plus="" upgrade_person="50%" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60][lv]人参观,永久有效" icon="红-彩虹" anim="" label="" />
-  <item id="3" name="玉树樱花" class="1" class_id="6" coin_person="50%" person="" skill_cd="" unlock_lv="500" unlock_ahead_cur="2" unlock_ahead_amt="300" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="50%" upgrade_person="" upgrade_cd="" desc="每人次收入提升[&amp;coin_person&amp;][lv],永久有效" icon="红-樱花树" anim="" label="" />
-  <item id="4" name="滴哩哩的小黄鹂" class="1" class_id="7" coin_person="" person="" skill_cd="5%" unlock_lv="" unlock_ahead_cur="2" unlock_ahead_amt="500" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_cd="5%" desc="技能冷却时间减少[&amp;skill_cd&amp;][lv],永久有效" icon="红-黄鹂鸟" anim="Bird,GardenBk4" label="" />
+  <item id="2" name="缤纷彩虹" class="1" class_id="5" coin_person="" person="50%" skill_cd="" unlock_lv="200" unlock_ahead_cur="2" unlock_ahead_amt="200" unlock_cur="" unlock_amnt="100" unlock_pos="" upgrade_cur="2" upgrade_amnt="" upgrade_fml="a" upgrade_plus="" upgrade_person="50%" upgrade_cd="" desc="每分钟增加[&amp;person&amp;*60][lv]人参观,永久有效" icon="红-彩虹" anim="Rainbow,GardenBk2" label="" />
+  <item id="3" name="玉树樱花" class="1" class_id="6" coin_person="50%" person="" skill_cd="" unlock_lv="500" unlock_ahead_cur="2" unlock_ahead_amt="300" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="50%" upgrade_person="" upgrade_cd="" desc="每人次收入提升[&amp;coin_person&amp;][lv],永久有效" icon="红-樱花树" anim="Tree1,GardenBk4" label="" />
+  <item id="4" name="滴哩哩的小黄鹂" class="1" class_id="7" coin_person="" person="" skill_cd="5%" unlock_lv="10" unlock_ahead_cur="2" unlock_ahead_amt="500" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="2" upgrade_amnt="300" upgrade_fml="a" upgrade_plus="" upgrade_person="" upgrade_cd="5%" desc="技能冷却时间减少[&amp;skill_cd&amp;][lv],永久有效" icon="红-黄鹂鸟" anim="Bird,GardenBk4" label="" />
   <item id="5" name="黄色小蜜蜂" class="2" class_id="1" coin_person="10" person="" skill_cd="" unlock_lv="200" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="" upgrade_cur="1" upgrade_amnt="1600" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-黄色蜜蜂" anim="BeeYellow" label="" />
   <item id="6" name="紫色小蜜蜂" class="2" class_id="2" coin_person="10" person="" skill_cd="" unlock_lv="200" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="86400" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-紫色蜜蜂" anim="BeePurple" label="" />
   <item id="7" name="蓝色小蜜蜂" class="2" class_id="3" coin_person="10" person="" skill_cd="" unlock_lv="200" unlock_ahead_cur="" unlock_ahead_amt="" unlock_cur="" unlock_amnt="" unlock_pos="1" upgrade_cur="1" upgrade_amnt="22118000" upgrade_fml="a*1.07" upgrade_plus="10" upgrade_person="" upgrade_cd="" desc="每人次参观获得[&amp;coin_person&amp;][lv]金币" icon="黄-蓝色蜜蜂" anim="BeeBlue" label="" />

+ 6 - 4
Assets/Resource/XML/PlayerConfig.xml

@@ -1,6 +1,8 @@
 <PlayerConfig>
-  <Version value="13" />
-  <Slot value="7" />
+  <Version value="16" />
+  <Tutorial value="1" />
+  <Slot value="1" />
+  <Player value="PlayerBlond" />
   <SignIndex value="0" />
   <Coin value="0" />
   <Level value="0" />
@@ -11,8 +13,8 @@
   <CircleTimer value="10" />
   <CoinPerson value="0" />
   <MiniGameAmt value="0" />
-  <PlantList SlotA1="0" SlotA2="1" SlotA3="2" SlotA4="3" SlotA5="4" SlotA6="5" SlotA7="6" />
-  <FlowerList ID="0 1 2 3 4 5 6 7 8 9" />
+  <PlantList/>
+  <FlowerList ID="" />
   <AchieveList></AchieveList>
   <AchieveData AD="0" Skill="0" Sign="0" Share="0" MiniGame="0" FlowerCoin="0"/>
   <SkillList>

BIN
Assets/Resource/Xlsx/ability_config.xlsx


+ 16 - 0
Assets/Script/Interface/Regist.cs

@@ -28,4 +28,20 @@ public class Regist : MonoBehaviour
     {
         
     }
+
+
+    public virtual void TutorialInstantiate()
+    {
+
+    }
+
+    public virtual void TutorialRegistValue()
+    {
+
+    }
+
+    public virtual void TutorialRegistReference()
+    {
+
+    }
 }

+ 38 - 0
Assets/Script/Manage/Initializer.cs

@@ -12,6 +12,8 @@ public class Initializer : MonoBehaviour
 {
     #region
 
+    public static bool Tutorial;
+
     public static List<Regist> RegistList;
 
     #endregion
@@ -43,6 +45,7 @@ public class Initializer : MonoBehaviour
         gameObject.AddScript<ManaData>();
         gameObject.AddScript<ManaPlayer>();
         gameObject.AddScript<ManaDebug>();
+        gameObject.AddScript<ManaTutorial>();
         gameObject.AddScript<ManaAchieve>();
         gameObject.AddScript<ManaMiniGame>();
 
@@ -51,6 +54,40 @@ public class Initializer : MonoBehaviour
 
     public static void Initialize()
     {
+        Tutorial = Convert.ToBoolean(int.Parse(Data.PlayerNode.SelectSingleNode("Tutorial").Attributes[0].Value));
+
+        if (Tutorial)
+        {
+            TutorialInitialize();
+        }
+        else
+        {
+            RegularInitialize();
+        }
+    }
+
+    public static void TutorialInitialize()
+    {
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            RegistList[i].TutorialInstantiate();
+
+            RegistList[i].enabled = true;
+        }
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            RegistList[i].TutorialRegistReference();
+        }
+
+        for (int i = 0; i < RegistList.Count; i++)
+        {
+            RegistList[i].TutorialRegistValue();
+        }
+    }
+
+    public static void RegularInitialize()
+    {
         for (int i = 0; i < RegistList.Count; i++)
         {
             RegistList[i].Instantiate();
@@ -79,6 +116,7 @@ public class Initializer : MonoBehaviour
         }
     }
 
+
     public IEnumerator IInitialize()
     {
         while (Bundle.LoadComplete == false)

+ 70 - 8
Assets/Script/Manage/ManaAnim.cs

@@ -125,6 +125,12 @@ public class ManaAnim : Regist
     }
 
 
+    public override void TutorialRegistValue()
+    {
+        RegistValueA();
+    }
+
+
     #region 曲线
 
     public static float LinearTimer(float value, float duration, float start, float delta)
@@ -1069,7 +1075,7 @@ public class ManaAnim : Regist
     }
 
 
-    public static TweenSr CreateTweenSr(Transform target, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    public static TweenSr CreateTweenSr(Transform target, Color origin, Color destination, float duration, bool group, bool originActive, bool destActive, Curve curve)
     {
         if (TweenSrDic.ContainsKey(target))
         {
@@ -1077,7 +1083,7 @@ public class ManaAnim : Regist
 
             TweenSr tween = TweenSrDic[target];
 
-            tween = new TweenSr(sr, origin, destination, duration, originActive, destActive, curve);
+            tween = new TweenSr(sr, origin, destination, duration, group, originActive, destActive, curve);
 
             return tween;
         }
@@ -1085,7 +1091,7 @@ public class ManaAnim : Regist
         {
             SpriteRenderer sr = target.GetComponent<SpriteRenderer>();
 
-            TweenSr tween = new TweenSr(sr, origin, destination, duration, originActive, destActive, curve);
+            TweenSr tween = new TweenSr(sr, origin, destination, duration, group, originActive, destActive, curve);
 
             TweenSrDic.Add(target, tween);
 
@@ -1093,7 +1099,7 @@ public class ManaAnim : Regist
         }
     }
 
-    public static TweenSr CreateTweenSr(Transform target, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    public static TweenSr CreateTweenSr(Transform target, Color destination, float duration, bool group, bool originActive, bool destActive, Curve curve)
     {
         if (TweenSrDic.ContainsKey(target))
         {
@@ -1101,7 +1107,7 @@ public class ManaAnim : Regist
 
             TweenSr tween = TweenSrDic[target];
 
-            tween = new TweenSr(sr, sr.color, destination, duration, originActive, destActive, curve);
+            tween = new TweenSr(sr, sr.color, destination, duration, group, originActive, destActive, curve);
 
             return tween;
         }
@@ -1109,7 +1115,7 @@ public class ManaAnim : Regist
         {
             SpriteRenderer sr = target.GetComponent<SpriteRenderer>();
 
-            TweenSr tween = new TweenSr(sr, sr.color, destination, duration, originActive, destActive, curve);
+            TweenSr tween = new TweenSr(sr, sr.color, destination, duration, group, originActive, destActive, curve);
 
             TweenSrDic.Add(target, tween);
 
@@ -1213,7 +1219,7 @@ public class ManaAnim : Regist
         }
     }
 
-    public static TweenVec CreateTweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    public static TweenVec CreateTweenVec2D(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
     {
         origin.z = target.position.z;
         destination.z = target.position.z;
@@ -1236,7 +1242,7 @@ public class ManaAnim : Regist
         }
     }
 
-    public static TweenVec CreateTweenVec(Transform target, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    public static TweenVec CreateTweenVec2D(Transform target, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
     {
         destination.z = target.position.z;
 
@@ -1274,6 +1280,62 @@ public class ManaAnim : Regist
         }
     }
 
+    public static TweenVec CreateTweenVec3D(Transform target, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    {
+        if (TweenVecDic.ContainsKey(target))
+        {
+            TweenVec tween = TweenVecDic[target];
+
+            tween = new TweenVec(target, origin, destination, duration, local, originActive, destActive, curve);
+
+            return tween;
+        }
+        else
+        {
+            TweenVec tween = new TweenVec(target, origin, destination, duration, local, originActive, destActive, curve);
+
+            TweenVecDic.Add(target, tween);
+
+            return tween;
+        }
+    }
+
+    public static TweenVec CreateTweenVec3D(Transform target, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    {
+        if (TweenVecDic.ContainsKey(target))
+        {
+            TweenVec tween = TweenVecDic[target];
+
+            if (local)
+            {
+                tween = new TweenVec(target, target.localPosition, destination, duration, local, originActive, destActive, curve);
+            }
+            else
+            {
+                tween = new TweenVec(target, target.position, destination, duration, local, originActive, destActive, curve);
+            }
+
+            return tween;
+        }
+        else
+        {
+            TweenVec tween;
+
+            if (local)
+            {
+                tween = new TweenVec(target, target.localPosition, destination, duration, local, originActive, destActive, curve);
+            }
+            else
+            {
+                tween = new TweenVec(target, target.position, destination, duration, local, originActive, destActive, curve);
+            }
+
+            TweenVecDic.Add(target, tween);
+
+            return tween;
+        }
+    }
+
     public static TweenText CreateTweenText(Transform target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     {
         if (TweenRectDic.ContainsKey(target))

+ 17 - 2
Assets/Script/Manage/ManaAudio.cs

@@ -27,8 +27,7 @@ public class ManaAudio : Regist
         ManaReso.Get("MusicMini", Folder.Object, true, MusicParent, true);
         ManaReso.Get("MusicTheme", Folder.Object, true, MusicParent, true);
     }
-
-
+    
     public override void RegistValueA()
     {
         Instance = this;
@@ -84,6 +83,22 @@ public class ManaAudio : Regist
     }
 
 
+    public override void TutorialInstantiate()
+    {
+        Instantiate();
+    }
+
+    public override void TutorialRegistValue()
+    {
+        RegistValueA();
+    }
+
+    public override void TutorialRegistReference()
+    {
+        RegistReference();
+    }
+
+
     public void MusicSwitch()
     {
         if (Music)

+ 52 - 6
Assets/Script/Manage/ManaData.cs

@@ -137,7 +137,7 @@ public class ManaData : Regist
         {
             _Slot = value;
 
-            ManaReso.Get<Garden>("Garden").ValidPage = Mathf.Clamp(Mathf.CeilToInt(_Slot/7f), 1, 2);
+            Garden.ValidPage = Mathf.Clamp(Mathf.CeilToInt(_Slot/7f), 1, 2);
         }
     }
     public static int Level
@@ -336,6 +336,23 @@ public class ManaData : Regist
 
     private void Update()
     {
+        if (Initializer.Tutorial)
+        {
+            TutorialUpdate();
+        }
+        else
+        {
+            RegularUpdate();
+        }
+    }
+
+    private void TutorialUpdate()
+    {
+
+    }
+
+    private void RegularUpdate()
+    {
         if (Pause)
         {
             return;
@@ -352,11 +369,11 @@ public class ManaData : Regist
                 ManaReso.Get("C_MiniGame").TweenForCG();
             }
         }
-        
+
         if (Auxiliary.AnyKeyUp)
         {
             OpTimer = 0;
-            
+
             if (Main == 0)
             {
                 ManaReso.Get("C_Main").TweenForCG();
@@ -378,8 +395,26 @@ public class ManaData : Regist
         }
     }
 
+
     private void FixedUpdate()
     {
+        if (Initializer.Tutorial)
+        {
+            TutorialFixedUpdate();
+        }
+        else
+        {
+            RegularFixedUpdate();
+        }
+    }
+
+    private void TutorialFixedUpdate()
+    {
+        
+    }
+
+    private void RegularFixedUpdate()
+    {
         #region 使用技能
 
         for (int i = 0; i < UseList.Count; i++)
@@ -391,7 +426,7 @@ public class ManaData : Regist
         }
 
         #endregion
-        
+
         #region 冷却技能
 
         for (int i = 0; i < CoolList.Count; i++)
@@ -412,10 +447,10 @@ public class ManaData : Regist
         {
             CircleTimer = CircleTime;
 
-            NewPerson = Person*(1 + SkillPersonBuff) + SkillPerson;
+            NewPerson = Person * (1 + SkillPersonBuff) + SkillPerson;
             NewCoinPerson = CoinPerson + SkillCoinPerson;
 
-            float temp = (NewPerson*NewCoinPerson*CircleTime)*(1 + SkillPlus);
+            float temp = (NewPerson * NewCoinPerson * CircleTime) * (1 + SkillPlus);
 
             Coin += temp;
 
@@ -674,6 +709,17 @@ public class ManaData : Regist
     }
 
 
+    public override void TutorialRegistValue()
+    {
+        int slot = int.Parse(Data.PlayerNode.SelectSingleNode("Slot").Attributes[0].Value);
+
+        for (int i = 0; i < slot; i++)
+        {
+            ManaGarden.UnlockSlot();
+        }
+    }
+
+
     public static bool Pay(double amt, Current current)
     {
         amt = (long) amt;

+ 28 - 0
Assets/Script/Manage/ManaGarden.cs

@@ -118,6 +118,23 @@ public class ManaGarden : Regist
 
     public void FixedUpdate()
     {
+        if (Initializer.Tutorial)
+        {
+            TutorialFixedUpdate();
+        }
+        else
+        {
+            RegularFixedUpdate();
+        }
+    }
+
+    private void TutorialFixedUpdate()
+    {
+
+    }
+
+    private void RegularFixedUpdate()
+    {
         AnimThread();
 
         AwardThread();
@@ -242,6 +259,17 @@ public class ManaGarden : Regist
     }
 
 
+    public override void TutorialInstantiate()
+    {
+        Instantiate();
+    }
+
+    public override void TutorialRegistValue()
+    {
+        RegistValueA();
+    }
+
+
     public static void UnlockSlot()
     {
         for (int i = 0; i < SlotList.Count; i++)

+ 11 - 1
Assets/Script/Manage/ManaMiniGame.cs

@@ -397,6 +397,16 @@ public class ManaMiniGame : Regist
     }
 
 
+    public override void TutorialRegistValue()
+    {
+        RegistValueA();
+    }
+
+    public override void TutorialRegistReference()
+    {
+        RegistReference();
+    }
+
     #region MiniGame
 
     public static void Rip()
@@ -600,7 +610,7 @@ public class ManaMiniGame : Regist
     {
         GoldList = new List<DropGold>();
         DiamondList = new List<DropDiamond>();
-
+        
         ManaReso.SetText("Da_CoinLab", "");
         ManaReso.SetText("Da_FlowerLab", "");
         ManaReso.SetText("Da_DiamondLab", "");

+ 25 - 1
Assets/Script/Manage/ManaPlayer.cs

@@ -17,10 +17,34 @@ public class ManaPlayer : Regist
 
     public override void Instantiate()
     {
-        Transform tra = ManaReso.Get("Player", Folder.Character, false, transform, false);
+        string player = Data.PlayerNode.SelectSingleNode("Player").Attributes[0].Value;
 
+        Transform tra = ManaReso.Get(player, Folder.Character, false, transform, false);
+        tra.name = "Player";
         tra.AddScript<Player>();
 
         ManaReso.TraDic.Add(tra.name, tra);
     }
+
+    public override void TutorialInstantiate()
+    {
+        
+    }
+
+    public override void TutorialRegistValue()
+    {
+
+    }
+
+
+    public static void LateRegist()
+    {
+        Tutorial.Player.parent = ManaReso.Get("Garden");
+
+        Tutorial.Player.name = "Player";
+
+        Tutorial.Player.AddScript<Player>();
+
+        ManaReso.TraDic.Add(Tutorial.Player.name, Tutorial.Player);
+    }
 }

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

@@ -71,6 +71,11 @@ public class ManaReso : Regist
         TraDic.Add(objPool.name, objPool);
     }
 
+    public override void TutorialInstantiate()
+    {
+        Instantiate();
+    }
+
 
     public static T Load<T>(string goName, Folder folder, ObjType objType = ObjType.Null) where T : Object
     {

+ 24 - 0
Assets/Script/Manage/ManaTutorial.cs

@@ -0,0 +1,24 @@
+using UnityEngine;
+
+using System.Collections;
+using System.Collections.Generic;
+
+public class ManaTutorial : Regist
+{
+	#region 变量
+
+    
+
+    #endregion
+
+    public override void TutorialInstantiate()
+    {
+        ManaReso.Get("Tutorial", Folder.Object, true, transform, false).AddScript<Tutorial>();
+    }
+
+    public override void TutorialRegistValue()
+    {
+        ManaReso.SetActive("B_SignIn", false);
+        ManaReso.SetActive("N_Tutorial", true);
+    }
+}

+ 12 - 0
Assets/Script/Manage/ManaTutorial.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2433930f0b4e27a4c9dd7e6861c72417
+timeCreated: 1491549671
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 297 - 3
Assets/Script/Manage/ManaUI.cs

@@ -726,7 +726,7 @@ public class ManaUI : Regist
             ManaReso.Get("F_Manage0").TweenBacVec();
         };
 
-         tween = ManaReso.Get("F_Manage0").CreateTweenVec(ManaReso.Get("F_PageTra").position, 0.5f, false, false, true, Curve.EaseOutQuad);
+         tween = ManaReso.Get("F_Manage0").CreateTweenVec2D(ManaReso.Get("F_PageTra").position, 0.5f, false, false, true, Curve.EaseOutQuad);
 
         tween.OnForwardStart += () =>
         {
@@ -888,7 +888,7 @@ public class ManaUI : Regist
 
         #region G_Regular
 
-        ManaReso.Get("G_Regular").CreateTweenVec(ManaReso.Get("G_PageTraL").position, ManaReso.Get("G_PageTraR").position, 0.25f, false, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("G_Regular").CreateTweenVec2D(ManaReso.Get("G_PageTraL").position, ManaReso.Get("G_PageTraR").position, 0.25f, false, true, true, Curve.EaseOutQuad);
 
         ManaReso.AddButtonEvent
         (
@@ -1194,7 +1194,7 @@ public class ManaUI : Regist
             ManaReso.Get("M_Achieve0").TweenBacVec();
         };
 
-        tween = ManaReso.Get("M_Achieve0").CreateTweenVec(ManaReso.Get("M_PageTra").position, 0.5f, false, false, true, Curve.EaseOutQuad);
+        tween = ManaReso.Get("M_Achieve0").CreateTweenVec2D(ManaReso.Get("M_PageTra").position, 0.5f, false, false, true, Curve.EaseOutQuad);
 
         tween.OnForwardStart += () =>
         {
@@ -1225,4 +1225,298 @@ public class ManaUI : Regist
 
         #endregion
     }
+
+
+    public override void TutorialInstantiate()
+    {
+        Transform tra = new GameObject("UI").transform;
+
+        ManaReso.Get("Canvas", Folder.UI, true, tra, false);
+        ManaReso.Get("MainCamera", Folder.UI, false, tra, false);
+        ManaReso.Get("EventSystem", Folder.UI, false, tra, false);
+    }
+
+    public override void TutorialRegistValue()
+    {
+        #region C
+
+        ManaReso.Get("C_Main").CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        #region C_MiniGame
+
+        Tween tween = ManaReso.Get("C_MiniGame").CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+
+        };
+
+        ManaReso.AddButtonEvent
+        (
+            "C_MiniGame",
+            () =>
+            {
+                ManaReso.Get("GardenMini").TweenForVec();
+
+                ManaReso.Get("D_MiniGame").TweenForCG();
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region D
+
+        ManaReso.SetText("D_ScoreTit");
+        ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
+        ManaReso.SetText("D_StatusLab", Language.GetStr("UI", "D_StatusLab0"));
+
+        ManaText.Add(ManaReso.Get<Text>("Da_QuitLab"), new LanStr("UI", "Da_QuitLab"));
+        ManaText.Add(ManaReso.Get<Text>("Da_CancelLab"), new LanStr("UI", "Da_CancelLab"));
+        ManaText.Add(ManaReso.Get<Text>("Da_GetAwardLab"), new LanStr("UI", "Da_GetAwardLab"));
+
+        #region D_Rip
+
+        ManaReso.AddButtonEvent
+        (
+            "D_Rip2",
+            () =>
+            {
+                ManaMiniGame.Rip();
+
+                ManaReso.Get("D_Rip2").TweenForScale();
+            }
+        );
+
+        tween = ManaReso.Get("D_Rip2").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ManaReso.Get("D_Rip2").TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_Quit
+
+        ManaReso.AddButtonEvent
+        (
+            "D_Quit",
+            () =>
+            {
+                ManaReso.SetText("Da_Tit", Language.GetStr("UI", "Da_Tit0"));
+                ManaReso.SetText("Da_Lab", Language.GetStr("UI", "Da_Lab0"));
+
+                ManaReso.SetActive("Da_Info", true);
+                ManaReso.SetActive("Da_Quit", true);
+                ManaReso.SetActive("Da_Cancel", true);
+                ManaReso.SetActive("Da_GetAward", false);
+
+                ManaMiniGame.Pause = true;
+            }
+        );
+
+        #endregion
+
+        #region D_Begin
+
+        ManaReso.AddButtonEvent
+        (
+            "D_Begin",
+            () =>
+            {
+                ManaMiniGame.Prepare = true;
+            }
+        );
+
+        #endregion
+
+        #region D_Water
+
+        ManaReso.AddButtonEvent
+        (
+            "D_Water2",
+            () =>
+            {
+                ManaMiniGame.Water();
+
+                ManaReso.Get("D_Water2").TweenForScale();
+            }
+        );
+
+        tween = ManaReso.Get("D_Water2").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ManaReso.Get("D_Water2").TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_Fertilize
+
+        ManaReso.AddButtonEvent
+        (
+            "D_Fertilize2",
+
+            () =>
+            {
+                ManaMiniGame.Fertilize();
+
+                ManaReso.Get("D_Fertilize2").TweenForScale();
+            }
+        );
+
+        tween = ManaReso.Get("D_Fertilize2").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.2f, 1.2f, 1.2f), 0.1f, true, true, Curve.EaseOutQuad);
+
+        tween.OnForwardFinish += () =>
+        {
+            ManaReso.Get("D_Fertilize2").TweenBacScale();
+        };
+
+        #endregion
+
+        #region D_MiniGame
+
+        tween = ManaReso.Get("D_MiniGame").CreateTweenCG(0, 1, 0.5f, false, true, Curve.EaseOutQuad);
+
+        tween.OnForwardStart += () =>
+        {
+            ManaReso.SetText("D_ScoreTit");
+            ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
+            ManaReso.SetText("D_StatusLab", Language.GetStr("UI", "D_StatusLab0"));
+
+            ManaReso.Get("C_Main").TweenBacCG();
+
+            ManaReso.Get("MusicTheme").TweenBacAudio();
+
+            ManaReso.SetActive("E_Debug", false);
+
+            ManaData.Main++;
+
+            ManaReso.SetActive("Da_Quit", true);
+            ManaReso.SetActive("Da_Cancel", true);
+            ManaReso.SetActive("Da_GetAward", false);
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ManaReso.Get("MusicMini").TweenForAudio();
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
+
+            ManaReso.Get("MusicMini").TweenBacAudio();
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            ManaReso.Get("MusicTheme").TweenForAudio();
+
+            ManaReso.SetActive("E_Debug", true);
+        };
+
+        #endregion
+
+
+        #region Da_Quit
+
+        ManaReso.AddButtonEvent
+        (
+            "Da_Quit",
+            () =>
+            {
+                ManaReso.Get("C_Main").TweenForCG();
+
+                ManaReso.Get("D_MiniGame").TweenBacCG();
+
+                ManaReso.Get("GardenMini").TweenBacVec();
+
+                ManaReso.SetActive("Da_Info", false);
+
+                ManaMiniGame.GameAbort();
+            }
+        );
+
+        #endregion
+
+        #region Da_Cancel
+
+        ManaReso.AddButtonEvent
+        (
+            "Da_Cancel",
+            () =>
+            {
+                ManaReso.SetActive("Da_Info", false);
+
+                ManaMiniGame.Pause = false;
+            }
+        );
+
+        #endregion
+
+        #region Da_GetAward
+
+        ManaReso.AddButtonEvent
+        (
+            "Da_GetAward",
+            () =>
+            {
+                ManaReso.Get("C_Main").TweenForCG();
+
+                ManaReso.Get("D_MiniGame").TweenBacCG();
+
+                ManaReso.Get("GardenMini").TweenBacVec();
+
+                ManaReso.SetActive("Da_Info", false);
+            }
+        );
+
+        #endregion
+
+        #endregion
+
+        #region N
+
+        ManaReso.Get("N_Tutorial").CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
+
+        ManaReso.AddButtonEvent
+        (
+            "N_Confirm",
+            () =>
+            {
+                ManaPlayer.LateRegist();
+                Garden.LateRegist();
+
+                tween = Tutorial.Player.CreateTweenScale(ManaReso.Get("PlayerPosTra").localScale, 1f, true, true, Curve.EaseOutQuad);
+                Tutorial.Player.CreateTweenVec3D(ManaReso.Get("PlayerPosTra").position, 1f, false, true, true, Curve.EaseOutQuad);
+
+                Tutorial.Player.TweenForVec();
+                Tutorial.Player.TweenForScale();
+
+                HudTarget hudTarget = ManaReso.Get("C_MiniGame").AddComponent<HudTarget>();
+                hudTarget.PosTra = Player.ChildDic["EnterGameTra"];
+
+                tween.OnForwardFinish += () =>
+                {
+                    ManaReso.SetActive("C_Coin", false);
+                    ManaReso.SetActive("C_Setting", false);
+                    ManaReso.SetActive("C_Achieve", false);
+                    ManaReso.SetActive("C_Manage", false);
+
+                    ManaReso.Get("C_Main").TweenForCG();
+                    ManaReso.Get("C_MiniGame").TweenForCG();
+                };
+
+                ManaReso.Get("Tutorial").TweenBacSr();
+
+                ManaReso.Get("N_Tutorial").TweenBacCG();
+            }
+        );
+
+        #endregion
+    }
 }

+ 1 - 1
Assets/Script/Object/Drop.cs

@@ -16,7 +16,7 @@ public class Drop : ObjRoot,IPointerClickHandler
 
     protected virtual void Awake()
     {
-        Tween tween = transform.CreateTweenSr(new Color(1, 1, 1, 1), new Color(1, 1, 1, 0), 0.25f, true, false, Curve.EaseOutQuad);
+        Tween tween = transform.CreateTweenSr(new Color(1, 1, 1, 1), new Color(1, 1, 1, 0), 0.25f, false, true, false, Curve.EaseOutQuad);
         transform.CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(1.2f, 1.2f, 1.2f), 0.25f, true, false, Curve.EaseOutQuad);
 
         tween.OnForwardFinish += () =>

+ 5 - 5
Assets/Script/Object/Flower.cs

@@ -232,21 +232,21 @@ public class Flower : ObjRoot, IPointerClickHandler
         OperateIcon = ChildDic["OperateIcon"].GetComponent<SpriteRenderer>();
         OperateOutline = ChildDic["OperateOutline"].GetComponent<SpriteRenderer>();
 
-        Tween tween = FlowerIcon.CreateTweenSr(new Color(1, 1, 1), new Color(1, 0.5f, 0.5f), 0.2f, true, true, Curve.EaseOutQuad);
+        Tween tween = FlowerIcon.CreateTweenSr(new Color(1, 1, 1), new Color(1, 0.5f, 0.5f), 0.2f, false, true, true, Curve.EaseOutQuad);
 
         tween.OnForwardFinish += () =>
         {
             FlowerIcon.TweenBacSr();
         };
 
-        tween = OperateIcon.CreateTweenSr(new Color(1, 1, 1), new Color(1, 0.5f, 0.5f), 0.2f, true, true, Curve.EaseOutQuad);
+        tween = OperateIcon.CreateTweenSr(new Color(1, 1, 1), new Color(1, 0.5f, 0.5f), 0.2f, false, true, true, Curve.EaseOutQuad);
 
         tween.OnForwardFinish += () =>
         {
             OperateIcon.TweenBacSr();
         };
 
-        tween = OperateBk.CreateTweenSr(new Color(1, 1, 1), new Color(1, 0.5f, 0.5f), 0.2f, true, true, Curve.EaseOutQuad);
+        tween = OperateBk.CreateTweenSr(new Color(1, 1, 1), new Color(1, 0.5f, 0.5f), 0.2f, false, true, true, Curve.EaseOutQuad);
 
         tween.OnForwardFinish += () =>
         {
@@ -395,8 +395,8 @@ public class Flower : ObjRoot, IPointerClickHandler
 
     public void ShowAward()
     {
-        GoldBk.CreateTweenSr(new Color(1, 1, 1, 0), new Color(1, 1, 1, 1), 1f, true, true, Curve.EaseOutQuad);
-        GoldIcon.CreateTweenSr(new Color(1, 1, 1, 0), new Color(1, 1, 1, 1), 1f, true, true, Curve.EaseOutQuad);
+        GoldBk.CreateTweenSr(new Color(1, 1, 1, 0), new Color(1, 1, 1, 1), 1f, false, true, true, Curve.EaseOutQuad);
+        GoldIcon.CreateTweenSr(new Color(1, 1, 1, 0), new Color(1, 1, 1, 1), 1f, false, true, true, Curve.EaseOutQuad);
 
         GoldBk.SetY(transform.position.y + 2.5f);
 

+ 222 - 26
Assets/Script/Object/Garden.cs

@@ -16,28 +16,28 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 {
     #region 变量
 
-    public int ValidPage;
-
-    private int Page;
-    private bool Flag1;
-    private bool Flag2;
-    private float RatioBk2;
-    private float RatioBk3;
-    private float RatioBk4;
-    private float RatioPlayer;
-    private float SlideSpeed;
-    private Direction Direction;
-    private Transform Player;
-    private Transform GardenA;
-    private Transform GardenBk2;
-    private Transform GardenBk3;
-    private Transform GardenBk4;
-
-    private List<Vector3> PlayerPos;
-    private List<Vector3> GardenPosA;
-    private List<Vector3> GardenPosBk2;
-    private List<Vector3> GardenPosBk3;
-    private List<Vector3> GardenPosBk4;
+    public static int ValidPage;
+
+    private static int Page;
+    private static bool Flag1;
+    private static bool Flag2;
+    private static float RatioBk2;
+    private static float RatioBk3;
+    private static float RatioBk4;
+    private static float RatioPlayer;
+    private static float SlideSpeed;
+    private static Direction Direction;
+    private static Transform Player;
+    private static Transform GardenA;
+    private static Transform GardenBk2;
+    private static Transform GardenBk3;
+    private static Transform GardenBk4;
+
+    private static List<Vector3> PlayerPos;
+    private static List<Vector3> GardenPosA;
+    private static List<Vector3> GardenPosBk2;
+    private static List<Vector3> GardenPosBk3;
+    private static List<Vector3> GardenPosBk4;
 
     #endregion
 
@@ -60,7 +60,7 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 
         Transform tra0 = ManaReso.Get("Cloud1");
 
-        Tween tween = tra0.CreateTweenVec(new Vector3(-12, tra0.position.y, tra0.position.z), 50f, false, false, true, Curve.Linear);
+        Tween tween = tra0.CreateTweenVec2D(new Vector3(-12, tra0.position.y, tra0.position.z), 50f, false, false, true, Curve.Linear);
 
         var tra1 = tra0;
         tween.OnForwardFinish += () =>
@@ -76,7 +76,7 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 
         tra0 = ManaReso.Get("Cloud2");
 
-        tween = tra0.CreateTweenVec(new Vector3(-12, tra1.position.y, tra1.position.z), 75f, false, false, true, Curve.Linear);
+        tween = tra0.CreateTweenVec2D(new Vector3(-12, tra1.position.y, tra1.position.z), 75f, false, false, true, Curve.Linear);
 
         Transform tra2 = tra0;
         tween.OnForwardFinish += () =>
@@ -92,7 +92,7 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 
         tra0 = ManaReso.Get("Cloud3");
 
-        tween = tra0.CreateTweenVec(new Vector3(-12, tra1.position.y, tra1.position.z), 100, false, false, true, Curve.Linear);
+        tween = tra0.CreateTweenVec2D(new Vector3(-12, tra1.position.y, tra1.position.z), 100, false, false, true, Curve.Linear);
 
         tween.OnForwardFinish += () =>
         {
@@ -121,7 +121,7 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
 
         #region GardenMini
         
-        tween = ManaReso.Get("GardenMini").CreateTweenVec
+        tween = ManaReso.Get("GardenMini").CreateTweenVec2D
         (
             ManaReso.Get("PageTraMini").position,
             0.5f, 
@@ -221,6 +221,202 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
     }
 
 
+    public override void TutorialRegistValue()
+    {
+        
+    }
+
+    public override void TutorialRegistReference()
+    {
+        
+    }
+
+
+    public static void LateRegist()
+    {
+        #region RegistReference
+
+        GardenBk2 = ManaReso.Get("GardenBk2");
+        GardenBk3 = ManaReso.Get("GardenBk3");
+        GardenBk4 = ManaReso.Get("GardenBk4");
+
+        Player = ManaReso.Get("Player");
+        GardenA = ManaReso.Get("GardenA");
+
+        GardenPosBk2 = new List<Vector3>()
+        {
+            ManaReso.Get("PageTra21").position,
+            ManaReso.Get("PageTra22").position,
+        };
+
+        GardenPosBk3 = new List<Vector3>()
+        {
+            ManaReso.Get("PageTra31").position,
+            ManaReso.Get("PageTra32").position,
+        };
+
+        GardenPosBk4 = new List<Vector3>()
+        {
+            ManaReso.Get("PageTra41").position,
+            ManaReso.Get("PageTra42").position,
+        };
+
+        GardenPosA = new List<Vector3>()
+        {
+            ManaReso.Get("PageTraA").position,
+            ManaReso.Get("PageTraB").position,
+        };
+
+        PlayerPos = new List<Vector3>()
+        {
+            global::Player.ChildDic["PlayerTra1"].position,
+            global::Player.ChildDic["PlayerTra2"].position,
+        };
+
+        #endregion
+
+        #region RegistValue
+
+        Flag1 = true;
+        Flag2 = true;
+
+        Page = 0;
+        SlideSpeed = 0.1f;
+
+        RatioBk2 = 0.25f;
+        RatioBk3 = 0.5f;
+        RatioBk4 = 0.75f;
+        RatioPlayer = 0.75f;
+
+        #region Garden
+
+        #region Cloud1
+
+        Transform tra0 = ManaReso.Get("Cloud1");
+
+        Tween tween = tra0.CreateTweenVec2D(new Vector3(-12, tra0.position.y, tra0.position.z), 50f, false, false, true, Curve.Linear);
+
+        var tra1 = tra0;
+        tween.OnForwardFinish += () =>
+        {
+            tra1.TweenForVec();
+        };
+
+        tra1.TweenForVec();
+
+        #endregion
+
+        #region Cloud2
+
+        tra0 = ManaReso.Get("Cloud2");
+
+        tween = tra0.CreateTweenVec2D(new Vector3(-12, tra1.position.y, tra1.position.z), 75f, false, false, true, Curve.Linear);
+
+        Transform tra2 = tra0;
+        tween.OnForwardFinish += () =>
+        {
+            tra2.TweenForVec();
+        };
+
+        tra2.TweenForVec();
+
+        #endregion
+
+        #region Cloud3
+
+        tra0 = ManaReso.Get("Cloud3");
+
+        tween = tra0.CreateTweenVec2D(new Vector3(-12, tra1.position.y, tra1.position.z), 100, false, false, true, Curve.Linear);
+
+        tween.OnForwardFinish += () =>
+        {
+            tra0.TweenForVec();
+        };
+
+        tra0.TweenForVec();
+
+        #endregion
+
+        #region GardenA
+
+        Move move = GardenA.CreateMove();
+
+        move.OnStart += () =>
+        {
+            Flag2 = false;
+        };
+
+        move.OnFinish += () =>
+        {
+            Flag2 = true;
+        };
+
+        #endregion
+
+        #region GardenMini
+
+        tween = ManaReso.Get("GardenMini").CreateTweenVec2D
+        (
+            ManaReso.Get("PageTraMini").position,
+            0.5f,
+            false,
+            false,
+            true,
+            Curve.EaseOutQuad
+        );
+
+        tween.OnForwardStart += () =>
+        {
+            ManaMiniGame.GamePrepare();
+        };
+
+        tween.OnForwardFinish += () =>
+        {
+            ManaReso.SetActive("Player", false);
+            ManaReso.SetActive("Cloud1", false);
+            ManaReso.SetActive("Cloud2", false);
+            ManaReso.SetActive("Cloud3", false);
+            ManaReso.SetActive("GardenA", false);
+            ManaReso.SetActive("GardenBk1", false);
+            ManaReso.SetActive("GardenBk2", false);
+            ManaReso.SetActive("GardenBk3", false);
+            ManaReso.SetActive("GardenBk4", false);
+        };
+
+        tween.OnBackwardStart += () =>
+        {
+            ManaReso.SetActive("Player", true);
+            ManaReso.SetActive("Cloud1", true);
+            ManaReso.SetActive("Cloud2", true);
+            ManaReso.SetActive("Cloud3", true);
+            ManaReso.SetActive("GardenA", true);
+            ManaReso.SetActive("GardenBk1", true);
+            ManaReso.SetActive("GardenBk2", true);
+            ManaReso.SetActive("GardenBk3", true);
+            ManaReso.SetActive("GardenBk4", true);
+        };
+
+        tween.OnBackwardFinish += () =>
+        {
+            for (int i = 0; i < ManaMiniGame.IdleList.Count; i++)
+            {
+                ManaReso.Save(ManaMiniGame.IdleList[i]);
+            }
+
+            for (int i = 0; i < ManaMiniGame.OpList.Count; i++)
+            {
+                ManaReso.Save(ManaMiniGame.OpList[i]);
+            }
+        };
+
+        #endregion
+
+        #endregion
+
+        #endregion
+    }
+
+
     public void OnDrag(PointerEventData eventData)
     {
         if (Flag1 && Flag2)

+ 16 - 2
Assets/Script/Object/Player.cs

@@ -24,7 +24,21 @@ public class Player : MonoBehaviour
     private List<Sprite> MouseList;
     private List<Sprite> HeadWearList;
 
-    public static Dictionary<string, Transform> ChildDic;
+    public static Dictionary<string, Transform> _ChildDic;
+
+    public static Dictionary<string, Transform> ChildDic
+    {
+        get
+        {
+            if (_ChildDic == null)
+            {
+                _ChildDic = new Dictionary<string, Transform>();
+            }
+
+            return _ChildDic;
+        }
+        set { _ChildDic = value; }
+    }
 
     #endregion
 
@@ -32,7 +46,7 @@ public class Player : MonoBehaviour
     {
         #region MyRegion
 
-        Auxiliary.CompileDic(transform, ChildDic = new Dictionary<string, Transform>());
+        Auxiliary.CompileDic(transform, ChildDic);
 
         EyeSr = ChildDic["EyeSr"].GetComponent<SpriteRenderer>();
         TopSr = ChildDic["TopSr"].GetComponent<SpriteRenderer>();

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

@@ -364,7 +364,7 @@ public class Ability : SkillRoot
                 }
                 else if (strings.Length > 1)
                 {
-                    ManaReso.Get(strings[0], Folder.Character, false, ManaReso.Get(strings[1]), true);
+                    ManaReso.Get(strings[0], Folder.Character, false, ManaReso.Get(strings[1]), false);
                 }
             }
         }

+ 95 - 0
Assets/Script/Object/Tutorial.cs

@@ -0,0 +1,95 @@
+using UnityEngine;
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.EventSystems;
+
+public class Tutorial : Regist, IPointerClickHandler
+{
+    #region 变量
+
+    public static string SelectPlayer
+    {
+        get
+        {
+            if (string.IsNullOrEmpty(_SelectPlayer))
+            {
+                _SelectPlayer = "PlayerBlond";
+            }
+
+            return _SelectPlayer;
+        }
+        set { _SelectPlayer = value; }
+    }
+    public static Transform Player
+    {
+        get
+        {
+            if (_Player == null)
+            {
+                _Player = PlayerBlond;
+            }
+
+            return _Player;
+        }
+        set { _Player = value; }
+    }
+
+    public static string _SelectPlayer;
+    public static Transform _Player;
+
+    public static Transform PlayerPink;
+    public static Transform PlayerBlond;
+    public static Transform PlayerBrown;
+
+    #endregion
+
+    public override void TutorialInstantiate()
+    {
+        PlayerBrown = ManaReso.Get("PlayerBrown", Folder.Character, false, ManaReso.Get("PlayerBk1"), ManaReso.Get("PlayerBk1").position);
+
+        PlayerBlond = ManaReso.Get("PlayerBlond", Folder.Character, false, ManaReso.Get("PlayerBk2"), ManaReso.Get("PlayerBk2").position);
+
+        PlayerPink = ManaReso.Get("PlayerPink", Folder.Character, false, ManaReso.Get("PlayerBk3"), ManaReso.Get("PlayerBk3").position);
+    }
+
+    public override void TutorialRegistValue()
+    {
+        ManaReso.Get("Tutorial").CreateTweenSr(new Color(0, 0, 0, 0), new Color(0, 0, 0, 1), 0.25f, true, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("PlayerBk1").CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(0.95f, 0.95f, 0.95f), 0.25f, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("PlayerBk2").CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(0.95f, 0.95f, 0.95f), 0.25f, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("PlayerBk3").CreateTweenScale(new Vector3(0.8f, 0.8f, 0.8f), new Vector3(0.95f, 0.95f, 0.95f), 0.25f, true, true, Curve.EaseOutQuad);
+    }
+
+
+    public void OnPointerClick(PointerEventData eventData)
+    {
+        if (eventData.rawPointerPress.name == "PlayerBk1")
+        {
+            ManaReso.Get("PlayerBk1").TweenConForScale();
+            ManaReso.Get("PlayerBk2").TweenConBacScale();
+            ManaReso.Get("PlayerBk3").TweenConBacScale();
+
+            Player = PlayerBrown;
+            SelectPlayer = "PlayerBrown";
+        }
+        else if (eventData.rawPointerPress.name == "PlayerBk2")
+        {
+            ManaReso.Get("PlayerBk2").TweenConForScale();
+            ManaReso.Get("PlayerBk1").TweenConBacScale();
+            ManaReso.Get("PlayerBk3").TweenConBacScale();
+
+            Player = PlayerBlond;
+            SelectPlayer = "PlayerBlond";
+        }
+        else if (eventData.rawPointerPress.name == "PlayerBk3")
+        {
+            ManaReso.Get("PlayerBk3").TweenConForScale();
+            ManaReso.Get("PlayerBk1").TweenConBacScale();
+            ManaReso.Get("PlayerBk2").TweenConBacScale();
+
+            Player = PlayerPink;
+            SelectPlayer = "PlayerPink";
+        }
+    }
+}

+ 12 - 0
Assets/Script/Object/Tutorial.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 351fdd2c80509504ead649aa345afe91
+timeCreated: 1491552489
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 47 - 4
Assets/Script/Tool/Anim/TweenSr.cs

@@ -21,7 +21,6 @@ public class TweenSr : Tween
 
             return _InOrigin;
         }
-
         set
         {
             _InOrigin = value;
@@ -29,8 +28,15 @@ public class TweenSr : Tween
             if (_InOrigin)
             {
                 Target.color = Origin;
+
+                if (Group)
+                {
+                    for (int i = 0; i < Targets.Length; i++)
+                    {
+                        Targets[i].SetAlpha(Target.color.a * Targets[i].color.a);
+                    }
+                }
             }
-            
         }
     }
 
@@ -56,20 +62,29 @@ public class TweenSr : Tween
             if (_InDestination)
             {
                 Target.color = Destination;
+
+                if (Group)
+                {
+                    for (int i = 0; i < Targets.Length; i++)
+                    {
+                        Targets[i].SetAlpha(Target.color.a * Targets[i].color.a);
+                    }
+                }
             }
-            
         }
     }
 
+    protected bool Group;
     protected Color Delta;
     protected Color Origin;
     protected Color Destination;
     protected SpriteRenderer Target;
+    protected SpriteRenderer[] Targets;
     protected CurveFunctionC Func;
 
     #endregion
 
-    public TweenSr(SpriteRenderer target, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    public TweenSr(SpriteRenderer target, Color origin, Color destination, float duration, bool group, bool originActive, bool destActive, Curve curve)
     {
         Func = ManaAnim.CurveFunctionDicC[curve];
         Target = target;
@@ -79,6 +94,7 @@ public class TweenSr : Tween
 
         Delta = destination - origin;
         Origin = origin;
+        Group = group;
         Duration = duration;
         DestActive = destActive;
         Destination = destination;
@@ -109,6 +125,11 @@ public class TweenSr : Tween
     {
         base.StartForward();
 
+        if (Group)
+        {
+            Targets = Target.GetComponentsInChildren<SpriteRenderer>();
+        }
+
         if (InBackward)
         {
             Timer = Duration - Timer;
@@ -123,6 +144,11 @@ public class TweenSr : Tween
     {
         base.StartBackward();
 
+        if (Group)
+        {
+            Targets = Target.GetComponentsInChildren<SpriteRenderer>();
+        }
+
         if (InForward)
         {
             Timer = Duration - Timer;
@@ -133,6 +159,7 @@ public class TweenSr : Tween
         }
     }
 
+
     public override bool DoForward()
     {
         Timer += Time.fixedDeltaTime;
@@ -154,6 +181,14 @@ public class TweenSr : Tween
         {
             Target.color = Func(Timer, Duration, Origin, Delta);
 
+            if (Group)
+            {
+                for (int i = 0; i < Targets.Length; i++)
+                {
+                    Targets[i].SetAlpha(Target.color.a * Targets[i].color.a);
+                }
+            }
+
             return false;
         }
     }
@@ -179,6 +214,14 @@ public class TweenSr : Tween
         {
             Target.color = Func(Timer, Duration, Destination, new Color(-Delta.r, -Delta.g, -Delta.b, -Delta.a));
 
+            if (Group)
+            {
+                for (int i = 0; i < Targets.Length; i++)
+                {
+                    Targets[i].SetAlpha(Target.color.a * Targets[i].color.a);
+                }
+            }
+
             return false;
         }
     }

+ 2 - 0
Assets/Script/Tool/Data.cs

@@ -279,6 +279,7 @@ public class Data
         PlayerNode.SelectSingleNode("MiniTimer").Attributes[0].Value = ManaData.MiniTimer.ToString();
         PlayerNode.SelectSingleNode("CircleTimer").Attributes[0].Value = ManaData.CircleTimer.ToString();
         PlayerNode.SelectSingleNode("MiniGameAmt").Attributes[0].Value = ManaMiniGame.MiniGameAmt.ToString();
+        PlayerNode.SelectSingleNode("Player").Attributes[0].Value = Tutorial.SelectPlayer;
     }
 
     private static void SaveFlowerList()
@@ -484,6 +485,7 @@ public class Data
         PlayerNode.SelectSingleNode("MiniTimer").Attributes[0].Value = "0";
         PlayerNode.SelectSingleNode("CircleTimer").Attributes[0].Value = "10";
         PlayerNode.SelectSingleNode("MiniGameAmt").Attributes[0].Value = "0";
+        PlayerNode.SelectSingleNode("Player").Attributes[0].Value = "PlayerBlond";
     }
 
     private static void ResetFlowerList()

+ 18 - 8
Assets/Script/Tool/Extension.cs

@@ -410,14 +410,14 @@ public static class Extension
     }
 
 
-    public static TweenSr CreateTweenSr(this Component comp, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    public static TweenSr CreateTweenSr(this Component comp, Color origin, Color destination, float duration, bool group, bool originActive, bool destActive, Curve curve)
     {
-        return ManaAnim.CreateTweenSr(comp.transform, origin, destination, duration, originActive, destActive, curve);
+        return ManaAnim.CreateTweenSr(comp.transform, origin, destination, duration, group, originActive, destActive, curve);
     }
 
-    public static TweenSr CreateTweenSr(this Component comp, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    public static TweenSr CreateTweenSr(this Component comp, Color destination, float duration, bool group, bool originActive, bool destActive, Curve curve)
     {
-        return ManaAnim.CreateTweenSr(comp.transform, destination, duration, originActive, destActive, curve);
+        return ManaAnim.CreateTweenSr(comp.transform, destination, duration, group, originActive, destActive, curve);
     }
 
     public static TweenCG CreateTweenCG(this Component comp, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
@@ -440,14 +440,24 @@ public static class Extension
         return ManaAnim.CreateTweenGra(comp.transform, destination, duration, originActive, destActive, curve);
     }
 
-    public static TweenVec CreateTweenVec(this Component comp, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    public static TweenVec CreateTweenVec2D(this Component comp, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
     {
-        return ManaAnim.CreateTweenVec(comp.transform, origin, destination, duration, local, originActive, destActive, curve);
+        return ManaAnim.CreateTweenVec2D(comp.transform, origin, destination, duration, local, originActive, destActive, curve);
     }
 
-    public static TweenVec CreateTweenVec(this Component comp, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    public static TweenVec CreateTweenVec2D(this Component comp, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
     {
-        return ManaAnim.CreateTweenVec(comp.transform, destination, duration, local, originActive, destActive, curve);
+        return ManaAnim.CreateTweenVec2D(comp.transform, destination, duration, local, originActive, destActive, curve);
+    }
+
+    public static TweenVec CreateTweenVec3D(this Component comp, Vector3 origin, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    {
+        return ManaAnim.CreateTweenVec3D(comp.transform, origin, destination, duration, local, originActive, destActive, curve);
+    }
+
+    public static TweenVec CreateTweenVec3D(this Component comp, Vector3 destination, float duration, bool local, bool originActive, bool destActive, Curve curve)
+    {
+        return ManaAnim.CreateTweenVec3D(comp.transform, destination, duration, local, originActive, destActive, curve);
     }
 
     public static TweenText CreateTweenText(this Component comp, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)

+ 15 - 0
ToList.txt

@@ -1,5 +1,18 @@
+Tutorial语言
+
+PlayerZ 0.6
+
+SpriteRenderer Button
+
+
 切换后台
 
+注册方法
+
+Move需要移动Z的情况
+
+PageTra PosTra ParTra
+
 分段加载场景
 
 Extension重新分类
@@ -11,6 +24,8 @@ Extension
 
 字体
 
+是否保留Tree2
+
 Anchor
 
 RichText