Garden.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using System.Collections;
  4. public class Garden : MonoBehaviour , IDragHandler, IPointerClickHandler
  5. {
  6. #region 变量
  7. private float LeftBorder;
  8. private float RightBorder;
  9. private float SlideSpeed;
  10. private Transform SlideTra;
  11. private SpriteRenderer GardenSrB;
  12. private SpriteRenderer GardenSrA;
  13. #endregion
  14. private void Awake()
  15. {
  16. #region MyRegion
  17. Transform[] transforms = GetComponentsInChildren<Transform>(true);
  18. for (int i = 0; i < transforms.Length; i++)
  19. {
  20. ManaReso.SaveToDic(transforms[i]);
  21. }
  22. SlideSpeed = 0.25f;
  23. SlideTra = ManaReso.Get("GardenSrA");
  24. GardenSrB = ManaReso.Get<SpriteRenderer>("GardenSrB");
  25. GardenSrA = ManaReso.Get<SpriteRenderer>("GardenSrA");
  26. LeftBorder = SlideTra.position.x - (GardenSrA.bounds.extents.x + GardenSrB.bounds.extents.x);
  27. RightBorder = SlideTra.position.x;
  28. #endregion
  29. }
  30. public void OnDrag(PointerEventData eventData)
  31. {
  32. if (eventData.dragging)
  33. {
  34. if (eventData.delta.x < 0)
  35. {
  36. if (SlideTra.position.x > LeftBorder)
  37. {
  38. SlideTra.Translate(SlideTra.right*Mathf.Clamp(eventData.delta.x/10, -2, 2)*SlideSpeed, Space.World);
  39. }
  40. }
  41. if (eventData.delta.x > 0)
  42. {
  43. if (SlideTra.position.x < RightBorder)
  44. {
  45. SlideTra.Translate(SlideTra.right*Mathf.Clamp(eventData.delta.x/10, -2, 2)*SlideSpeed, Space.World);
  46. }
  47. }
  48. }
  49. }
  50. public void OnPointerClick(PointerEventData eventData)
  51. {
  52. if (eventData.rawPointerPress.transform.name.Contains("FlowerTra"))
  53. {
  54. ManaGarden.SelFlowerTra = eventData.rawPointerPress.transform;
  55. ManaGarden.ShowFlowerCard(null);
  56. }
  57. }
  58. }