using KWS; using UFS2.Gameplay; using UnityEngine; public class LineRaycaster : MonoBehaviour { private KWS_InteractWithWater interactWithWater; private int dynamicWavesAreaSizeOriginal; private void Awake() { interactWithWater = GetComponentInChildren(); if ((bool)interactWithWater) { interactWithWater.enabled = true; } if (WaterSharedResources.WaterInstances.Count > 0) { dynamicWavesAreaSizeOriginal = WaterSharedResources.WaterInstances[0].Settings.DynamicWavesAreaSize; } } private void OnEnable() { GameCameraController.OnEnterInToWater += GameCameraController_OnEnterInToWater; GameCameraController.OnExitFromWater += GameCameraController_OnExitFromWater; } private void OnDisable() { GameCameraController.OnEnterInToWater -= GameCameraController_OnEnterInToWater; GameCameraController.OnExitFromWater -= GameCameraController_OnExitFromWater; } private void GameCameraController_OnEnterInToWater() { foreach (WaterSystem waterInstance in WaterSharedResources.WaterInstances) { waterInstance.Settings.UseDynamicWaves = true; waterInstance.Settings.DynamicWavesAreaSize = dynamicWavesAreaSizeOriginal + 1; waterInstance.ForceUpdateWaterSettings(WaterSystem.WaterTab.DynamicWaves); } } private void GameCameraController_OnExitFromWater() { foreach (WaterSystem waterInstance in WaterSharedResources.WaterInstances) { waterInstance.Settings.UseDynamicWaves = true; waterInstance.Settings.DynamicWavesAreaSize = dynamicWavesAreaSizeOriginal; waterInstance.ForceUpdateWaterSettings(WaterSystem.WaterTab.DynamicWaves); } } }