using UnityEngine; using UnityEngine.Rendering.HighDefinition; [ExecuteInEditMode] public class ShoreDecalTrigger : MonoBehaviour { public WaterSurface waterSurface; public GameObject decalGameObject; private WaterSearchParameters searchParameters; private WaterSearchResult searchResult; private void Start() { decalGameObject.SetActive(value: false); } private void Update() { if (waterSurface != null) { searchParameters.startPositionWS = searchResult.candidateLocationWS; searchParameters.targetPositionWS = base.gameObject.transform.position; searchParameters.error = 0.01f; searchParameters.maxIterations = 8; searchParameters.includeDeformation = true; searchParameters.excludeSimulation = true; if (waterSurface.ProjectPointOnWaterSurface(searchParameters, out searchResult) && searchResult.projectedPositionWS.y > base.transform.position.y && !decalGameObject.activeSelf) { ActivateDecal(); } } } private void ActivateDecal() { if (decalGameObject != null) { decalGameObject.transform.parent = base.transform; decalGameObject.transform.localPosition = Vector3.zero; decalGameObject.transform.localEulerAngles = new Vector3(90f, 0f, -90f); decalGameObject.SetActive(value: true); } } }