BlackHole.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using UnityEngine;
  3. public class BlackHole : BaseBehaviour
  4. {
  5. public void StartDistort(float time)
  6. {
  7. this._distortStep = 0.5f / time;
  8. this._distorting = true;
  9. this._distortTime = time;
  10. }
  11. public void StartAbsorb(float time)
  12. {
  13. this._absorbStep = 0.5f / time;
  14. this._absorbing = true;
  15. this._absorbtTime = time;
  16. }
  17. private void Start()
  18. {
  19. this._material = base.GetComponent<Renderer>().material;
  20. this._material.SetFloat("_Radius", this._radius);
  21. this._material.SetFloat("_Absorb", this._absorb);
  22. }
  23. private void Update()
  24. {
  25. if (this._distorting)
  26. {
  27. this._radius += this._distortStep * Time.deltaTime * this._distortFactor;
  28. this._material.SetFloat("_Radius", this._radius);
  29. this._distortFactor += Time.deltaTime / this._distortTime;
  30. }
  31. if (this._absorbing)
  32. {
  33. this._absorb += this._absorbStep * Time.deltaTime * this._absorbtFactor;
  34. this._material.SetFloat("_Absorb", this._absorb);
  35. this._absorbtFactor += Time.deltaTime / this._absorbtTime;
  36. }
  37. }
  38. private Material _material;
  39. private float _radius;
  40. private float _distortStep;
  41. private bool _distorting;
  42. private float _distortFactor;
  43. private float _distortTime;
  44. private float _absorb;
  45. private float _absorbStep;
  46. private bool _absorbing;
  47. private float _absorbtFactor;
  48. private float _absorbtTime;
  49. }