WaterTile.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using UnityEngine;
  3. namespace UnityStandardAssets.Water
  4. {
  5. [ExecuteInEditMode]
  6. public class WaterTile : MonoBehaviour
  7. {
  8. public PlanarReflection reflection;
  9. public WaterBase waterBase;
  10. public void Start()
  11. {
  12. AcquireComponents();
  13. }
  14. void AcquireComponents()
  15. {
  16. if (!reflection)
  17. {
  18. if (transform.parent)
  19. {
  20. reflection = transform.parent.GetComponent<PlanarReflection>();
  21. }
  22. else
  23. {
  24. reflection = transform.GetComponent<PlanarReflection>();
  25. }
  26. }
  27. if (!waterBase)
  28. {
  29. if (transform.parent)
  30. {
  31. waterBase = transform.parent.GetComponent<WaterBase>();
  32. }
  33. else
  34. {
  35. waterBase = transform.GetComponent<WaterBase>();
  36. }
  37. }
  38. }
  39. #if UNITY_EDITOR
  40. public void Update()
  41. {
  42. AcquireComponents();
  43. }
  44. #endif
  45. public void OnWillRenderObject()
  46. {
  47. if (reflection)
  48. {
  49. reflection.WaterTileBeingRendered(transform, Camera.current);
  50. }
  51. if (waterBase)
  52. {
  53. waterBase.WaterTileBeingRendered(transform, Camera.current);
  54. }
  55. }
  56. }
  57. }