UVRotAffector.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using UnityEngine;
  3. namespace Xft
  4. {
  5. public class UVRotAffector : Affector
  6. {
  7. public UVRotAffector(float rotXSpeed, float rotYSpeed, EffectNode node) : base(node, AFFECTORTYPE.UVRotAffector)
  8. {
  9. this.RotXSpeed = rotXSpeed;
  10. this.RotYSpeed = rotYSpeed;
  11. }
  12. public override void Reset()
  13. {
  14. this.FirstUpdate = true;
  15. }
  16. public override void Update(float deltaTime)
  17. {
  18. if (this.FirstUpdate)
  19. {
  20. if (this.Node.Owner.RandomStartFrame)
  21. {
  22. EffectNode node = this.Node;
  23. node.LowerLeftUV.x = node.LowerLeftUV.x + UnityEngine.Random.Range(-1f, 1f);
  24. EffectNode node2 = this.Node;
  25. node2.LowerLeftUV.y = node2.LowerLeftUV.y + UnityEngine.Random.Range(-1f, 1f);
  26. }
  27. else
  28. {
  29. this.Node.LowerLeftUV = this.Node.Owner.UVRotStartOffset;
  30. }
  31. this.FirstUpdate = false;
  32. }
  33. Vector2 lowerLeftUV = this.Node.LowerLeftUV;
  34. lowerLeftUV.x += this.RotXSpeed * deltaTime;
  35. lowerLeftUV.y += this.RotYSpeed * deltaTime;
  36. this.Node.LowerLeftUV = lowerLeftUV;
  37. }
  38. protected float RotXSpeed;
  39. protected float RotYSpeed;
  40. protected bool FirstUpdate = true;
  41. }
  42. }