TwirlEffect.cs 798 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using UnityEngine;
  3. [ExecuteInEditMode]
  4. public class TwirlEffect : MonoBehaviour
  5. {
  6. public void Start()
  7. {
  8. this._material = base.GetComponent<MeshRenderer>().sharedMaterial;
  9. }
  10. private void Update()
  11. {
  12. Matrix4x4 value = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0f, 0f, this._angle), Vector3.one);
  13. this._material.SetMatrix("_RotationMatrix", value);
  14. this._material.SetVector("_Center", new Vector2(this._center.x, this._center.y));
  15. this._material.SetVector("_Radius", new Vector2(this._radius.x, this._radius.y));
  16. }
  17. [SerializeField]
  18. private Vector2 _radius = new Vector2(0.3f, 0.3f);
  19. [SerializeField]
  20. private float _angle = 50f;
  21. [SerializeField]
  22. private Vector2 _center = new Vector2(0.5f, 0.5f);
  23. private Material _material;
  24. }