|
@@ -1,28 +1,32 @@
|
|
|
using UnityEngine;
|
|
|
using UnityEngine.EventSystems;
|
|
|
|
|
|
+using UnityEngine.UI;
|
|
|
using System.Collections;
|
|
|
+using System.Collections.Generic;
|
|
|
|
|
|
public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDragHandler
|
|
|
{
|
|
|
#region 变量
|
|
|
|
|
|
- private int SlideIndex;
|
|
|
- private int SlideCount;
|
|
|
+ private int Page;
|
|
|
private bool Flag1;
|
|
|
+ private bool Flag2;
|
|
|
private float Ratio2;
|
|
|
private float Ratio3;
|
|
|
private float Ratio4;
|
|
|
- private float SliderX;
|
|
|
- private float ExtentX;
|
|
|
- private float SlideSpeed;
|
|
|
private float LeftBorder;
|
|
|
+ private float SlideSpeed;
|
|
|
private float RightBorder;
|
|
|
private Transform Garden2;
|
|
|
private Transform Garden3;
|
|
|
private Transform Garden4;
|
|
|
private Transform GardenA;
|
|
|
- private SpriteRenderer GardenSrA;
|
|
|
+
|
|
|
+ private List<Vector3> VectorList2;
|
|
|
+ private List<Vector3> VectorList3;
|
|
|
+ private List<Vector3> VectorList4;
|
|
|
+ private List<Vector3> VectorListA;
|
|
|
|
|
|
#endregion
|
|
|
|
|
@@ -34,30 +38,43 @@ public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDra
|
|
|
|
|
|
private void Update()
|
|
|
{
|
|
|
-
|
|
|
+ if (Input.GetKeyDown(KeyCode.U))
|
|
|
+ {
|
|
|
+ NextPage();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Input.GetKeyDown(KeyCode.Y))
|
|
|
+ {
|
|
|
+ PrevPage();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
private void RegistValue()
|
|
|
{
|
|
|
Flag1 = true;
|
|
|
- SlideIndex = 1;
|
|
|
- SlideCount = 2;
|
|
|
+ Flag2 = true;
|
|
|
+
|
|
|
+ Page = 0;
|
|
|
+ Ratio2 = 0.25f;
|
|
|
+ Ratio3 = 0.5f;
|
|
|
+ Ratio4 = 0.75f;
|
|
|
SlideSpeed = 0.1f;
|
|
|
|
|
|
- ExtentX = GardenSrA.bounds.extents.x;
|
|
|
- LeftBorder = GardenA.position.x - 2*ExtentX;
|
|
|
- RightBorder = GardenA.position.x;
|
|
|
+ LeftBorder = VectorListA[0].x;
|
|
|
+ RightBorder = VectorListA[VectorListA.Count - 1].x;
|
|
|
|
|
|
- Ratio2 = 0.5f/ExtentX;
|
|
|
- Ratio3 = 1f/ExtentX;
|
|
|
- Ratio4 = 1.5f/ExtentX;
|
|
|
+ Move move = GardenA.CreateMove();
|
|
|
|
|
|
- Garden2.CreateMove(1f, Curve.EaseOutQuad);
|
|
|
- Garden3.CreateMove(1f, Curve.EaseOutQuad);
|
|
|
- Garden4.CreateMove(1f, Curve.EaseOutQuad);
|
|
|
+ move.OnStart += () =>
|
|
|
+ {
|
|
|
+ Flag2 = false;
|
|
|
+ };
|
|
|
|
|
|
- GardenA.CreateMove(1f, Curve.EaseOutQuad);
|
|
|
+ move.OnFinish += () =>
|
|
|
+ {
|
|
|
+ Flag2 = true;
|
|
|
+ };
|
|
|
}
|
|
|
|
|
|
private void RegistReference()
|
|
@@ -65,27 +82,49 @@ public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDra
|
|
|
Garden2 = ManaReso.Get("GardenSr2");
|
|
|
Garden3 = ManaReso.Get("GardenSr3");
|
|
|
Garden4 = ManaReso.Get("GardenSr4");
|
|
|
+
|
|
|
GardenA = ManaReso.Get("GardenSrA");
|
|
|
- GardenSrA = ManaReso.Get<SpriteRenderer>("GardenSrA");
|
|
|
+
|
|
|
+ VectorList2 = new List<Vector3>()
|
|
|
+ {
|
|
|
+ ManaReso.Get("Tra21").position,
|
|
|
+ ManaReso.Get("Tra22").position,
|
|
|
+ };
|
|
|
+
|
|
|
+ VectorList3 = new List<Vector3>()
|
|
|
+ {
|
|
|
+ ManaReso.Get("Tra31").position,
|
|
|
+ ManaReso.Get("Tra32").position,
|
|
|
+ };
|
|
|
+
|
|
|
+ VectorList4 = new List<Vector3>()
|
|
|
+ {
|
|
|
+ ManaReso.Get("Tra41").position,
|
|
|
+ ManaReso.Get("Tra42").position,
|
|
|
+ };
|
|
|
+
|
|
|
+ VectorListA = new List<Vector3>()
|
|
|
+ {
|
|
|
+ ManaReso.Get("TraA1").position,
|
|
|
+ ManaReso.Get("TraB1").position,
|
|
|
+ };
|
|
|
}
|
|
|
|
|
|
|
|
|
public void OnDrag(PointerEventData eventData)
|
|
|
{
|
|
|
- if (Flag1)
|
|
|
+ if (Flag1 && Flag2)
|
|
|
{
|
|
|
float rawDeltaX = Mathf.Abs(eventData.pressPosition.x - eventData.position.x);
|
|
|
|
|
|
- if (eventData.delta.x < 0) //向右滑
|
|
|
+ if (eventData.delta.x < 0)
|
|
|
{
|
|
|
#region MyRegion
|
|
|
-
|
|
|
- if (GardenA.position.x > LeftBorder)
|
|
|
+
|
|
|
+ if (GardenA.position.x > RightBorder)
|
|
|
{
|
|
|
float tempX = Mathf.Clamp(eventData.delta.x / 10, -2, 2) * SlideSpeed;
|
|
|
|
|
|
- SliderX += tempX;
|
|
|
-
|
|
|
GardenA.Translate(GardenA.right * tempX, Space.World);
|
|
|
|
|
|
Garden2.Translate(Garden2.right * tempX * Ratio2, Space.World);
|
|
@@ -95,34 +134,22 @@ public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDra
|
|
|
|
|
|
if (rawDeltaX > 300)
|
|
|
{
|
|
|
- if (SlideIndex < SlideCount)
|
|
|
+ if (Page < VectorListA.Count - 1)
|
|
|
{
|
|
|
- float flipDist = -2*ExtentX - SliderX;
|
|
|
-
|
|
|
- GardenA.Move(new Vector3(flipDist, 0, 0), 0.75f);
|
|
|
-
|
|
|
- Garden2.Move(new Vector3(flipDist * Ratio2, 0, 0), 0.75f);
|
|
|
- Garden3.Move(new Vector3(flipDist * Ratio3, 0, 0), 0.75f);
|
|
|
- Garden4.Move(new Vector3(flipDist * Ratio4, 0, 0), 0.75f);
|
|
|
-
|
|
|
- Flag1 = false;
|
|
|
- SliderX = 0;
|
|
|
- SlideIndex++;
|
|
|
+ NextPage();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
- else //向左滑
|
|
|
+ else
|
|
|
{
|
|
|
#region MyRegion
|
|
|
-
|
|
|
- if (GardenA.position.x < RightBorder)
|
|
|
+
|
|
|
+ if (GardenA.position.x < LeftBorder)
|
|
|
{
|
|
|
float tempX = Mathf.Clamp(eventData.delta.x / 10, -2, 2) * SlideSpeed;
|
|
|
|
|
|
- SliderX += tempX;
|
|
|
-
|
|
|
GardenA.Translate(GardenA.right * tempX, Space.World);
|
|
|
|
|
|
Garden2.Translate(Garden2.right * tempX * Ratio2, Space.World);
|
|
@@ -132,19 +159,9 @@ public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDra
|
|
|
|
|
|
if (rawDeltaX > 300)
|
|
|
{
|
|
|
- if (SlideIndex > 1)
|
|
|
+ if (Page > 0)
|
|
|
{
|
|
|
- float flipDist = 2*ExtentX - SliderX;
|
|
|
-
|
|
|
- GardenA.Move(new Vector3(flipDist, 0, 0), 0.75f);
|
|
|
-
|
|
|
- Garden2.Move(new Vector3(flipDist * Ratio2, 0, 0), 0.75f);
|
|
|
- Garden3.Move(new Vector3(flipDist * Ratio3, 0, 0), 0.75f);
|
|
|
- Garden4.Move(new Vector3(flipDist * Ratio4, 0, 0), 0.75f);
|
|
|
-
|
|
|
- Flag1 = false;
|
|
|
- SliderX = 0;
|
|
|
- SlideIndex--;
|
|
|
+ PrevPage();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -155,17 +172,12 @@ public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDra
|
|
|
|
|
|
public void OnEndDrag(PointerEventData eventData)
|
|
|
{
|
|
|
- if (Flag1) //没有翻页则返回
|
|
|
+ if (Flag1 && Flag2) //没有翻页则返回
|
|
|
{
|
|
|
- GardenA.Move(new Vector3(-SliderX, 0, 0), 0.1f, Curve.EaseOutQuad);
|
|
|
-
|
|
|
- Garden2.Move(new Vector3(-SliderX * Ratio2, 0, 0), 0.1f, Curve.EaseOutQuad);
|
|
|
- Garden3.Move(new Vector3(-SliderX * Ratio3, 0, 0), 0.1f, Curve.EaseOutQuad);
|
|
|
- Garden4.Move(new Vector3(-SliderX * Ratio4, 0, 0), 0.1f, Curve.EaseOutQuad);
|
|
|
+ Return();
|
|
|
}
|
|
|
|
|
|
Flag1 = true;
|
|
|
- SliderX = 0;
|
|
|
}
|
|
|
|
|
|
public void OnPointerClick(PointerEventData eventData)
|
|
@@ -189,4 +201,37 @@ public class Garden : MonoBehaviour, IDragHandler, IPointerClickHandler, IEndDra
|
|
|
ManaReso.Get("H_FlowerCard").Forward(TweenType.Alpha);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private void Return()
|
|
|
+ {
|
|
|
+ Garden2.Move(VectorList2[Page], 0.25f, Curve.EaseOutQuad);
|
|
|
+ Garden3.Move(VectorList3[Page], 0.25f, Curve.EaseOutQuad);
|
|
|
+ Garden4.Move(VectorList4[Page], 0.25f, Curve.EaseOutQuad);
|
|
|
+ GardenA.Move(VectorListA[Page], 0.25f, Curve.EaseOutQuad);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PrevPage()
|
|
|
+ {
|
|
|
+ Page--;
|
|
|
+
|
|
|
+ Flag1 = false;
|
|
|
+
|
|
|
+ Garden2.Move(VectorList2[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ Garden3.Move(VectorList3[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ Garden4.Move(VectorList4[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ GardenA.Move(VectorListA[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void NextPage()
|
|
|
+ {
|
|
|
+ Page++;
|
|
|
+
|
|
|
+ Flag1 = false;
|
|
|
+
|
|
|
+ Garden2.Move(VectorList2[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ Garden3.Move(VectorList3[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ Garden4.Move(VectorList4[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ GardenA.Move(VectorListA[Page], 0.5f, Curve.EaseOutQuad);
|
|
|
+ }
|
|
|
}
|