Rotator.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. 
  2. // =================================
  3. // Namespaces.
  4. // =================================
  5. using UnityEngine;
  6. // =================================
  7. // Define namespace.
  8. // =================================
  9. namespace MirzaBeig
  10. {
  11. namespace ParticleSystems
  12. {
  13. // =================================
  14. // Classes.
  15. // =================================
  16. public class Rotator : MonoBehaviour
  17. {
  18. // =================================
  19. // Nested classes and structures.
  20. // =================================
  21. // ...
  22. // =================================
  23. // Variables.
  24. // =================================
  25. public Vector3 localRotationSpeed;
  26. public Vector3 worldRotationSpeed;
  27. public bool executeInEditMode = false;
  28. public bool unscaledTime;
  29. // =================================
  30. // Functions.
  31. // =================================
  32. // ...
  33. void Awake()
  34. {
  35. }
  36. // ...
  37. void Start()
  38. {
  39. //StartCoroutine(cr());
  40. }
  41. //System.Collections.IEnumerator cr()
  42. //{
  43. // while (true)
  44. // {
  45. // transform.Rotate(localRotationSpeed * Time.deltaTime, Space.Self);
  46. // yield return new WaitForSeconds(0.1f);
  47. // }
  48. //}
  49. // ...
  50. void OnRenderObject()
  51. {
  52. if (executeInEditMode)
  53. {
  54. if (!Application.isPlaying)
  55. {
  56. rotate();
  57. }
  58. }
  59. }
  60. // ...
  61. void Update()
  62. {
  63. if (Application.isPlaying)
  64. {
  65. rotate();
  66. }
  67. }
  68. // ...
  69. void rotate()
  70. {
  71. // Calling Rotate can be expensive.
  72. // Doing the if-checks is worth it.
  73. float deltaTime = !unscaledTime ? Time.deltaTime : Time.unscaledDeltaTime;
  74. if (localRotationSpeed != Vector3.zero)
  75. {
  76. transform.Rotate(localRotationSpeed * deltaTime, Space.Self);
  77. //transform.rotation = transform.rotation * Quaternion.AngleAxis(localRotationSpeed.y * Time.deltaTime, Vector3.up);
  78. }
  79. if (worldRotationSpeed != Vector3.zero)
  80. {
  81. transform.Rotate(worldRotationSpeed * deltaTime, Space.World);
  82. }
  83. }
  84. // =================================
  85. // End functions.
  86. // =================================
  87. }
  88. // =================================
  89. // End namespace.
  90. // =================================
  91. }
  92. }
  93. // =================================
  94. // --END-- //
  95. // =================================