LoadingSpinnerBehaviour.cs 869 B

1234567891011121314151617181920212223242526272829303132333435
  1. namespace SRDebugger.UI.Other
  2. {
  3. using SRF;
  4. using UnityEngine;
  5. public class LoadingSpinnerBehaviour : SRMonoBehaviour
  6. {
  7. private float _dt;
  8. public int FrameCount = 12;
  9. public float SpinDuration = 0.8f;
  10. private void Update()
  11. {
  12. _dt += Time.unscaledDeltaTime;
  13. var localRotation = CachedTransform.localRotation.eulerAngles;
  14. var r = localRotation.z;
  15. var fTime = SpinDuration/FrameCount;
  16. var hasChanged = false;
  17. while (_dt > fTime)
  18. {
  19. r -= 360f/FrameCount;
  20. _dt -= fTime;
  21. hasChanged = true;
  22. }
  23. if (hasChanged)
  24. {
  25. CachedTransform.localRotation = Quaternion.Euler(localRotation.x, localRotation.y, r);
  26. }
  27. }
  28. }
  29. }