TestArtMove.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using UnityEngine;
  2. using System.Collections;
  3. public class TestArtMove : MonoBehaviour
  4. {
  5. /// <summary>
  6. ///
  7. /// </summary>
  8. private Vector3 start = Vector3.zero;
  9. /// <summary>
  10. ///
  11. /// </summary>
  12. private Vector3 end = Vector3.zero;
  13. /// <summary>
  14. ///
  15. /// </summary>
  16. public void Init(Vector3 _s,Vector3 _e)
  17. {
  18. this.start = _s;
  19. this.end = _e;
  20. }
  21. /// <summary>
  22. ///
  23. /// </summary>
  24. void Update()
  25. {
  26. if (this.start == Vector3.zero || this.end == Vector3.zero)
  27. {
  28. return;
  29. }
  30. if (Vector2.Distance(transform.position, new Vector2(this.end.x,this.end.y)) < 0.01f)
  31. {
  32. return;
  33. }
  34. //两者中心点
  35. Vector3 center = (this.start + this.end) * 0.5f;
  36. center -= new Vector3(0, 1, 0);
  37. Vector3 start = this.start - center;
  38. Vector3 end = this.end - center;
  39. //弧形插值
  40. Vector3 curtPos = Vector3.Slerp(start, end, Time.time);
  41. transform.position = new Vector3(curtPos.x, curtPos.y, 0);
  42. //transform.position += center;
  43. }
  44. }