FighterScaleInfo.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FighterScaleInfo : MonoBehaviour {
  4. public float scaleValue;
  5. public float fadeInTime;
  6. public float continueTime;
  7. public float fadeOutTime;
  8. public bool unscaleTimeMode = true;
  9. float currentTime;
  10. bool hasSet;
  11. void Awake()
  12. {
  13. enabled = false;
  14. }
  15. void OnEnable()
  16. {
  17. transform.localScale = Vector3.one;
  18. currentTime = 0f;
  19. hasSet = false;
  20. }
  21. void OnDisable()
  22. {
  23. transform.localScale = Vector3.one;
  24. }
  25. void Update()
  26. {
  27. if (currentTime < fadeInTime)
  28. transform.localScale = Vector3.one * (1 + (scaleValue - 1) * currentTime / fadeInTime);
  29. else if (currentTime <= fadeInTime + continueTime)
  30. {
  31. if (!hasSet)
  32. {
  33. transform.localScale = Vector3.one * scaleValue;
  34. hasSet = true;
  35. }
  36. }
  37. else if (currentTime <= fadeInTime + continueTime + fadeOutTime)
  38. transform.localScale = Vector3.one * (scaleValue + (1 - scaleValue) * (currentTime - (fadeInTime + continueTime)) / fadeOutTime);
  39. else
  40. {
  41. enabled = false;
  42. return;
  43. }
  44. currentTime += unscaleTimeMode ? Time.unscaledDeltaTime : Time.deltaTime;
  45. }
  46. }