瀏覽代碼

Merge branch 'master' of http://git.dashgame.com/gsgundam/garden_client

Conflicts:
	Assets/Resources/Sprite/Garden/种花光效1.png.meta
	Assets/Resources/Sprite/Garden/种花光效2.png.meta
	Assets/Resources/Sprite/Reference.meta
	Assets/Resources/Temp.meta
	Assets/XlsxSource/achieve_config.xlsx.meta
gsgundam 8 年之前
父節點
當前提交
dbb4e6a41a
共有 48 個文件被更改,包括 1554 次插入536 次删除
  1. 二進制
      .vs/MyLovelyGarden/v14/.suo
  2. 二進制
      Assets/Resources/Animations/Flower.controller
  3. 二進制
      Assets/Resources/Animations/FlowerAnimContainer.controller
  4. 0 8
      Assets/Resources/Animations/FlowerAnimContainer.controller.meta
  5. 二進制
      Assets/Resources/Garden.unity
  6. 二進制
      Assets/Resources/Prefab/Object/Flower.prefab
  7. 二進制
      Assets/Resources/Prefab/PrefabUI/Canvas.prefab
  8. 二進制
      Assets/Resources/Prefab/PrefabUI/SkillItem.prefab
  9. 二進制
      Assets/Resources/Sprite/Garden/提示图标底板.png
  10. 4 36
      Assets/Resources/Sprite/Garden/提示图标底板.png.meta
  11. 二進制
      Assets/Resources/Sprite/Reference/参考.jpg
  12. 68 0
      Assets/Resources/Sprite/Reference/参考.jpg.meta
  13. 二進制
      Assets/Resources/Sprite/SpriteUI/Health Wheel.png
  14. 55 0
      Assets/Resources/Sprite/SpriteUI/Health Wheel.png.meta
  15. 二進制
      Assets/Resources/Sprite/SpriteUI/快来打理花园对话框.png
  16. 68 0
      Assets/Resources/Sprite/SpriteUI/快来打理花园对话框.png.meta
  17. 二進制
      Assets/Resources/Sprite/SpriteUI/游戏返回按钮·左上角.png
  18. 68 0
      Assets/Resources/Sprite/SpriteUI/游戏返回按钮·左上角.png.meta
  19. 3 2
      Assets/Resources/XML/Config/PlayerConfig.xml
  20. 1 8
      Assets/Resources/XML/Config/signin_config.xml
  21. 6 2
      Assets/Script/Manage/Initializer.cs
  22. 292 0
      Assets/Script/Manage/ManaAnim.cs
  23. 47 0
      Assets/Script/Manage/ManaGarden.cs
  24. 8 4
      Assets/Script/Manage/ManaMiniGame.cs
  25. 2 0
      Assets/Script/Manage/ManaReso.cs
  26. 27 3
      Assets/Script/Manage/ManaUI.cs
  27. 63 2
      Assets/Script/Object/Flower.cs
  28. 1 1
      Assets/Script/Object/Garden.cs
  29. 24 0
      Assets/Script/Tool/Anim/Tween.cs
  30. 19 0
      Assets/Script/Tool/Anim/TweenAudio.cs
  31. 19 0
      Assets/Script/Tool/Anim/TweenCG.cs
  32. 19 0
      Assets/Script/Tool/Anim/TweenGra.cs
  33. 20 1
      Assets/Script/Tool/Anim/TweenRect.cs
  34. 19 0
      Assets/Script/Tool/Anim/TweenScale.cs
  35. 143 0
      Assets/Script/Tool/Anim/TweenSr.cs
  36. 2 2
      Assets/Script/Tool/Anim/TweenSr.cs.meta
  37. 19 0
      Assets/Script/Tool/Anim/TweenVec.cs
  38. 3 3
      Assets/Script/Tool/Auxiliary.cs
  39. 55 6
      Assets/Script/Tool/Data.cs
  40. 104 0
      Assets/Script/Tool/Extension.cs
  41. 1 1
      Assets/Script/Tool/SpriteAsset.cs
  42. 373 116
      Assets/Script/Tool/UI/TextPlus.cs
  43. 0 316
      Assets/TestText.cs
  44. 3 3
      MyLovelyGarden.Editor.csproj
  45. 4 3
      MyLovelyGarden.csproj
  46. 13 16
      MyLovelyGarden.sln
  47. 1 3
      MyLovelyGarden.txt
  48. 二進制
      ProjectSettings/GraphicsSettings.asset

二進制
.vs/MyLovelyGarden/v14/.suo


二進制
Assets/Resources/Animations/Flower.controller


二進制
Assets/Resources/Animations/FlowerAnimContainer.controller


+ 0 - 8
Assets/Resources/Animations/FlowerAnimContainer.controller.meta

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

二進制
Assets/Resources/Garden.unity


二進制
Assets/Resources/Prefab/Object/Flower.prefab


二進制
Assets/Resources/Prefab/PrefabUI/Canvas.prefab


二進制
Assets/Resources/Prefab/PrefabUI/SkillItem.prefab


二進制
Assets/Resources/Sprite/Garden/提示图标底板.png


+ 4 - 36
Assets/Resources/Sprite/SpriteUI/Skill/4大技能4da.png.meta → Assets/Resources/Sprite/Garden/提示图标底板.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
-guid: 50a1f7a48c4036f4da811dd54cd1bc23
-timeCreated: 1489384390
+guid: 11d74327a607f964abd9325d6ae00192
+timeCreated: 1490863974
 licenseType: Pro
 licenseType: Pro
 TextureImporter:
 TextureImporter:
   fileIDToRecycleName: {}
   fileIDToRecycleName: {}
@@ -58,43 +58,11 @@ TextureImporter:
     crunchedCompression: 0
     crunchedCompression: 0
     allowsAlphaSplitting: 0
     allowsAlphaSplitting: 0
     overridden: 0
     overridden: 0
-  - buildTarget: Standalone
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-  - buildTarget: iPhone
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-  - buildTarget: Android
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-  - buildTarget: WebGL
-    maxTextureSize: 2048
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
   spriteSheet:
   spriteSheet:
     serializedVersion: 2
     serializedVersion: 2
     sprites: []
     sprites: []
     outline: []
     outline: []
-  spritePackingTag: 3
+  spritePackingTag: 
   userData: 
   userData: 
-  assetBundleName: skill
+  assetBundleName: 
   assetBundleVariant: 
   assetBundleVariant: 

二進制
Assets/Resources/Sprite/Reference/参考.jpg


+ 68 - 0
Assets/Resources/Sprite/Reference/参考.jpg.meta

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: cce32f605187dbf4e95e492691ad6ffd
+timeCreated: 1490877386
+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: 

二進制
Assets/Resources/Sprite/SpriteUI/Health Wheel.png


+ 55 - 0
Assets/Resources/Sprite/SpriteUI/Health Wheel.png.meta

@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: c7dd97e9cd879304795b366cbf187bfe
+timeCreated: 1431337672
+licenseType: Store
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: .25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 8
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: 16
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: .5, y: .5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    sprites: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二進制
Assets/Resources/Sprite/SpriteUI/Skill/4大技能4da.png → Assets/Resources/Sprite/SpriteUI/快来打理花园对话框.png


+ 68 - 0
Assets/Resources/Sprite/SpriteUI/快来打理花园对话框.png.meta

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 5c219cf5190fa4c47bbde3e13a53e4e4
+timeCreated: 1490876618
+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: 

二進制
Assets/Resources/Sprite/SpriteUI/游戏返回按钮·左上角.png


+ 68 - 0
Assets/Resources/Sprite/SpriteUI/游戏返回按钮·左上角.png.meta

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 1a54fd35ff8e5224ca011a412abf11b1
+timeCreated: 1490879779
+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 - 2
Assets/Resources/XML/Config/PlayerConfig.xml

@@ -1,4 +1,5 @@
 <PlayerConfig>
 <PlayerConfig>
+  <Version value="1" />
   <Slot value="7" />
   <Slot value="7" />
   <Sign value="0" />
   <Sign value="0" />
   <Coin value="0" />
   <Coin value="0" />
@@ -7,9 +8,9 @@
   <Diamond value="0" />
   <Diamond value="0" />
   <QuitTime value="3/24/2017 10:40:04 PM" />
   <QuitTime value="3/24/2017 10:40:04 PM" />
   <MiniTimer value="0" />
   <MiniTimer value="0" />
-  <CircleTimer value="0" />
+  <CircleTimer value="10" />
   <CoinPerson value="0" />
   <CoinPerson value="0" />
-  <PlantList SlotA1="1" SlotA2="2" SlotA3="3" SlotA4="4" SlotA5="5" SlotA6="6" SlotA7="7" SlotA8="8" SlotA9="9" />
+  <PlantList SlotA1="0" SlotA2="1" SlotA3="2" SlotA4="3" SlotA5="4" SlotA6="5" SlotA7="6" />
   <FlowerList ID="1 2 3 4 5 6 7 8 9 10" />
   <FlowerList ID="1 2 3 4 5 6 7 8 9 10" />
   <SkillList>
   <SkillList>
     <免费获取金币 SkillType="Skill" ItemStatus="Lock" Level="0" CdTimer="0" EffectTimer="0" />
     <免费获取金币 SkillType="Skill" ItemStatus="Lock" Level="0" CdTimer="0" EffectTimer="0" />

+ 1 - 8
Assets/Resources/XML/Config/signin_config.xml

@@ -19,14 +19,7 @@
   <item id="18" flower="" diamond="" coin="7000" />
   <item id="18" flower="" diamond="" coin="7000" />
   <item id="19" flower="" diamond="" coin="8000" />
   <item id="19" flower="" diamond="" coin="8000" />
   <item id="20" flower="" diamond="" coin="8000" />
   <item id="20" flower="" diamond="" coin="8000" />
-  <item id="21" flower="" diamond="300" coin="" />
-  <item id="22" flower="" diamond="" coin="9000" />
-  <item id="23" flower="" diamond="" coin="9000" />
-  <item id="24" flower="" diamond="" coin="10000" />
-  <item id="25" flower="" diamond="" coin="10000" />
-  <item id="26" flower="" diamond="" coin="12000" />
-  <item id="27" flower="" diamond="" coin="12000" />
-  <item id="28" flower="21,22,23,24,25,26,27" diamond="500" coin="" />
+  <item id="28" flower="21,22,23,24,25,26,27" diamond="400" coin="" />
   <comment>
   <comment>
     <id>
     <id>
 id
 id

+ 6 - 2
Assets/Script/Manage/Initializer.cs

@@ -24,8 +24,12 @@ public class Initializer : MonoBehaviour
         {
         {
             gameObject.AddScript<Bundle>();
             gameObject.AddScript<Bundle>();
         }
         }
-           
-	    gameObject.AddScript<Auxiliary>();
+
+        if (Auxiliary.Instance == null)
+        {
+            gameObject.AddScript<Auxiliary>();
+        }
+
         gameObject.AddScript<ManaReso>();
         gameObject.AddScript<ManaReso>();
         gameObject.AddScript<ManaAnim>();
         gameObject.AddScript<ManaAnim>();
         gameObject.AddScript<ManaAudio>();
         gameObject.AddScript<ManaAudio>();

+ 292 - 0
Assets/Script/Manage/ManaAnim.cs

@@ -31,6 +31,7 @@ public class ManaAnim : Regist
     public static Dictionary<Curve, CurveFunctionV> FunctionDicV;
     public static Dictionary<Curve, CurveFunctionV> FunctionDicV;
     
     
     public static Dictionary<Transform, MoveVec> MoveVecDic;
     public static Dictionary<Transform, MoveVec> MoveVecDic;
+    public static Dictionary<Transform, TweenSr> TweenSrDic;
     public static Dictionary<Transform, TweenCG> TweenCgDic;
     public static Dictionary<Transform, TweenCG> TweenCgDic;
     public static Dictionary<Transform, TweenGra> TweenGraDic;
     public static Dictionary<Transform, TweenGra> TweenGraDic;
     public static Dictionary<Transform, TweenVec> TweenVecDic;
     public static Dictionary<Transform, TweenVec> TweenVecDic;
