AniDriver_DoScale.cs 769 B

12345678910111213141516171819202122232425262728293031323334
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using ChivaXR;
  5. using System;
  6. using DG.Tweening;
  7. using Sirenix.OdinInspector;
  8. public class AniDriver_DoScale : AnimationDriverBase
  9. {
  10. public Transform target;
  11. [BoxGroup("Scale设定")]
  12. public Vector3 initLocalScale = Vector3.one;
  13. [BoxGroup("Scale设定")]
  14. public Vector3 targetLocalScale;
  15. public float duration;
  16. public override void InitState()
  17. {
  18. target.transform.localScale = initLocalScale;
  19. }
  20. public override void StartPlay(Action finishedCallBack = null)
  21. {
  22. target.DOScale(targetLocalScale,duration).SetEase(Ease.Linear).OnComplete(() => finishedCallBack?.Invoke());
  23. }
  24. public override void FinishedState()
  25. {
  26. target.transform.localScale = targetLocalScale;
  27. }
  28. }