@@ -79,6 +80,7 @@ public class ManaAnim : Regist
         FunctionDicV = new Dictionary<Curve, CurveFunctionV>();
         FunctionDicV = new Dictionary<Curve, CurveFunctionV>();
 
 
         MoveVecDic = new Dictionary<Transform, MoveVec>();
         MoveVecDic = new Dictionary<Transform, MoveVec>();
+        TweenSrDic = new Dictionary<Transform, TweenSr>();
         TweenCgDic = new Dictionary<Transform, TweenCG>();
         TweenCgDic = new Dictionary<Transform, TweenCG>();
         TweenGraDic = new Dictionary<Transform, TweenGra>();
         TweenGraDic = new Dictionary<Transform, TweenGra>();
         TweenVecDic = new Dictionary<Transform, TweenVec>();
         TweenVecDic = new Dictionary<Transform, TweenVec>();
@@ -167,6 +169,20 @@ public class ManaAnim : Regist
     }
     }
 
 
 
 
+    public static void TweenForSr(Transform target)
+    {
+        TweenSr tweenSr;
+
+        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        {
+            tweenSr.StartForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
     public static void TweenForCG(Transform target)
     public static void TweenForCG(Transform target)
     {
     {
         TweenCG tweenCG;
         TweenCG tweenCG;
@@ -252,6 +268,20 @@ public class ManaAnim : Regist
     }
     }
 
 
 
 
+    public static void TweenBacSr(Transform target)
+    {
+        TweenSr tweenSr;
+
+        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        {
+            tweenSr.StartBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
     public static void TweenBacCG(Transform target)
     public static void TweenBacCG(Transform target)
     {
     {
         TweenCG tweenCG;
         TweenCG tweenCG;
@@ -336,6 +366,204 @@ public class ManaAnim : Regist
         }
         }
     }
     }
 
 
+
+    public static void TweenConForSr(Transform target)
+    {
+        TweenSr tweenSr;
+
+        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        {
+            tweenSr.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConForCG(Transform target)
+    {
+        TweenCG tweenCG;
+
+        if (TweenCgDic.TryGetValue(target, out tweenCG))
+        {
+            tweenCG.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConForGra(Transform target)
+    {
+        TweenGra tweenGra;
+
+        if (TweenGraDic.TryGetValue(target, out tweenGra))
+        {
+            tweenGra.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConForVec(Transform target)
+    {
+        TweenVec tweenVec;
+
+        if (TweenVecDic.TryGetValue(target, out tweenVec))
+        {
+            tweenVec.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConForRect(Transform target)
+    {
+        TweenRect tweenRect;
+
+        if (TweenRectDic.TryGetValue(target, out tweenRect))
+        {
+            tweenRect.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConForScale(Transform target)
+    {
+        TweenScale tweenScale;
+
+        if (TweenScaleDic.TryGetValue(target, out tweenScale))
+        {
+            tweenScale.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConForAudio(Transform target)
+    {
+        TweenAudio tween;
+
+        if (TweenAudioDic.TryGetValue(target, out tween))
+        {
+            tween.ConfineForward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+
+    public static void TweenConBacSr(Transform target)
+    {
+        TweenSr tweenSr;
+
+        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        {
+            tweenSr.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConBacCG(Transform target)
+    {
+        TweenCG tweenCG;
+
+        if (TweenCgDic.TryGetValue(target, out tweenCG))
+        {
+            tweenCG.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConBacGra(Transform target)
+    {
+        TweenGra tweenGra;
+
+        if (TweenGraDic.TryGetValue(target, out tweenGra))
+        {
+            tweenGra.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception(target.name);
+        }
+    }
+
+    public static void TweenConBacVec(Transform target)
+    {
+        TweenVec tweenVec;
+
+        if (TweenVecDic.TryGetValue(target, out tweenVec))
+        {
+            tweenVec.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception(target.name);
+        }
+    }
+
+    public static void TweenConBacRect(Transform target)
+    {
+        TweenRect tweenRect;
+
+        if (TweenRectDic.TryGetValue(target, out tweenRect))
+        {
+            tweenRect.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConBacScale(Transform target)
+    {
+        TweenScale tweenScale;
+
+        if (TweenScaleDic.TryGetValue(target, out tweenScale))
+        {
+            tweenScale.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+    public static void TweenConBacAudio(Transform target)
+    {
+        TweenAudio tween;
+
+        if (TweenAudioDic.TryGetValue(target, out tween))
+        {
+            tween.ConfineBackward();
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
     #endregion
     #endregion
 
 
     #region 得到动画
     #region 得到动画
@@ -355,6 +583,21 @@ public class ManaAnim : Regist
     }
     }
 
 
 
 
+    public static TweenSr GetTweenSr(Transform target)
+    {
+        TweenSr tweenSr;
+
+        if (TweenSrDic.TryGetValue(target, out tweenSr))
+        {
+            return tweenSr;
+        }
+        else
+        {
+            throw new Exception();
+        }
+    }
+
+
     public static TweenCG GetTweenCG(Transform target)
     public static TweenCG GetTweenCG(Transform target)
     {
     {
         TweenCG tweenCG;
         TweenCG tweenCG;
@@ -464,6 +707,55 @@ public class ManaAnim : Regist
     }
     }
 
 
 
 
+    public static TweenSr CreateTweenSr(Transform target, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    {
+        if (TweenSrDic.ContainsKey(target))
+        {
+            SpriteRenderer sr = target.GetComponent<SpriteRenderer>();
+
+            TweenSr tween = TweenSrDic[target];
+
+            tween = new TweenSr(sr, origin, destination, duration, originActive, destActive, curve);
+
+            return tween;
+        }
+        else
+        {
+            SpriteRenderer sr = target.GetComponent<SpriteRenderer>();
+
+            TweenSr tween = new TweenSr(sr, origin, destination, duration, originActive, destActive, curve);
+
+            TweenSrDic.Add(target, tween);
+
+            return tween;
+        }
+    }
+
+    public static TweenSr CreateTweenSr(Transform target, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    {
+        if (TweenSrDic.ContainsKey(target))
+        {
+            SpriteRenderer sr = target.GetComponent<SpriteRenderer>();
+
+            TweenSr tween = TweenSrDic[target];
+
+            tween = new TweenSr(sr, sr.color, destination, duration, originActive, destActive, curve);
+
+            return tween;
+        }
+        else
+        {
+            SpriteRenderer sr = target.GetComponent<SpriteRenderer>();
+
+            TweenSr tween = new TweenSr(sr, sr.color, destination, duration, originActive, destActive, curve);
+
+            TweenSrDic.Add(target, tween);
+
+            return tween;
+        }
+    }
+
+
     public static TweenCG CreateTweenCG(Transform target, float origin, float destination,  float duration, bool originActive, bool destActive, Curve curve)
     public static TweenCG CreateTweenCG(Transform target, float origin, float destination,  float duration, bool originActive, bool destActive, Curve curve)
     {
     {
         if (TweenCgDic.ContainsKey(target))
         if (TweenCgDic.ContainsKey(target))

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

@@ -9,6 +9,8 @@ using System.Linq;
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
+using Random = UnityEngine.Random;
+
 public class ManaGarden : Regist
 public class ManaGarden : Regist
 {
 {
     #region 变量
     #region 变量
@@ -79,6 +81,10 @@ public class ManaGarden : Regist
     private static int _TotalFlowerSpec;
     private static int _TotalFlowerSpec;
     private static int _TotalFlowerRegu;
     private static int _TotalFlowerRegu;
 
 
+    public static bool Award;
+    public static bool AwardLock;
+    public static float AwardTimer;
+
     public static Slot SeleSlot;
     public static Slot SeleSlot;
     public static FlowerInfo SeleFlowerInfo;
     public static FlowerInfo SeleFlowerInfo;
 
 
@@ -88,6 +94,43 @@ public class ManaGarden : Regist
 
 
     #endregion
     #endregion
 
 
+    public void FixedUpdate()
+    {
+        if (Award && !AwardLock)
+        {
+            AwardTimer -= Time.fixedDeltaTime;
+
+            if (AwardTimer <= 0)
+            {
+                List<Flower> spareList = new List<Flower>();
+
+                for (int i = 0; i < PlantList.Count; i++)
+                {
+                    if (PlantList[i].Flower.Award == false)
+                    {
+                        spareList.Add(PlantList[i].Flower);
+                    }
+                }
+
+                if (spareList.Count == 1)
+                {
+                    Award = false;
+
+                    spareList[0].Award = true;
+
+                    AwardTimer = Random.Range(20, 60);
+                }
+                else
+                {
+                    spareList.Random().Award = true;
+
+                    AwardTimer = Random.Range(20, 60);
+                }
+            }
+        }
+    }
+
+
     public override void Instantiate()
     public override void Instantiate()
     {
     {
         ManaReso.Get("Garden", Folder.Garden, true, transform, true).AddScript<Garden>();
         ManaReso.Get("Garden", Folder.Garden, true, transform, true).AddScript<Garden>();
@@ -121,6 +164,10 @@ public class ManaGarden : Regist
 
 
     public override void RegistValueA()
     public override void RegistValueA()
     {
     {
+        Award = true;
+        AwardLock = false;
+        AwardTimer = Random.Range(20, 60);
+
         SlotList = new List<Slot>()
         SlotList = new List<Slot>()
         {
         {
             ManaReso.Get("SlotA1").AddComponent<Slot>(),
             ManaReso.Get("SlotA1").AddComponent<Slot>(),

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

@@ -212,8 +212,8 @@ public class ManaMiniGame : Regist
         {
         {
             _GameTimer = value;
             _GameTimer = value;
 
 
-            TimerBk.fillAmount = _GameTimer / GameTimer;
-
+            TimerIcon.fillAmount = _GameTimer / GameTime;
+            
             TimerLab.text = _GameTimer.ToString("0.0");
             TimerLab.text = _GameTimer.ToString("0.0");
         }
         }
     }
     }
@@ -240,7 +240,7 @@ public class ManaMiniGame : Regist
 
 
     public static Text BtnLab;
     public static Text BtnLab;
     public static Text TimerLab;
     public static Text TimerLab;
-    public static Image TimerBk;
+    public static Image TimerIcon;
     public static Award Award;
     public static Award Award;
     public static List<Flower> OpList;
     public static List<Flower> OpList;
     public static List<Flower> IdleList;
     public static List<Flower> IdleList;
@@ -326,7 +326,7 @@ public class ManaMiniGame : Regist
 
 
     public override void RegistReference()
     public override void RegistReference()
     {
     {
-        TimerBk = ManaReso.Get<Image>("D_TimerIcon");
+        TimerIcon = ManaReso.Get<Image>("D_TimerIcon");
 
 
         BtnLab = ManaReso.Get<Text>("D_BeginLab");
         BtnLab = ManaReso.Get<Text>("D_BeginLab");
         TimerLab = ManaReso.Get<Text>("D_TimerLab");
         TimerLab = ManaReso.Get<Text>("D_TimerLab");
@@ -455,6 +455,8 @@ public class ManaMiniGame : Regist
 
 
     public static void GameAbort()
     public static void GameAbort()
     {
     {
+        ManaGarden.AwardLock = false;
+
         if (Game)
         if (Game)
         {
         {
             ManaData.Mini = false;
             ManaData.Mini = false;
@@ -496,6 +498,8 @@ public class ManaMiniGame : Regist
 
 
     public static void GamePrepare()
     public static void GamePrepare()
     {
     {
+        ManaGarden.AwardLock = true;
+
         OpList = new List<Flower>();
         OpList = new List<Flower>();
         IdleList = new List<Flower>();
         IdleList = new List<Flower>();
         IdleList.Add(ManaReso.GetFlower(ManaGarden.FlowerInfoList[0], ManaReso.Get("SlotMini1")));
         IdleList.Add(ManaReso.GetFlower(ManaGarden.FlowerInfoList[0], ManaReso.Get("SlotMini1")));

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

@@ -221,6 +221,7 @@ public class ManaReso : Regist
         }
         }
         else
         else
         {
         {
+            flower.GoldBk.SetActive(false);
             flower.transform.localPosition = flower.LocalPos;
             flower.transform.localPosition = flower.LocalPos;
         }
         }
 
 
@@ -247,6 +248,7 @@ public class ManaReso : Regist
         }
         }
         else
         else
         {
         {
+            flower.GoldBk.SetActive(false);
             flower.transform.localPosition = flower.LocalPos;
             flower.transform.localPosition = flower.LocalPos;
         }
         }
 
 

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

@@ -80,7 +80,7 @@ public class Sign
                 {
                 {
                     ManaGarden.FlowerInfoList[FlowerList[i]].Unlock = true;
                     ManaGarden.FlowerInfoList[FlowerList[i]].Unlock = true;
 
 
-                    if (ManaData.Sign < 27)
+                    if (ManaData.Sign < 20)
                     {
                     {
                         ManaData.Sign++;
                         ManaData.Sign++;
                     }
                     }
@@ -314,7 +314,6 @@ public class ManaUI : Regist
 
 
         #region D
         #region D
 
 
-        ManaReso.SetText("D_QuitLab");
         ManaReso.SetText("D_ScoreTit");
         ManaReso.SetText("D_ScoreTit");
 
 
         ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
         ManaReso.SetText("D_BeginLab", Language.GetStr("UI", "D_BeginLab0"));
@@ -642,14 +641,24 @@ public class ManaUI : Regist
         );
         );
 
 
         #endregion
         #endregion
-        
+
         #region F_TabBtn
         #region F_TabBtn
 
 
+        ManaReso.Get("F_Elf").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("F_Store").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("F_Magic").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+        ManaReso.Get("F_Garden").CreateTweenScale(new Vector3(1, 1, 1), new Vector3(1.1f, 1.1f, 1.1f), 0.25f, true, true, Curve.EaseOutQuad);
+
         ManaReso.AddButtonEvent
         ManaReso.AddButtonEvent
         (
         (
             "F_Elf",
             "F_Elf",
             () =>
             () =>
             {
             {
+                ManaReso.Get("F_Elf").TweenForScale();
+                ManaReso.Get("F_Store").TweenConBacScale();
+                ManaReso.Get("F_Magic").TweenConBacScale();
+                ManaReso.Get("F_Garden").TweenConBacScale();
+
                 ManaReso.Get("F_Elf").SetAsLastSibling();
                 ManaReso.Get("F_Elf").SetAsLastSibling();
                 ManaReso.Get("F_Store").SetSiblingIndex(0);
                 ManaReso.Get("F_Store").SetSiblingIndex(0);
                 ManaReso.Get("F_Magic").SetSiblingIndex(1);
                 ManaReso.Get("F_Magic").SetSiblingIndex(1);
@@ -674,6 +683,11 @@ public class ManaUI : Regist
             "F_Store",
             "F_Store",
             () =>
             () =>
             {
             {
+                ManaReso.Get("F_Elf").TweenConBacScale();
+                ManaReso.Get("F_Store").TweenForScale();
+                ManaReso.Get("F_Magic").TweenConBacScale();
+                ManaReso.Get("F_Garden").TweenConBacScale();
+
                 ManaReso.Get("F_Elf").SetSiblingIndex(1);
                 ManaReso.Get("F_Elf").SetSiblingIndex(1);
                 ManaReso.Get("F_Store").SetAsLastSibling();
                 ManaReso.Get("F_Store").SetAsLastSibling();
                 ManaReso.Get("F_Magic").SetSiblingIndex(0);
                 ManaReso.Get("F_Magic").SetSiblingIndex(0);
@@ -698,6 +712,11 @@ public class ManaUI : Regist
             "F_Magic",
             "F_Magic",
             () =>
             () =>
             {
             {
+                ManaReso.Get("F_Elf").TweenConBacScale();
+                ManaReso.Get("F_Store").TweenConBacScale();
+                ManaReso.Get("F_Magic").TweenForScale();
+                ManaReso.Get("F_Garden").TweenConBacScale();
+
                 ManaReso.Get("F_Elf").SetSiblingIndex(1);
                 ManaReso.Get("F_Elf").SetSiblingIndex(1);
                 ManaReso.Get("F_Store").SetSiblingIndex(0);
                 ManaReso.Get("F_Store").SetSiblingIndex(0);
                 ManaReso.Get("F_Magic").SetAsLastSibling();
                 ManaReso.Get("F_Magic").SetAsLastSibling();
@@ -722,6 +741,11 @@ public class ManaUI : Regist
             "F_Garden",
             "F_Garden",
             () =>
             () =>
             {
             {
+                ManaReso.Get("F_Elf").TweenConBacScale();
+                ManaReso.Get("F_Store").TweenConBacScale();
+                ManaReso.Get("F_Magic").TweenConBacScale();
+                ManaReso.Get("F_Garden").TweenForScale();
+
                 ManaReso.Get("F_Elf").SetSiblingIndex(2);
                 ManaReso.Get("F_Elf").SetSiblingIndex(2);
                 ManaReso.Get("F_Store").SetSiblingIndex(0);
                 ManaReso.Get("F_Store").SetSiblingIndex(0);
                 ManaReso.Get("F_Magic").SetSiblingIndex(1);
                 ManaReso.Get("F_Magic").SetSiblingIndex(1);

+ 63 - 2
Assets/Script/Object/Flower.cs

@@ -160,6 +160,23 @@ public class Flower : ObjRoot, IPointerClickHandler
 
 
     #endregion
     #endregion
 
 
+    public bool Award
+    {
+        get { return _Award; }
+        set
+        {
+            _Award = value;
+
+            if (_Award)
+            {
+                ShowAward();
+            }
+            else
+            {
+                GetAward();
+            }
+        }
+    }
     public FlowerInfo FlowerInfo
     public FlowerInfo FlowerInfo
     {
     {
         get { return _FlowerInfo; }
         get { return _FlowerInfo; }
@@ -171,11 +188,14 @@ public class Flower : ObjRoot, IPointerClickHandler
         }
         }
     }
     }
 
 
+    public bool _Award;
     private FlowerInfo _FlowerInfo;
     private FlowerInfo _FlowerInfo;
 
 
     public int Id;
     public int Id;
     public Slot Slot;
     public Slot Slot;
     public Vector3 LocalPos;
     public Vector3 LocalPos;
+    public Transform GoldBk;
+    public Transform GoldIcon;
 
 
     private Dictionary<string, Transform> ChildDic;
     private Dictionary<string, Transform> ChildDic;
 
 
@@ -187,7 +207,9 @@ public class Flower : ObjRoot, IPointerClickHandler
         
         
         Auxiliary.CompileDic(transform, ChildDic);
         Auxiliary.CompileDic(transform, ChildDic);
 
 
+        GoldBk = ChildDic["GoldBk"];
         FlowerSr = ChildDic["FlowerIcon"].GetComponent<SpriteRenderer>();
         FlowerSr = ChildDic["FlowerIcon"].GetComponent<SpriteRenderer>();
+        GoldIcon = ChildDic["GoldIcon"];
         OperateIcon = ChildDic["OperateIcon"].GetComponent<SpriteRenderer>();
         OperateIcon = ChildDic["OperateIcon"].GetComponent<SpriteRenderer>();
     }
     }
 
 
@@ -283,10 +305,49 @@ public class Flower : ObjRoot, IPointerClickHandler
     #endregion
     #endregion
 
 
 
 
+    public void GetAward()
+    {
+        ManaGarden.Award = true;
+
+        int coin = Mathf.CeilToInt(ManaData.CoinPerson*Random.Range(0.05f, 0.08f)*ManaData.SkillPlus);
+
+        ManaData.Coin += coin;
+
+        ManaReso.GetHudText("+" + coin, Color.red, 18, ChildDic["GoldTra"], ManaReso.Get("A_HudParent"), true);
+
+        GoldBk.SetActive(false);
+    }
+
+    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.SetY(transform.position.y + 2.5f);
+
+        GoldBk.TweenForSr();
+        GoldIcon.TweenForSr();
+
+        GoldBk.MoveVec
+        (
+            GoldBk.transform.position + new Vector3(0, 0.5f, 0),
+            1f,
+            Curve.EaseOutQuad
+        );
+    }
+
+
     public void OnPointerClick(PointerEventData eventData)
     public void OnPointerClick(PointerEventData eventData)
     {
     {
-        ManaReso.Get("G_Flower").TweenForCG();
+        if (eventData.rawPointerPress.transform == transform)
+        {
+            ManaReso.Get("G_Flower").TweenForCG();
 
 
-        ManaGarden.ShowRetrieveCard(FlowerInfo);
+            ManaGarden.ShowRetrieveCard(FlowerInfo);
+        }
+        else if (eventData.rawPointerPress.transform == GoldBk)
+        {
+            Award = false;
+        }
     }
     }
 }
 }

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

@@ -386,7 +386,7 @@ public class Garden : Regist, IDragHandler, IPointerClickHandler, IEndDragHandle
             {
             {
                 ManaGarden.ShowPlantCard(slot, flowerInfo);
                 ManaGarden.ShowPlantCard(slot, flowerInfo);
 
 
-                Auxiliary.Inst.DelayCall
+                Auxiliary.Instance.DelayCall
                 (
                 (
                     () =>
                     () =>
                     {
                     {

+ 24 - 0
Assets/Script/Tool/Anim/Tween.cs

@@ -6,6 +6,9 @@ using System.Collections;
 
 
 public abstract class Tween 
 public abstract class Tween 
 {
 {
+    public bool InForward;
+    public bool InBackward;
+
     public bool IsForward;
     public bool IsForward;
     public bool IsBackward;
     public bool IsBackward;
     public UnityAction OnForwardStart;
     public UnityAction OnForwardStart;
@@ -23,9 +26,28 @@ public abstract class Tween
     public abstract bool DoBackward();
     public abstract bool DoBackward();
 
 
 
 
+    public void ConfineForward()
+    {
+        if (InForward)
+        {
+            StartForward();
+        }
+    }
+
+    public void ConfineBackward()
+    {
+        if (InBackward)
+        {
+            StartBackward();
+        }
+    }
+
+
     public virtual void StartForward()
     public virtual void StartForward()
     {
     {
         IsForward = true;
         IsForward = true;
+        InForward = false;
+
         OnForwardStart.Invoke();
         OnForwardStart.Invoke();
 
 
         ManaAnim.TweenForList.Add(this);
         ManaAnim.TweenForList.Add(this);
@@ -35,6 +57,8 @@ public abstract class Tween
     public virtual void StartBackward()
     public virtual void StartBackward()
     {
     {
         IsBackward = true;
         IsBackward = true;
+        InBackward = false;
+
         OnBackwardStart.Invoke();
         OnBackwardStart.Invoke();
 
 
         ManaAnim.TweenForList.Remove(this);
         ManaAnim.TweenForList.Remove(this);

+ 19 - 0
Assets/Script/Tool/Anim/TweenAudio.cs

@@ -17,6 +17,15 @@ public class TweenAudio : Tween
 
 
     public TweenAudio(AudioSource target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     public TweenAudio(AudioSource target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
+        if (Math.Abs(target.volume - origin) < 0.0005f)
+        {
+            InForward = true;
+        }
+        else if (Math.Abs(target.volume - destination) < 0.0005f)
+        {
+            InBackward = true;
+        }
+
         Func = ManaAnim.FunctionDicF[curve];
         Func = ManaAnim.FunctionDicF[curve];
         Target = target;
         Target = target;
 
 
@@ -58,6 +67,10 @@ public class TweenAudio : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.volume = Origin;
+        }
     }
     }
 
 
     public override void StartBackward()
     public override void StartBackward()
@@ -68,6 +81,10 @@ public class TweenAudio : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.volume = Destination;
+        }
     }
     }
 
 
     public override bool DoForward()
     public override bool DoForward()
@@ -81,6 +98,7 @@ public class TweenAudio : Tween
             Target.volume = Destination;
             Target.volume = Destination;
 
 
             IsForward = false;
             IsForward = false;
+            InBackward = true;
 
 
             OnForwardFinish.Invoke();
             OnForwardFinish.Invoke();
 
 
@@ -107,6 +125,7 @@ public class TweenAudio : Tween
             Target.volume = Origin;
             Target.volume = Origin;
 
 
             IsBackward = false;
             IsBackward = false;
+            InForward = true;
 
 
             OnBackwardFinish.Invoke();
             OnBackwardFinish.Invoke();
 
 

+ 19 - 0
Assets/Script/Tool/Anim/TweenCG.cs

@@ -17,6 +17,15 @@ public class TweenCG : Tween
 
 
     public TweenCG(CanvasGroup target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     public TweenCG(CanvasGroup target, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
+        if (Math.Abs(target.alpha - origin) < 0.0005f)
+        {
+            InForward = true;
+        }
+        else if (Math.Abs(target.alpha - destination) < 0.0005f)
+        {
+            InBackward = true;
+        }
+
         Func = ManaAnim.FunctionDicF[curve];
         Func = ManaAnim.FunctionDicF[curve];
         Target = target;
         Target = target;
 
 
@@ -63,6 +72,10 @@ public class TweenCG : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.alpha = Origin;
+        }
     }
     }
 
 
     public override void StartBackward()
     public override void StartBackward()
@@ -73,6 +86,10 @@ public class TweenCG : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.alpha = Destination;
+        }
     }
     }
 
 
     public override bool DoForward()
     public override bool DoForward()
@@ -86,6 +103,7 @@ public class TweenCG : Tween
             Target.alpha = Destination;
             Target.alpha = Destination;
 
 
             IsForward = false;
             IsForward = false;
+            InBackward = true;
 
 
             OnForwardFinish.Invoke();
             OnForwardFinish.Invoke();
 
 
@@ -112,6 +130,7 @@ public class TweenCG : Tween
             Target.alpha = Origin;
             Target.alpha = Origin;
 
 
             IsBackward = false;
             IsBackward = false;
+            InForward = true;
 
 
             OnBackwardFinish.Invoke();
             OnBackwardFinish.Invoke();
 
 

+ 19 - 0
Assets/Script/Tool/Anim/TweenGra.cs

@@ -18,6 +18,15 @@ public class TweenGra : Tween
 
 
     public TweenGra(Graphic target, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
     public TweenGra(Graphic target, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
+        if (target.color == origin)
+        {
+            InForward = true;
+        }
+        else if (target.color == destination)
+        {
+            InBackward = true;
+        }
+
         Func = ManaAnim.FunctionDicC[curve];
         Func = ManaAnim.FunctionDicC[curve];
         Target = target;
         Target = target;
 
 
@@ -60,6 +69,10 @@ public class TweenGra : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.color = Origin;
+        }
     }
     }
 
 
     public override void StartBackward()
     public override void StartBackward()
@@ -70,6 +83,10 @@ public class TweenGra : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.color = Destination;
+        }
     }
     }
 
 
     public override bool DoForward()
     public override bool DoForward()
@@ -83,6 +100,7 @@ public class TweenGra : Tween
             Target.color = Destination;
             Target.color = Destination;
 
 
             IsForward = false;
             IsForward = false;
+            InBackward = true;
 
 
             OnForwardFinish.Invoke();
             OnForwardFinish.Invoke();
 
 
@@ -109,6 +127,7 @@ public class TweenGra : Tween
             Target.color = Origin;
             Target.color = Origin;
 
 
             IsBackward = false;
             IsBackward = false;
+            InForward = true;
 
 
             OnBackwardFinish.Invoke();
             OnBackwardFinish.Invoke();
 
 

+ 20 - 1
Assets/Script/Tool/Anim/TweenRect.cs

@@ -15,8 +15,17 @@ public class TweenRect : Tween
 
 
     #endregion
     #endregion
 
 
-    public TweenRect(RectTransform target, Vector3 origin, Vector3 destination, float duration, bool originActive, bool destActive, Curve curve)
+    public TweenRect(RectTransform target, Vector2 origin, Vector2 destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
+        if (target.sizeDelta == origin)
+        {
+            InForward = true;
+        }
+        else if (target.sizeDelta == destination)
+        {
+            InBackward = true;
+        }
+
         CG = target.GetComponent<CanvasGroup>();
         CG = target.GetComponent<CanvasGroup>();
         Func = ManaAnim.FunctionDicV[curve];
         Func = ManaAnim.FunctionDicV[curve];
         Target = target;
         Target = target;
@@ -80,6 +89,10 @@ public class TweenRect : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.sizeDelta = Origin;
+        }
     }
     }
 
 
     public override void StartBackward()
     public override void StartBackward()
@@ -90,6 +103,10 @@ public class TweenRect : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.sizeDelta = Destination;
+        }
     }
     }
 
 
     public override bool DoForward()
     public override bool DoForward()
@@ -103,6 +120,7 @@ public class TweenRect : Tween
             Target.sizeDelta = Destination;
             Target.sizeDelta = Destination;
 
 
             IsForward = false;
             IsForward = false;
+            InBackward = true;
 
 
             OnForwardFinish.Invoke();
             OnForwardFinish.Invoke();
 
 
@@ -129,6 +147,7 @@ public class TweenRect : Tween
             Target.sizeDelta = Origin;
             Target.sizeDelta = Origin;
 
 
             IsBackward = false;
             IsBackward = false;
+            InForward = true;
 
 
             OnBackwardFinish.Invoke();
             OnBackwardFinish.Invoke();
 
 

+ 19 - 0
Assets/Script/Tool/Anim/TweenScale.cs

@@ -18,6 +18,15 @@ public class TweenScale : Tween
 
 
     public TweenScale(Transform target, Vector3 origin, Vector3 destination, float duration, bool originActive, bool destActive, Curve curve)
     public TweenScale(Transform target, Vector3 origin, Vector3 destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
+        if (target.localScale == origin)
+        {
+            InForward = true;
+        }
+        else if (target.localScale == destination)
+        {
+            InBackward = true;
+        }
+
         CG = target.GetComponent<CanvasGroup>();
         CG = target.GetComponent<CanvasGroup>();
         Func = ManaAnim.FunctionDicV[curve];
         Func = ManaAnim.FunctionDicV[curve];
         Target = target;
         Target = target;
@@ -82,6 +91,10 @@ public class TweenScale : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.localScale = Origin;
+        }
     }
     }
 
 
     public override void StartBackward()
     public override void StartBackward()
@@ -92,6 +105,10 @@ public class TweenScale : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.localScale = Destination;
+        }
     }
     }
 
 
     public override bool DoForward()
     public override bool DoForward()
@@ -105,6 +122,7 @@ public class TweenScale : Tween
             Target.localScale = Destination;
             Target.localScale = Destination;
 
 
             IsForward = false;
             IsForward = false;
+            InBackward = true;
 
 
             OnForwardFinish.Invoke();
             OnForwardFinish.Invoke();
 
 
@@ -131,6 +149,7 @@ public class TweenScale : Tween
             Target.localScale = Origin;
             Target.localScale = Origin;
 
 
             IsBackward = false;
             IsBackward = false;
+            InForward = true;
 
 
             OnBackwardFinish.Invoke();
             OnBackwardFinish.Invoke();
 
 

+ 143 - 0
Assets/Script/Tool/Anim/TweenSr.cs

@@ -0,0 +1,143 @@
+using UnityEngine;
+
+using System.Collections;
+
+public class TweenSr : Tween 
+{
+    #region 变量
+
+    protected Color Delta;
+    protected Color Origin;
+    protected Color Destination;
+    protected SpriteRenderer Target;
+    protected CurveFunctionC Func;
+
+    #endregion
+
+    public TweenSr(SpriteRenderer target, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    {
+        if (target.color == origin)
+        {
+            InForward = true;
+        }
+        else if (target.color == destination)
+        {
+            InBackward = true;
+        }
+
+        Func = ManaAnim.FunctionDicC[curve];
+        Target = target;
+
+        IsForward = false;
+        IsBackward = false;
+
+        Delta = destination - origin;
+        Origin = origin;
+        Duration = duration;
+        DestActive = destActive;
+        Destination = destination;
+        OriginActive = originActive;
+
+        OnForwardStart += () =>
+        {
+            Target.SetActive(true);
+        };
+
+        OnForwardFinish += () =>
+        {
+            Target.SetActive(DestActive);
+        };
+
+        OnBackwardStart += () =>
+        {
+            Target.SetActive(true);
+        };
+
+        OnBackwardFinish += () =>
+        {
+            Target.SetActive(OriginActive);
+        };
+    }
+
+    public override void StartForward()
+    {
+        base.StartForward();
+
+        if (IsBackward)
+        {
+            Timer = Duration - Timer;
+        }
+        else
+        {
+            Target.color = Origin;
+        }
+    }
+
+    public override void StartBackward()
+    {
+        base.StartBackward();
+
+        if (IsForward)
+        {
+            Timer = Duration - Timer;
+        }
+        else
+        {
+            Target.color = Destination;
+        }
+    }
+
+    public override bool DoForward()
+    {
+        Timer += Time.fixedDeltaTime;
+
+        if (Timer > Duration)
+        {
+            Timer = 0;
+
+            Target.color = Destination;
+
+            IsForward = false;
+            InBackward = true;
+
+            OnForwardFinish.Invoke();
+
+            ManaAnim.TweenForList.Remove(this);
+
+            return true;
+        }
+        else
+        {
+            Target.color = Func(Timer, Duration, Origin, Delta);
+
+            return false;
+        }
+    }
+
+    public override bool DoBackward()
+    {
+        Timer += Time.fixedDeltaTime;
+
+        if (Timer > Duration)
+        {
+            Timer = 0;
+
+            Target.color = Origin;
+
+            IsBackward = false;
+            InForward = true;
+
+            OnBackwardFinish.Invoke();
+
+            ManaAnim.TweenBacList.Remove(this);
+
+            return true;
+        }
+        else
+        {
+            Target.color = Func(Timer, Duration, Destination, new Color(-Delta.r, -Delta.g, -Delta.b, -Delta.a));
+
+            return false;
+        }
+    }
+}

+ 2 - 2
Assets/TestText.cs.meta → Assets/Script/Tool/Anim/TweenSr.cs.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
-guid: 9a904f40657a1fc44ad84109ff8999c9
-timeCreated: 1490772216
+guid: 007093b9812101e498ba3da920d311a3
+timeCreated: 1490862487
 licenseType: Pro
 licenseType: Pro
 MonoImporter:
 MonoImporter:
   serializedVersion: 2
   serializedVersion: 2

+ 19 - 0
Assets/Script/Tool/Anim/TweenVec.cs

@@ -18,6 +18,15 @@ public class TweenVec : Tween
 
 
     public TweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool originActive, bool destActive, Curve curve)
     public TweenVec(Transform target, Vector3 origin, Vector3 destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
+        if (target.position == origin)
+        {
+            InForward = true;
+        }
+        else if (target.position == destination)
+        {
+            InBackward = true;
+        }
+
         CG = target.GetComponent<CanvasGroup>();
         CG = target.GetComponent<CanvasGroup>();
         Func = ManaAnim.FunctionDicV[curve];
         Func = ManaAnim.FunctionDicV[curve];
         Target = target;
         Target = target;
@@ -81,6 +90,10 @@ public class TweenVec : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.position = Origin;
+        }
     }
     }
 
 
     public override void StartBackward()
     public override void StartBackward()
@@ -91,6 +104,10 @@ public class TweenVec : Tween
         {
         {
             Timer = Duration - Timer;
             Timer = Duration - Timer;
         }
         }
+        else
+        {
+            Target.position = Destination;
+        }
     }
     }
 
 
     public override bool DoForward()
     public override bool DoForward()
@@ -104,6 +121,7 @@ public class TweenVec : Tween
             Target.position = Destination;
             Target.position = Destination;
 
 
             IsForward = false;
             IsForward = false;
+            InBackward = true;
 
 
             OnForwardFinish.Invoke();
             OnForwardFinish.Invoke();
 
 
@@ -130,6 +148,7 @@ public class TweenVec : Tween
             Target.position = Origin;
             Target.position = Origin;
 
 
             IsBackward = false;
             IsBackward = false;
+            InForward = true;
 
 
             OnBackwardFinish.Invoke();
             OnBackwardFinish.Invoke();
 
 

+ 3 - 3
Assets/Script/Tool/Auxiliary.cs

@@ -26,7 +26,7 @@ public class Auxiliary : MonoBehaviour
 
 
     public static bool AnyKeyUp;
     public static bool AnyKeyUp;
     public static bool AnyKeyDown;
     public static bool AnyKeyDown;
-    public static Auxiliary Inst;
+    public static Auxiliary Instance;
 
 
     public static MD5 MD5
     public static MD5 MD5
     {
     {
@@ -62,9 +62,9 @@ public class Auxiliary : MonoBehaviour
 
 
     #endregion
     #endregion
 
 
-    private void Start()
+    private void Awake()
     {
     {
-        Inst = this;
+        Instance = this;
     }
     }
 
 
     private void Update()
     private void Update()

+ 55 - 6
Assets/Script/Tool/Data.cs

@@ -30,29 +30,78 @@ public class Data
         {
         {
             if (_PlayerDoc == null)
             if (_PlayerDoc == null)
             {
             {
-                FileInfo fileInfo = new FileInfo(Application.persistentDataPath + "/PlayerConfig.xml");
+                int version = 0;
+                int nativeVersion = 0;
+                XmlNode temoNode;
+                XmlDocument tempDoc1;
+                XmlDocument tempDoc2;
 
 
+                FileInfo fileInfo = new FileInfo(Application.persistentDataPath + "/PlayerConfig.xml");
+                
                 if (fileInfo.Exists)
                 if (fileInfo.Exists)
                 {
                 {
                     StreamReader sr = new StreamReader(Application.persistentDataPath + "/PlayerConfig.xml");
                     StreamReader sr = new StreamReader(Application.persistentDataPath + "/PlayerConfig.xml");
 
 
-                    _PlayerDoc = new XmlDocument();
-                    _PlayerDoc.LoadXml(sr.ReadToEnd());
+                    tempDoc1 = new XmlDocument();
+                    tempDoc1.LoadXml(sr.ReadToEnd());
 
 
                     sr.Close();
                     sr.Close();
+
+                    TextAsset textAsset = Bundle.Config.LoadAsset<TextAsset>("PlayerConfig");
+
+                    tempDoc2 = new XmlDocument();
+                    tempDoc2.LoadXml(textAsset.text);
+                    
+                    version = int.Parse(tempDoc2.SelectSingleNode("PlayerConfig").SelectSingleNode("Version").Attributes[0].Value);
+
+                    temoNode = tempDoc1.SelectSingleNode("PlayerConfig").SelectSingleNode("Version");
+
+                    if (temoNode == null)
+                    {
+                        StreamWriter sw = new StreamWriter(Application.persistentDataPath + "/PlayerConfig.xml");
+
+                        sw.Write(tempDoc2.OuterXml);
+
+                        sw.Close();
+
+                        _PlayerDoc = tempDoc2;
+                    }
+                    else
+                    {
+                        nativeVersion = int.Parse(temoNode.Attributes[0].Value);
+
+                        if (nativeVersion != version)
+                        {
+                            StreamWriter sw = new StreamWriter(Application.persistentDataPath + "/PlayerConfig.xml");
+
+                            sw.Write(tempDoc2.OuterXml);
+
+                            sw.Close();
+
+                            _PlayerDoc = tempDoc2;
+                        }
+                        else
+                        {
+                            _PlayerDoc = tempDoc1;
+                        }
+                    }
                 }
                 }
                 else
                 else
                 {
                 {
                     TextAsset textAsset = Bundle.Config.LoadAsset<TextAsset>("PlayerConfig");
                     TextAsset textAsset = Bundle.Config.LoadAsset<TextAsset>("PlayerConfig");
 
 
-                    _PlayerDoc = new XmlDocument();
-                    _PlayerDoc.LoadXml(textAsset.text);
+                    tempDoc2 = new XmlDocument();
+                    tempDoc2.LoadXml(textAsset.text);
 
 
                     StreamWriter sw = new StreamWriter(Application.persistentDataPath + "/PlayerConfig.xml");
                     StreamWriter sw = new StreamWriter(Application.persistentDataPath + "/PlayerConfig.xml");
 
 
-                    sw.Write(_PlayerDoc.OuterXml);
+                    sw.Write(tempDoc2.OuterXml);
 
 
                     sw.Close();
                     sw.Close();
+
+                    _PlayerDoc = tempDoc2;
+
+                    _PlayerDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("QuitTime").Attributes[0].Value = DateTime.Now.ToString();
                 }
                 }
             }
             }
 
 

+ 104 - 0
Assets/Script/Tool/Extension.cs

@@ -5,6 +5,8 @@ using System;
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
+using Random = UnityEngine.Random;
+
 public static class Extension
 public static class Extension
 {
 {
     #region List
     #region List
@@ -14,6 +16,11 @@ public static class Extension
         return list[list.Count - 1 - index];
         return list[list.Count - 1 - index];
     }
     }
 
 
+    public static T Random<T>(this List<T> list)
+    {
+        return list[UnityEngine.Random.Range(0, list.Count)];
+    }
+
     public static bool Valid<T>(this List<T> list)
     public static bool Valid<T>(this List<T> list)
     {
     {
         if (list == null || list.Count == 0)
         if (list == null || list.Count == 0)
@@ -173,6 +180,11 @@ public static class Extension
 
 
     #region Tween
     #region Tween
 
 
+    public static void TweenForSr(this Component comp)
+    {
+        ManaAnim.TweenForSr(comp.transform);
+    }
+
     public static void TweenForCG(this Component comp)
     public static void TweenForCG(this Component comp)
     {
     {
         ManaAnim.TweenForCG(comp.transform);
         ManaAnim.TweenForCG(comp.transform);
@@ -204,6 +216,11 @@ public static class Extension
     }
     }
 
 
 
 
+    public static void TweenBacSr(this Component comp)
+    {
+        ManaAnim.TweenBacSr(comp.transform);
+    }
+
     public static void TweenBacCG(this Component comp)
     public static void TweenBacCG(this Component comp)
     {
     {
         ManaAnim.TweenBacCG(comp.transform);
         ManaAnim.TweenBacCG(comp.transform);
@@ -235,6 +252,83 @@ public static class Extension
     }
     }
 
 
 
 
+    public static void TweenConForSr(this Component comp)
+    {
+        ManaAnim.TweenConForSr(comp.transform);
+    }
+
+    public static void TweenConForCG(this Component comp)
+    {
+        ManaAnim.TweenConForCG(comp.transform);
+    }
+
+    public static void TweenConForVec(this Component comp)
+    {
+        ManaAnim.TweenConForVec(comp.transform);
+    }
+
+    public static void TweenConForGra(this Component comp)
+    {
+        ManaAnim.TweenConForGra(comp.transform);
+    }
+
+    public static void TweenConForRect(this Component comp)
+    {
+        ManaAnim.TweenConForRect(comp.transform);
+    }
+
+    public static void TweenConForScale(this Component comp)
+    {
+        ManaAnim.TweenConForScale(comp.transform);
+    }
+
+    public static void TweenConForAudio(this Component comp)
+    {
+        ManaAnim.TweenConForAudio(comp.transform);
+    }
+
+
+    public static void TweenConBacSr(this Component comp)
+    {
+        ManaAnim.TweenConBacSr(comp.transform);
+    }
+
+    public static void TweenConBacCG(this Component comp)
+    {
+        ManaAnim.TweenConBacCG(comp.transform);
+    }
+
+    public static void TweenConBacVec(this Component comp)
+    {
+        ManaAnim.TweenConBacVec(comp.transform);
+    }
+
+    public static void TweenConBacGra(this Component comp)
+    {
+        ManaAnim.TweenConBacGra(comp.transform);
+    }
+
+    public static void TweenConBacRect(this Component comp)
+    {
+        ManaAnim.TweenConBacRect(comp.transform);
+    }
+
+    public static void TweenConBacScale(this Component comp)
+    {
+        ManaAnim.TweenConBacScale(comp.transform);
+    }
+
+    public static void TweenConBacAudio(this Component comp)
+    {
+        ManaAnim.TweenConBacAudio(comp.transform);
+    }
+
+
+    public static TweenSr GetTweenSr(this Component comp)
+    {
+        return ManaAnim.GetTweenSr(comp.transform);
+    }
+
     public static TweenCG GetTweenCG(this Component comp)
     public static TweenCG GetTweenCG(this Component comp)
     {
     {
         return ManaAnim.GetTweenCG(comp.transform);
         return ManaAnim.GetTweenCG(comp.transform);
@@ -266,6 +360,16 @@ public static class Extension
     }
     }
 
 
 
 
+    public static TweenSr CreateTweenSr(this Component comp, Color origin, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    {
+        return ManaAnim.CreateTweenSr(comp.transform, origin, destination, duration, originActive, destActive, curve);
+    }
+
+    public static TweenSr CreateTweenSr(this Component comp, Color destination, float duration, bool originActive, bool destActive, Curve curve)
+    {
+        return ManaAnim.CreateTweenSr(comp.transform, destination, duration, originActive, destActive, curve);
+    }
+
     public static TweenCG CreateTweenCG(this Component comp, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     public static TweenCG CreateTweenCG(this Component comp, float origin, float destination, float duration, bool originActive, bool destActive, Curve curve)
     {
     {
         return ManaAnim.CreateTweenCG(comp.transform, origin, destination, duration, originActive, destActive, curve);
         return ManaAnim.CreateTweenCG(comp.transform, origin, destination, duration, originActive, destActive, curve);

+ 1 - 1
Assets/Script/Tool/SpriteAsset.cs

@@ -70,10 +70,10 @@ public class SpriteAsset : MonoBehaviour
                 Vector2 lrUv = new Vector2(sprite.rect.xMax / width, sprite.rect.yMin / height);
                 Vector2 lrUv = new Vector2(sprite.rect.xMax / width, sprite.rect.yMin / height);
 
 
                 spriteInfo.UvList = new List<Vector2>();
                 spriteInfo.UvList = new List<Vector2>();
-                spriteInfo.UvList.Add(llUv);
                 spriteInfo.UvList.Add(ulUv);
                 spriteInfo.UvList.Add(ulUv);
                 spriteInfo.UvList.Add(urUv);
                 spriteInfo.UvList.Add(urUv);
                 spriteInfo.UvList.Add(lrUv);
                 spriteInfo.UvList.Add(lrUv);
+                spriteInfo.UvList.Add(llUv);
                 
                 
                 _SpriteInfoDic.Add(spriteInfo.Name, spriteInfo);
                 _SpriteInfoDic.Add(spriteInfo.Name, spriteInfo);
             }
             }

+ 373 - 116
Assets/Script/Tool/UI/TextPlus.cs

@@ -5,19 +5,74 @@ using System.Linq;
 using System.Collections;
 using System.Collections;
 using System.Collections.Generic;
 using System.Collections.Generic;
 
 
-public class TextPlus : Text
+public class LineInfo
 {
 {
-    #region
+    public int Count;
+    public int EndIndex;
+    public int StartIndex;
+
+    public LineInfo(int startIndex, int endIndex)
+    {
+        EndIndex = endIndex;
+        StartIndex = startIndex;
+
+        Count = EndIndex - StartIndex + 1;
+    }
+}
+
+public class RenderInfo
+{
+    public LineInfo LineInfo
+    {
+        get { return _LineInfo; }
+        set
+        {
+            _LineInfo = value;
+
+            EndIndex = _LineInfo.EndIndex;
+            StartIndex = _LineInfo.StartIndex;
+            LineCount = _LineInfo.Count;
+        }
+    }
+    public SpriteInfo SpriteInfo
+    {
+        get { return _SpriteInfo; }
+        set
+        {
+            _SpriteInfo = value;
+
+            UvList = _SpriteInfo.UvList;
+            RawWidth = _SpriteInfo.Width;
+            RawHeight = _SpriteInfo.Height;
+
+            RenderCount = RightIndex - LeftIndex + 1;
+        }
+    }
+
+    private LineInfo _LineInfo;
+    private SpriteInfo _SpriteInfo;
+
+    public int LineCount;
+    public int RenderCount;
 
 
     public int LeftIndex;
     public int LeftIndex;
     public int RightIndex;
     public int RightIndex;
-    public int BreakIndex;
 
 
-    public bool Draw;
+    public int EndIndex;
+    public int StartIndex;
+
     public float Width;
     public float Width;
     public float Height;
     public float Height;
-    public string SpriteName;
-    public SpriteInfo SpriteInfo;
+
+    public float RawWidth;
+    public float RawHeight;
+
+    public List<Vector2> UvList;
+}
+
+public class TextPlus : Text
+{
+    #region 变量
 
 
     public ImagePlus ImagePlus
     public ImagePlus ImagePlus
     {
     {
@@ -26,6 +81,15 @@ public class TextPlus : Text
             if (_ImagePlus == null)
             if (_ImagePlus == null)
             {
             {
                 _ImagePlus = GetComponentInChildren<ImagePlus>();
                 _ImagePlus = GetComponentInChildren<ImagePlus>();
+
+                if (_ImagePlus == null)
+                {
+                    GameObject go = new GameObject("ImagePlus", typeof(ImagePlus));
+
+                    RectTransform rectTra = go.GetComponent<RectTransform>();
+
+                    rectTra.SetParent(rectTransform);
+                }
             }
             }
 
 
             return _ImagePlus;
             return _ImagePlus;
@@ -35,33 +99,50 @@ public class TextPlus : Text
 
 
     private ImagePlus _ImagePlus;
     private ImagePlus _ImagePlus;
 
 
+    public bool Draw;
+    public RenderInfo RenderInfo;
+
+    public List<LineInfo> LineInfoList;
+
     #endregion
     #endregion
 
 
-    protected override void OnPopulateMesh(VertexHelper toFill)
+    protected override void Awake()
     {
     {
-        base.OnPopulateMesh(toFill);
+        base.Awake();
 
 
-        if (ImagePlus == null)
-        {
-            Debug.LogWarning("There is no ImagePlus");
+        verticalOverflow = VerticalWrapMode.Overflow;
+        horizontalOverflow = HorizontalWrapMode.Overflow;
+    }
 
 
-            return;
-        }
+    protected override void OnPopulateMesh(VertexHelper toFill)
+    {
+        base.OnPopulateMesh(toFill);
 
 
-        LeftIndex = text.IndexOf("<(");
-        RightIndex = text.IndexOf(")>");
+        int leftIndex = text.IndexOf("<(");
+        int rightIndex = text.IndexOf(")>");
 
 
-        if (LeftIndex == -1 || RightIndex == -1)
+        if (leftIndex == -1 || rightIndex == -1)
         {
         {
             Draw = false;
             Draw = false;
         }
         }
         else
         else
         {
         {
-            SpriteName = text.Between(LeftIndex + 2, RightIndex - 1);
+            rightIndex++;
 
 
-            if (SpriteAsset.SpriteInfoDic.TryGetValue(SpriteName, out SpriteInfo))
+            string spriteName = text.Between(leftIndex + 2, rightIndex - 2);
+
+            SpriteInfo spriteInfo;
+
+            if (SpriteAsset.SpriteInfoDic.TryGetValue(spriteName, out spriteInfo))
             {
             {
                 Draw = true;
                 Draw = true;
+
+                RenderInfo = new RenderInfo();
+
+                RenderInfo.LeftIndex = leftIndex;
+                RenderInfo.RightIndex = rightIndex;
+
+                RenderInfo.SpriteInfo = spriteInfo;
             }
             }
             else
             else
             {
             {
@@ -72,149 +153,325 @@ public class TextPlus : Text
         if (Draw)
         if (Draw)
         {
         {
             Draw = false;
             Draw = false;
-            
-            UIVertex[] vertices = new UIVertex[4];
 
 
-            List<UIVertex> vertexList = new List<UIVertex>();
+            List<UIVertex> vertexImage = new List<UIVertex>();
+            List<UIVertex> vertexStream = new List<UIVertex>();
 
 
-            toFill.GetUIVertexStream(vertexList);
-            
-            int row = text.Split('\n').Length;
+            toFill.GetUIVertexStream(vertexStream);
+
+            RenderInfo.Height = preferredHeight / cachedTextGenerator.lineCount;
+            RenderInfo.Width = (RenderInfo.Height / RenderInfo.RawHeight) * RenderInfo.RawWidth;
+
+            GetRenderLine();
+
+            RenderLine(vertexImage, vertexStream, toFill);
+
+            ImagePlus.UpdateStatus(true, new VertexHelper(), vertexImage);
+        }
+        else
+        {
+            ImagePlus.UpdateStatus(false, new VertexHelper(), null);
+        }
+    }
 
 
-            if (row == 1)
-            {
-                BreakIndex = text.Length;
-            }
-            else
-            {
-                BreakIndex = text.IndexOf('\n');
-            }
 
 
-            Height = preferredHeight/row;
+    protected void RenderLine(List<UIVertex> vertexImage, List<UIVertex> vertexStream, VertexHelper vertexHelper)
+    {
+        UIVertex[] vertices = new UIVertex[4];
+
+        vertices[0].color = Color.white;
+        vertices[1].color = Color.white;
+        vertices[2].color = Color.white;
+        vertices[3].color = Color.white;
 
 
-            Width = (Height / SpriteInfo.Height) * SpriteInfo.Width;
+        vertices[0].uv0 = RenderInfo.UvList[0];
+        vertices[1].uv0 = RenderInfo.UvList[1];
+        vertices[2].uv0 = RenderInfo.UvList[2];
+        vertices[3].uv0 = RenderInfo.UvList[3];
 
 
-            Vector3 centerLeft;
+        if (RenderInfo.LineCount == RenderInfo.RenderCount)
+        {
+            #region MyRegion
 
 
-            if (LeftIndex == 0)
+            if (alignment == TextAnchor.LowerCenter || alignment == TextAnchor.MiddleCenter || alignment == TextAnchor.UpperCenter)
             {
             {
-                centerLeft = (vertexList[LeftIndex * 6 + 4].position + vertexList[LeftIndex * 6 + 5].position) / 2;
+                #region MyRegion
+
+                Vector3 center = new Vector3(0, (vertexStream[RenderInfo.StartIndex * 6].position.y + vertexStream[RenderInfo.StartIndex * 6 + 4].position.y) / 2, 0);
+
+                vertices[0].position = center + new Vector3(-RenderInfo.Width / 2, RenderInfo.Height / 2, 0);
+                vertices[1].position = center + new Vector3(RenderInfo.Width / 2, RenderInfo.Height / 2, 0);
+                vertices[2].position = center + new Vector3(RenderInfo.Width / 2, -RenderInfo.Height / 2, 0);
+                vertices[3].position = center + new Vector3(-RenderInfo.Width / 2, -RenderInfo.Height / 2, 0);
+
+                #endregion
             }
             }
-            else
+            else if (alignment == TextAnchor.LowerRight || alignment == TextAnchor.MiddleRight || alignment == TextAnchor.UpperRight)
             {
             {
-                centerLeft = (vertexList[(LeftIndex -1)* 6 + 1].position + vertexList[(LeftIndex - 1)*6 + 2].position) / 2;
-            }
+                #region MyRegion
 
 
-            vertices[0].position = centerLeft + new Vector3(0, -Height/2, 0);
-            vertices[1].position = centerLeft + new Vector3(0, Height/2, 0);
-            vertices[2].position = centerLeft + new Vector3(Width, Height/2, 0);
-            vertices[3].position = centerLeft + new Vector3(Width, -Height/2, 0);
+                Vector3 centerRight = (vertexStream[RenderInfo.RightIndex * 6 + 1].position + vertexStream[RenderInfo.RightIndex * 6 + 2].position) / 2;
 
 
-            vertices[0].color = Color.white;
-            vertices[1].color = Color.white;
-            vertices[2].color = Color.white;
-            vertices[3].color = Color.white;
+                vertices[0].position = centerRight + new Vector3(-RenderInfo.Width, RenderInfo.Height / 2, 0);
+                vertices[1].position = centerRight + new Vector3(0, RenderInfo.Height / 2, 0);
+                vertices[2].position = centerRight + new Vector3(0, -RenderInfo.Height / 2, 0);
+                vertices[3].position = centerRight + new Vector3(-RenderInfo.Width, -RenderInfo.Height / 2, 0);
 
 
-            vertices[0].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[0];
-            vertices[1].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[1];
-            vertices[2].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[2];
-            vertices[3].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[3];
+                #endregion
+            }
+            else if (alignment == TextAnchor.LowerLeft || alignment == TextAnchor.MiddleLeft || alignment == TextAnchor.UpperLeft)
+            {
+                #region MyRegion
 
 
-            UIVertex vertex = new UIVertex();
+                Vector3 centerLeft = (vertexStream[0].position + vertexStream[4].position) / 2;
 
 
-            for (int i = LeftIndex; i < RightIndex + 2; i++)
-            {
-                toFill.SetUIVertex(vertex, i*4);
-                toFill.SetUIVertex(vertex, i*4 + 1);
-                toFill.SetUIVertex(vertex, i*4 + 2);
-                toFill.SetUIVertex(vertex, i*4 + 3);
+                vertices[0].position = centerLeft + new Vector3(0, RenderInfo.Height / 2, 0);
+                vertices[1].position = centerLeft + new Vector3(RenderInfo.Width, RenderInfo.Height / 2, 0);
+                vertices[2].position = centerLeft + new Vector3(RenderInfo.Width, -RenderInfo.Height / 2, 0);
+                vertices[3].position = centerLeft + new Vector3(0, -RenderInfo.Height / 2, 0);
+
+                #endregion
             }
             }
 
 
-            if (LeftIndex == 0)
+            #endregion
+        }
+        else
+        {
+            #region MyRegion
+
+            if (alignment == TextAnchor.LowerCenter || alignment == TextAnchor.MiddleCenter || alignment == TextAnchor.UpperCenter)
             {
             {
-                float offsetX1 = vertexList[(RightIndex + 2) * 6].position.x - vertices[3].position.x;
+                #region MyRegion
 
 
-                float offsetX2 = (vertexList[(BreakIndex - 1) * 6 + 1].position.x + vertices[0].position.x - offsetX1) / 2;
+                Vector3 centerLeft = new Vector3();
 
 
-                for (int i = RightIndex + 2; i < BreakIndex; i++)
+                if (RenderInfo.LeftIndex == RenderInfo.StartIndex)
                 {
                 {
-                    vertex = vertexList[i * 6];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4);
-
-                    vertex = vertexList[i * 6 + 1];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 1);
+                    centerLeft = (vertexStream[RenderInfo.LeftIndex * 6].position + vertexStream[RenderInfo.LeftIndex * 6 + 4].position) / 2;
+                }
+                else
+                {
+                    centerLeft = (vertexStream[(RenderInfo.LeftIndex - 1) * 6 + 1].position + vertexStream[(RenderInfo.LeftIndex - 1) * 6 + 2].position) / 2;
+                }
 
 
-                    vertex = vertexList[i * 6 + 2];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 2);
+                vertices[0].position = centerLeft + new Vector3(0, RenderInfo.Height / 2, 0);
+                vertices[1].position = centerLeft + new Vector3(RenderInfo.Width, RenderInfo.Height / 2, 0);
+                vertices[2].position = centerLeft + new Vector3(RenderInfo.Width, -RenderInfo.Height / 2, 0);
+                vertices[3].position = centerLeft + new Vector3(0, -RenderInfo.Height / 2, 0);
 
 
-                    vertex = vertexList[i * 6 + 4];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 3);
+                if ((RenderInfo.RightIndex) != RenderInfo.EndIndex)
+                {
+                    float offsetX1 = vertexStream[(RenderInfo.RightIndex + 1) * 6].position.x - vertices[1].position.x;
+                    float offsetX2 = (vertexStream[RenderInfo.EndIndex * 6 + 1].position.x + vertexStream[RenderInfo.StartIndex * 6].position.x - offsetX1) / 2;
+
+                    UIVertex newVertex;
+
+                    for (int i = RenderInfo.RightIndex + 1; i < RenderInfo.EndIndex + 1; i++)
+                    {
+                        newVertex = vertexStream[i * 6];
+                        newVertex.position.x -= offsetX1 + offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4);
+
+                        newVertex = vertexStream[i * 6 + 1];
+                        newVertex.position.x -= offsetX1 + offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 1);
+
+                        newVertex = vertexStream[i * 6 + 2];
+                        newVertex.position.x -= offsetX1 + offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 2);
+
+                        newVertex = vertexStream[i * 6 + 4];
+                        newVertex.position.x -= offsetX1 + offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 3);
+                    }
+
+                    for (int i = RenderInfo.StartIndex; i < RenderInfo.LeftIndex; i++)
+                    {
+                        newVertex = vertexStream[i * 6];
+                        newVertex.position.x -= offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4);
+
+                        newVertex = vertexStream[i * 6 + 1];
+                        newVertex.position.x -= offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 1);
+
+                        newVertex = vertexStream[i * 6 + 2];
+                        newVertex.position.x -= offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 2);
+
+                        newVertex = vertexStream[i * 6 + 4];
+                        newVertex.position.x -= offsetX2;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 3);
+                    }
+
+                    vertices[0].position.x -= offsetX2;
+                    vertices[1].position.x -= offsetX2;
+                    vertices[2].position.x -= offsetX2;
+                    vertices[3].position.x -= offsetX2;
                 }
                 }
 
 
-                vertices[0].position.x -= offsetX2;
-                vertices[1].position.x -= offsetX2;
-                vertices[2].position.x -= offsetX2;
-                vertices[3].position.x -= offsetX2;
+                #endregion
             }
             }
-            else
+            else if (alignment == TextAnchor.LowerRight || alignment == TextAnchor.MiddleRight || alignment == TextAnchor.UpperRight)
             {
             {
-                float offsetX1 = vertexList[(RightIndex + 2) * 6].position.x - vertices[3].position.x;
+                #region MyRegion
+
+                Vector3 centerRight = new Vector3();
+
+                if ((RenderInfo.RightIndex) == RenderInfo.EndIndex)
+                {
+                    centerRight = (vertexStream[RenderInfo.EndIndex * 6 + 1].position + vertexStream[RenderInfo.EndIndex * 6 + 2].position) / 2;
+                }
+                else
+                {
+                    centerRight = (vertexStream[(RenderInfo.RightIndex) * 6 + 1].position + vertexStream[(RenderInfo.RightIndex) * 6 + 2].position) / 2;
+                }
 
 
-                float offsetX2 = (vertexList[(BreakIndex - 1) * 6 + 1].position.x + vertexList[0].position.x - offsetX1) / 2;
+                vertices[0].position = centerRight + new Vector3(-RenderInfo.Width, RenderInfo.Height / 2, 0);
+                vertices[1].position = centerRight + new Vector3(0, RenderInfo.Height / 2, 0);
+                vertices[2].position = centerRight + new Vector3(0, -RenderInfo.Height / 2, 0);
+                vertices[3].position = centerRight + new Vector3(-RenderInfo.Width, -RenderInfo.Height / 2, 0);
 
 
-                for (int i = 0; i < LeftIndex; i++)
+                if (RenderInfo.LeftIndex != RenderInfo.StartIndex)
                 {
                 {
-                    vertex = vertexList[i * 6];
-                    vertex.position.x -= offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4);
+                    float offsetX1 = vertices[0].position.x - vertexStream[(RenderInfo.LeftIndex - 1) * 6 + 1].position.x;
+
+                    UIVertex newVertex;
 
 
-                    vertex = vertexList[i * 6 + 1];
-                    vertex.position.x -= offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 1);
+                    for (int i = RenderInfo.StartIndex; i < RenderInfo.LeftIndex; i++)
+                    {
+                        newVertex = vertexStream[i * 6];
+                        newVertex.position.x += offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4);
 
 
-                    vertex = vertexList[i * 6 + 2];
-                    vertex.position.x -= offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 2);
+                        newVertex = vertexStream[i * 6 + 1];
+                        newVertex.position.x += offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 1);
 
 
-                    vertex = vertexList[i * 6 + 4];
-                    vertex.position.x -= offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 3);
+                        newVertex = vertexStream[i * 6 + 2];
+                        newVertex.position.x += offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 2);
+
+                        newVertex = vertexStream[i * 6 + 4];
+                        newVertex.position.x += offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 3);
+                    }
+                }
+
+                #endregion
+            }
+            else if (alignment == TextAnchor.LowerLeft || alignment == TextAnchor.MiddleLeft || alignment == TextAnchor.UpperLeft)
+            {
+                #region MyRegion
+
+                Vector3 centerLeft = new Vector3();
+
+                if (RenderInfo.LeftIndex == RenderInfo.StartIndex)
+                {
+                    centerLeft = (vertexStream[RenderInfo.LeftIndex * 6].position + vertexStream[RenderInfo.LeftIndex * 6 + 4].position) / 2;
                 }
                 }
+                else
+                {
+                    centerLeft = (vertexStream[(RenderInfo.LeftIndex - 1) * 6 + 1].position + vertexStream[(RenderInfo.LeftIndex - 1) * 6 + 2].position) / 2;
+                }
+
+                vertices[0].position = centerLeft + new Vector3(0, RenderInfo.Height / 2, 0);
+                vertices[1].position = centerLeft + new Vector3(RenderInfo.Width, RenderInfo.Height / 2, 0);
+                vertices[2].position = centerLeft + new Vector3(RenderInfo.Width, -RenderInfo.Height / 2, 0);
+                vertices[3].position = centerLeft + new Vector3(0, -RenderInfo.Height / 2, 0);
 
 
-                for (int i = RightIndex + 2; i < BreakIndex; i++)
+                if ((RenderInfo.RightIndex) != RenderInfo.EndIndex)
                 {
                 {
-                    vertex = vertexList[i * 6];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4);
+                    float offsetX1 = vertexStream[(RenderInfo.RightIndex + 1) * 6].position.x - vertices[1].position.x;
+
+                    UIVertex newVertex;
+
+                    for (int i = RenderInfo.RightIndex + 1; i < RenderInfo.EndIndex + 1; i++)
+                    {
+                        newVertex = vertexStream[i * 6];
+                        newVertex.position.x -= offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4);
 
 
-                    vertex = vertexList[i * 6 + 1];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 1);
+                        newVertex = vertexStream[i * 6 + 1];
+                        newVertex.position.x -= offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 1);
 
 
-                    vertex = vertexList[i * 6 + 2];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 2);
+                        newVertex = vertexStream[i * 6 + 2];
+                        newVertex.position.x -= offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 2);
 
 
-                    vertex = vertexList[i * 6 + 4];
-                    vertex.position.x -= offsetX1 + offsetX2;
-                    toFill.SetUIVertex(vertex, i * 4 + 3);
+                        newVertex = vertexStream[i * 6 + 4];
+                        newVertex.position.x -= offsetX1;
+                        vertexHelper.SetUIVertex(newVertex, i * 4 + 3);
+                    }
                 }
                 }
 
 
-                vertices[0].position.x -= offsetX2;
-                vertices[1].position.x -= offsetX2;
-                vertices[2].position.x -= offsetX2;
-                vertices[3].position.x -= offsetX2;
+                #endregion
             }
             }
 
 
-            ImagePlus.UpdateStatus(true, new VertexHelper(), vertices.ToList());
+            #endregion
         }
         }
-        else
+
+        vertexImage.AddRange(vertices);
+
+        UIVertex vertex = new UIVertex();
+
+        for (int i = RenderInfo.LeftIndex; i < RenderInfo.RightIndex + 1; i++)
         {
         {
-            ImagePlus.UpdateStatus(false, new VertexHelper(), null);
+            vertexHelper.SetUIVertex(vertex, i * 4);
+            vertexHelper.SetUIVertex(vertex, i * 4 + 1);
+            vertexHelper.SetUIVertex(vertex, i * 4 + 2);
+            vertexHelper.SetUIVertex(vertex, i * 4 + 3);
+        }
+    }
+
+
+    protected List<LineInfo> GetLineInfo()
+    {
+        int startIndex = 0;
+
+        List<LineInfo> lineInfoList = new List<LineInfo>();
+
+        if (cachedTextGenerator.lineCount > 1)
+        {
+            for (int i = 0; i < text.Length; i++)
+            {
+                if (text[i] == '\n')
+                {
+                    if (text[startIndex] != '\n')
+                    {
+                        lineInfoList.Add(new LineInfo(startIndex, i));
+                    }
+
+                    if (i + 1 == text.Length)
+                    {
+                        return lineInfoList;
+                    }
+                    else
+                    {
+                        startIndex = i + 1;
+                    }
+                }
+            }
+        }
+
+        lineInfoList.Add(new LineInfo(startIndex, text.Length - 1));
+
+        return lineInfoList;
+    }
+
+    protected void GetRenderLine()
+    {
+        List<LineInfo> lineInfoList = GetLineInfo();
+
+        for (int i = 0; i < lineInfoList.Count; i++)
+        {
+            if (RenderInfo.LeftIndex >= lineInfoList[i].StartIndex && RenderInfo.LeftIndex < lineInfoList[i].EndIndex)
+            {
+                RenderInfo.LineInfo = lineInfoList[i];
+
+                break;
+            }
         }
         }
     }
     }
 }
 }

+ 0 - 316
Assets/TestText.cs

@@ -1,316 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-
-using System.Linq;
-using System.Collections;
-using System.Collections.Generic;
-
-public class LineInfo
-{
-    public int EndIndex;
-    public int StartIndex;
-
-    public LineInfo(int startIndex, int endIndex)
-    {
-        EndIndex = endIndex;
-        StartIndex = startIndex;
-    }
-}
-
-public class RenderInfo
-{
-    public LineInfo LineInfo;
-    public SpriteInfo SpriteInfo;
-
-    public RenderInfo(LineInfo lineInfo, SpriteInfo spriteInfo)
-    {
-        LineInfo = lineInfo;
-        SpriteInfo = spriteInfo;
-    }
-}
-
-public class TestText : Text
-{
-	#region 变量
-
-    public int LeftIndex;
-    public int RightIndex;
-
-    public bool Draw;
-    public float Width;
-    public float Height;
-    public string SpriteName;
-    public SpriteInfo SpriteInfo;
-    public List<LineInfo> LineInfoList;
-    public List<UIVertex> VertexImage;
-    public List<UIVertex> VertexStream;
-    public List<RenderInfo> RenderInfoList;
-
-    public ImagePlus ImagePlus
-    {
-        get
-        {
-            if (_ImagePlus == null)
-            {
-                _ImagePlus = GetComponentInChildren<ImagePlus>();
-
-                if (_ImagePlus == null)
-                {
-                    GameObject go = new GameObject("ImagePlus", typeof(ImagePlus));
-
-                    RectTransform rectTra = go.GetComponent<RectTransform>();
-
-                    rectTra.SetParent(rectTransform);
-                }
-            }
-
-            return _ImagePlus;
-        }
-        set { _ImagePlus = value; }
-    }
-
-    private ImagePlus _ImagePlus;
-
-    #endregion
-
-    protected override void Awake()
-    {
-        base.Awake();
-
-        verticalOverflow = VerticalWrapMode.Overflow;
-        horizontalOverflow = HorizontalWrapMode.Wrap;
-    }
-
-    protected override void OnPopulateMesh(VertexHelper toFill)
-    {
-        base.OnPopulateMesh(toFill);
-
-        if (ImagePlus == null)
-        {
-            Debug.LogWarning("There is no ImagePlus");
-
-            return;
-        }
-
-        LeftIndex = text.IndexOf("<(");
-        RightIndex = text.IndexOf(")>");
-
-        if (LeftIndex == -1 || RightIndex == -1)
-        {
-            Draw = false;
-        }
-        else
-        {
-            SpriteName = text.Between(LeftIndex + 2, RightIndex - 1);
-
-            if (SpriteAsset.SpriteInfoDic.TryGetValue(SpriteName, out SpriteInfo))
-            {
-                Draw = true;
-            }
-            else
-            {
-                Draw = false;
-            }
-        }
-
-        if (Draw)
-        {
-            Draw = false;
-
-            VertexImage = new List<UIVertex>();
-            VertexStream = new List<UIVertex>();
-
-            toFill.GetUIVertexStream(VertexStream);
-
-            Height = preferredHeight / cachedTextGenerator.lineCount;
-
-            Width = (Height / SpriteInfo.Height) * SpriteInfo.Width;
-
-            LineInfoList = GetLineInfo();
-
-            RenderInfoList = GetRenderInfo();
-
-            RenderLine(RenderInfoList[0], VertexImage, VertexStream, toFill);
-
-            ImagePlus.UpdateStatus(true, new VertexHelper(), VertexImage);
-        }
-        else
-        {
-            ImagePlus.UpdateStatus(false, new VertexHelper(), null);
-        }
-    }
-
-
-    protected void RenderLine(RenderInfo renderInfo, List<UIVertex> vertexImage, List<UIVertex> vertexStream, VertexHelper toFill)
-    {
-        Vector3 centerLeft = new Vector3();
-
-        if (LeftIndex == renderInfo.LineInfo.StartIndex)
-        {
-            centerLeft = (vertexStream[LeftIndex * 6 + 4].position + vertexStream[LeftIndex * 6 + 5].position) / 2;
-        }
-        else
-        {
-            centerLeft = (vertexStream[(LeftIndex - 1) * 6 + 1].position + vertexStream[(LeftIndex - 1) * 6 + 2].position) / 2;
-        }
-
-        UIVertex[] vertices = new UIVertex[4];
-
-        vertices[0].position = centerLeft + new Vector3(0, -Height / 2, 0);
-        vertices[1].position = centerLeft + new Vector3(0, Height / 2, 0);
-        vertices[2].position = centerLeft + new Vector3(Width, Height / 2, 0);
-        vertices[3].position = centerLeft + new Vector3(Width, -Height / 2, 0);
-
-        vertices[0].color = Color.white;
-        vertices[1].color = Color.white;
-        vertices[2].color = Color.white;
-        vertices[3].color = Color.white;
-
-        vertices[0].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[0];
-        vertices[1].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[1];
-        vertices[2].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[2];
-        vertices[3].uv0 = SpriteAsset.SpriteInfoDic[SpriteName].UvList[3];
-
-        UIVertex vertex = new UIVertex();
-
-        for (int i = LeftIndex; i < RightIndex + 2; i++)
-        {
-            toFill.SetUIVertex(vertex, i * 4);
-            toFill.SetUIVertex(vertex, i * 4 + 1);
-            toFill.SetUIVertex(vertex, i * 4 + 2);
-            toFill.SetUIVertex(vertex, i * 4 + 3);
-        }
-
-        if (LeftIndex == renderInfo.LineInfo.StartIndex)
-        {
-            float offsetX1 = VertexStream[(RightIndex + 2) * 6].position.x - vertices[3].position.x;
-
-            float offsetX2 = (VertexStream[(BreakIndex - 1) * 6 + 1].position.x + vertices[0].position.x - offsetX1) / 2;
-
-            for (int i = RightIndex + 2; i < BreakIndex; i++)
-            {
-                vertex = VertexStream[i * 6];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4);
-
-                vertex = VertexStream[i * 6 + 1];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 1);
-
-                vertex = VertexStream[i * 6 + 2];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 2);
-
-                vertex = VertexStream[i * 6 + 4];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 3);
-            }
-
-            vertices[0].position.x -= offsetX2;
-            vertices[1].position.x -= offsetX2;
-            vertices[2].position.x -= offsetX2;
-            vertices[3].position.x -= offsetX2;
-        }
-        else
-        {
-            float offsetX1 = VertexStream[(RightIndex + 2) * 6].position.x - vertices[3].position.x;
-
-            float offsetX2 = (VertexStream[(BreakIndex - 1) * 6 + 1].position.x + VertexStream[0].position.x - offsetX1) / 2;
-
-            for (int i = 0; i < LeftIndex; i++)
-            {
-                vertex = VertexStream[i * 6];
-                vertex.position.x -= offsetX2;
-                toFill.SetUIVertex(vertex, i * 4);
-
-                vertex = VertexStream[i * 6 + 1];
-                vertex.position.x -= offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 1);
-
-                vertex = VertexStream[i * 6 + 2];
-                vertex.position.x -= offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 2);
-
-                vertex = VertexStream[i * 6 + 4];
-                vertex.position.x -= offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 3);
-            }
-
-            for (int i = RightIndex + 2; i < BreakIndex; i++)
-            {
-                vertex = VertexStream[i * 6];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4);
-
-                vertex = VertexStream[i * 6 + 1];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 1);
-
-                vertex = VertexStream[i * 6 + 2];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 2);
-
-                vertex = VertexStream[i * 6 + 4];
-                vertex.position.x -= offsetX1 + offsetX2;
-                toFill.SetUIVertex(vertex, i * 4 + 3);
-            }
-
-            vertices[0].position.x -= offsetX2;
-            vertices[1].position.x -= offsetX2;
-            vertices[2].position.x -= offsetX2;
-            vertices[3].position.x -= offsetX2;
-        }
-    }
-
-
-    protected List<LineInfo> GetLineInfo()
-    {
-        int startIndex = 0;
-
-        List<LineInfo> lineInfoList = new List<LineInfo>();
-
-        if (cachedTextGenerator.lineCount > 1)
-        {
-            for (int i = 0; i < text.Length; i++)
-            {
-                if (text[i] == '\n')
-                {
-                    if (text[startIndex] != '\n')
-                    {
-                        lineInfoList.Add(new LineInfo(startIndex, i));
-                    }
-                    
-                    if (i + 1 == text.Length)
-                    {
-                        return lineInfoList;
-                    }
-                    else
-                    {
-                        startIndex = i + 1;
-                    }
-                }
-            }
-        }
-        
-        lineInfoList.Add(new LineInfo(startIndex, text.Length - 1));
-
-        return lineInfoList;
-    }
-
-    protected List<RenderInfo> GetRenderInfo()
-    {
-        List<RenderInfo> renderInfoList = new List<RenderInfo>();
-
-        for (int i = 0; i < LineInfoList.Count; i++)
-        {
-            if (LeftIndex >= LineInfoList[i].StartIndex && LeftIndex < LineInfoList[i].EndIndex)
-            {
-                renderInfoList.Add(new RenderInfo(LineInfoList[i], SpriteInfo));
-
-                break;
-            }
-        }
-
-        return renderInfoList;
-    }
-}

+ 3 - 3
MyLovelyGarden.Editor.csproj

@@ -15,7 +15,7 @@
     <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
     <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
     <CompilerResponseFile></CompilerResponseFile>
     <CompilerResponseFile></CompilerResponseFile>
     <UnityProjectType>Editor:5</UnityProjectType>
     <UnityProjectType>Editor:5</UnityProjectType>
-    <UnityBuildTarget>Android:13</UnityBuildTarget>
+    <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
     <UnityVersion>5.5.0f3</UnityVersion>
     <UnityVersion>5.5.0f3</UnityVersion>
     <RootNamespace></RootNamespace>
     <RootNamespace></RootNamespace>
     <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
     <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
@@ -27,7 +27,7 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_ANDROID;ENABLE_SUBSTANCE;UNITY_ANDROID_API;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;PLATFORM_SUPPORTS_ADS_ID;UNITY_CAN_SHOW_SPLASH_SCREEN;ENABLE_VIDEO;ENABLE_VR;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@@ -37,7 +37,7 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_ANDROID;ENABLE_SUBSTANCE;UNITY_ANDROID_API;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;PLATFORM_SUPPORTS_ADS_ID;UNITY_CAN_SHOW_SPLASH_SCREEN;ENABLE_VIDEO;ENABLE_VR;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>

+ 4 - 3
MyLovelyGarden.csproj

@@ -15,7 +15,7 @@
     <TargetFrameworkProfile>Unity Subset v3.5</TargetFrameworkProfile>
     <TargetFrameworkProfile>Unity Subset v3.5</TargetFrameworkProfile>
     <CompilerResponseFile></CompilerResponseFile>
     <CompilerResponseFile></CompilerResponseFile>
     <UnityProjectType>Game:1</UnityProjectType>
     <UnityProjectType>Game:1</UnityProjectType>
-    <UnityBuildTarget>Android:13</UnityBuildTarget>
+    <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
     <UnityVersion>5.5.0f3</UnityVersion>
     <UnityVersion>5.5.0f3</UnityVersion>
     <RootNamespace></RootNamespace>
     <RootNamespace></RootNamespace>
     <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
     <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
@@ -27,7 +27,7 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_ANDROID;ENABLE_SUBSTANCE;UNITY_ANDROID_API;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;PLATFORM_SUPPORTS_ADS_ID;UNITY_CAN_SHOW_SPLASH_SCREEN;ENABLE_VIDEO;ENABLE_VR;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@@ -37,7 +37,7 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_ANDROID;ENABLE_SUBSTANCE;UNITY_ANDROID_API;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;PLATFORM_SUPPORTS_ADS_ID;UNITY_CAN_SHOW_SPLASH_SCREEN;ENABLE_VIDEO;ENABLE_VR;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_0;UNITY_5_5;UNITY_5;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
@@ -126,6 +126,7 @@
     <Compile Include="Assets\Script\Tool\Anim\TweenGra.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenGra.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenRect.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenRect.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenScale.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenScale.cs" />
+    <Compile Include="Assets\Script\Tool\Anim\TweenSr.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenVec.cs" />
     <Compile Include="Assets\Script\Tool\Anim\TweenVec.cs" />
     <Compile Include="Assets\Script\Tool\Auxiliary.cs" />
     <Compile Include="Assets\Script\Tool\Auxiliary.cs" />
     <Compile Include="Assets\Script\Tool\Bundle.cs" />
     <Compile Include="Assets\Script\Tool\Bundle.cs" />

+ 13 - 16
MyLovelyGarden.sln

@@ -1,9 +1,9 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2008
-
-Project("{8A8BB0A8-D809-F2DF-89D6-F26151FFF558}") = "MyLovelyGarden", "Assembly-CSharp.csproj", "{21BB93BC-2239-D8F5-1219-201F8DCBAF49}"
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2015
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyLovelyGarden", "MyLovelyGarden.csproj", "{9F3A3259-D53B-F6C8-8878-C5B99621035A}"
 EndProject
 EndProject
-Project("{8A8BB0A8-D809-F2DF-89D6-F26151FFF558}") = "MyLovelyGarden", "Assembly-CSharp-Editor.csproj", "{A08052E5-32CE-91C0-FF56-C60C901D6BEF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyLovelyGarden.Editor", "MyLovelyGarden.Editor.csproj", "{B575449E-FD9A-1672-368B-EC1E1252F6E4}"
 EndProject
 EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,19 +11,16 @@ Global
 		Release|Any CPU = Release|Any CPU
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{21BB93BC-2239-D8F5-1219-201F8DCBAF49}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A08052E5-32CE-91C0-FF56-C60C901D6BEF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9F3A3259-D53B-F6C8-8878-C5B99621035A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B575449E-FD9A-1672-368B-EC1E1252F6E4}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	EndGlobalSection
-	GlobalSection(MonoDevelopProperties) = preSolution
-		StartupItem = Assembly-CSharp.csproj
-	EndGlobalSection
 EndGlobal
 EndGlobal

+ 1 - 3
MyLovelyGarden.txt

@@ -1,6 +1,4 @@
-能显示多个图片 图片能出现在任意位置
-
-TextPlus更具Alignment设置位置
+美术文档
 
 
 
 
 字体
 字体

二進制
ProjectSettings/GraphicsSettings.asset