public WaterMaterialModule(Game2DWater waterObject) { _waterObject = waterObject; _refractionRenderTextureID = Shader.PropertyToID("_RefractionTexture"); _refractionPartiallySubmergedObjectsRenderTextureID = Shader.PropertyToID("_RefractionTexturePartiallySubmergedObjects"); _reflectionRenderTextureID = Shader.PropertyToID("_ReflectionTexture"); _reflectionPartiallySubmergedObjectsRenderTextureID = Shader.PropertyToID("_ReflectionTexturePartiallySubmergedObjects"); _waterMatrixID = Shader.PropertyToID("_WaterMVP"); _surfaceLevelID = Shader.PropertyToID("_SurfaceLevel"); _surfaceSubmergeLevelID = Shader.PropertyToID("_SubmergeLevel"); _waterReflectionLowerLimitID = Shader.PropertyToID("_ReflectionLowerLimit"); _waterReflectionFakePerspectiveLowerLimitID = Shader.PropertyToID("_ReflectionFakePerspectiveLowerLimit"); _waterReflectionFakePerspectiveUpperLimitID = Shader.PropertyToID("_ReflectionFakePerspectiveUpperLimit"); _waterReflectionFakePerspectivePartiallySubmergedObjectsUpperLimitID = Shader.PropertyToID("_ReflectionFakePerspectivePartiallySubmergedObjectsUpperLimit"); _waterSolidColorID = Shader.PropertyToID("_WaterColor"); _waterGradientStartColorID = Shader.PropertyToID("_WaterColorGradientStart"); _waterGradientEndColorID = Shader.PropertyToID("_WaterColorGradientEnd"); _waterSurfaceColorID = Shader.PropertyToID("_SurfaceColor"); #if GAME_2D_WATER_KIT_LWRP _defaultMaterialShaderName = "Game2DWaterKit/Lightweight Render Pipeline/Unlit/Water"; #elif GAME_2D_WATER_KIT_URP _defaultMaterialShaderName = "Game2DWaterKit/Universal Render Pipeline/Unlit/Water"; #else _defaultMaterialShaderName = "Game2DWaterKit/Built-in Render Pipeline/Unlit/Water"; #endif }
internal void PhysicsUpdate(float deltaTime) { if (!_isActive || _affectedWaterObjets == null || (!_updateWhenOffscreen && !_mainModule.IsVisible)) { return; } _elapsedTime += deltaTime; if (_elapsedTime >= _currentInterval) { Vector2 halfSize = _mainModule.WaterfallSize * 0.5f; Vector2 left = _mainModule.TransformPointLocalToWorld(new Vector2(-halfSize.x, -halfSize.y)); Vector2 right = _mainModule.TransformPointLocalToWorld(new Vector2(halfSize.x, -halfSize.y)); for (int i = 0, imax = _affectedWaterObjets.Count; i < imax; i++) { var affectedWaterObject = _affectedWaterObjets[i]; if (affectedWaterObject != null && affectedWaterObject.waterObject != null) { Game2DWater waterObject = affectedWaterObject.waterObject; float disturbance = Random.Range(affectedWaterObject.minimumDisturbance, affectedWaterObject.maximumDisturbance); bool smooth = affectedWaterObject.smoothRipples; float smoothingFactor = affectedWaterObject.smoothingFactor; float spread = affectedWaterObject.spread; waterObject.WaterfallRipplesModule.CreateRipples(left, right, disturbance, spread, smooth, smoothingFactor); } } _currentInterval = _randomizeTimeInterval ? Random.Range(_minimumTimeInterval, _maximumTimeInterval) : _timeInterval; _elapsedTime = 0f; } }
public WaterAttachedComponentsModule(Game2DWater waterObject, float buoyancyEffectorSurfaceLevel, BuoyancyEffector2DSurfaceLevelLocation buoyancyEffectorSurfaceLevelLocation, BoxCollider2DTopEdgeLocation boxColliderTopEdgeLocation) { _waterObject = waterObject; _buoyancyEffectorSurfaceLevel = buoyancyEffectorSurfaceLevel; _buoyancyEffectorSurfaceLevelLocation = buoyancyEffectorSurfaceLevelLocation; _boxColliderTopEdgeLocation = boxColliderTopEdgeLocation; }
public WaterCollisionRipplesModule(Game2DWater waterObject, WaterCollisionRipplesModuleParameters parameters, Transform ripplesEffectsPoolsRootParent) { _waterObject = waterObject; _isOnWaterEnterRipplesActive = parameters.ActivateOnWaterEnterRipples; _isOnWaterExitRipplesActive = parameters.ActivateOnWaterExitRipples; _isOnWaterMoveRipplesActive = parameters.ActivateOnWaterMoveRipples; _collisionIgnoreTriggers = parameters.CollisionIgnoreTriggers; _minimumDisturbance = parameters.MinimumDisturbance; _maximumDisturbance = parameters.MaximumDisturbance; _velocityMultiplier = parameters.VelocityMultiplier; _onWaterMoveRipplesMaximumDisturbance = parameters.OnWaterMoveRipplesMaximumDisturbance; _onWaterMoveRipplesMinimumVelocityToCauseMaximumDisturbance = parameters.OnWaterMoveRipplesMinimumVelocityToCauseMaximumDisturbance; _onWaterMoveRipplesDisturbanceSmoothFactor = parameters.OnWaterMoveRipplesDisturbanceSmoothFactor; _collisionMask = parameters.CollisionMask; _collisionMinimumDepth = parameters.CollisionMinimumDepth; _collisionMaximumDepth = parameters.CollisionMaximumDepth; _collisionRaycastMaximumDistance = parameters.CollisionRaycastMaxDistance; _onWaterEnter = parameters.OnWaterEnter; _onWaterExit = parameters.OnWaterExit; _onCollisionRipplesEffectsPoolsRoot = CreateRipplesEffectsPoolsRoot(ripplesEffectsPoolsRootParent); _onWaterEnterRipplesParticleEffect = new WaterRipplesParticleEffect(parameters.WaterEnterParticleEffectParameters, _onCollisionRipplesEffectsPoolsRoot); _onWaterExitRipplesParticleEffect = new WaterRipplesParticleEffect(parameters.WaterExitParticleEffectParameters, _onCollisionRipplesEffectsPoolsRoot); _onWaterEnterRipplesSoundEffect = new WaterRipplesSoundEffect(parameters.WaterEnterSoundEffectParameters, _onCollisionRipplesEffectsPoolsRoot); _onWaterExitRipplesSoundEffect = new WaterRipplesSoundEffect(parameters.WaterExitSoundEffectParameters, _onCollisionRipplesEffectsPoolsRoot); }
public WaterConstantRipplesModule(Game2DWater waterObject, WaterConstantRipplesModuleParameters parameters, Transform ripplesEffectsRoot) { _waterObject = waterObject; _isActive = parameters.IsActive; _updateWhenOffscreen = parameters.UpdateWhenOffscreen; _randomizeDisturbance = parameters.RandomizeDisturbance; _smoothRipples = parameters.SmoothDisturbance; _smoothingFactor = parameters.SmoothFactor; _disturbance = parameters.Disturbance; _minimumDisturbance = parameters.MinimumDisturbance; _maximumDisturbance = parameters.MaximumDisturbance; _randomizeTimeInterval = parameters.RandomizeInterval; _timeInterval = parameters.Interval; _minimumTimeInterval = parameters.MinimumInterval; _maximumTimeInterval = parameters.MaximumInterval; _randomizeRipplesSourcePositions = parameters.RandomizeRipplesSourcesPositions; _randomRipplesSourceCount = parameters.RandomizeRipplesSourcesCount; _allowDuplicateRipplesSourcePositions = parameters.AllowDuplicateRipplesSourcesPositions; _sourcePositions = parameters.SourcePositions; _ripplesEffectsRoot = CreateRipplesEffectsRoot(ripplesEffectsRoot); _particleEffect = new WaterRipplesParticleEffect(parameters.ParticleEffectParameters, _ripplesEffectsRoot); _soundEffect = new WaterRipplesSoundEffect(parameters.SoundEffectParameters, _ripplesEffectsRoot); }
public WaterScriptGeneratedRipplesModule(Game2DWater waterObject, WaterScriptGeneratedRipplesModuleParameters parameters, Transform ripplesEffectsRootParent) { _waterObject = waterObject; _minimumDisturbance = parameters.MinimumDisturbance; _maximumDisturbance = parameters.MaximumDisturbance; _ripplesEffectsRoot = CreateRipplesEffectsRoot(ripplesEffectsRootParent); _particleEffect = new WaterRipplesParticleEffect(parameters.ParticleEffectParameters, _ripplesEffectsRoot); _soundEffect = new WaterRipplesSoundEffect(parameters.SoundEffectParameters, _ripplesEffectsRoot); }
public WaterRenderingModule(Game2DWater waterObject, WaterRenderingModuleParameters parameters) : base(parameters.RenderPixelLights, parameters.FarClipPlane, parameters.AllowMSAA, parameters.AllowHDR, parameters.SortingLayerID, parameters.SortingOrder) { _waterObject = waterObject; ReflectionZOffset = parameters.ReflectionZOffset; Refraction = new WaterRenderingMode(parameters.RefractionParameters, isReflectionMode: false); RefractionPartiallySubmergedObjects = new WaterRenderingMode(parameters.RefractionPartiallySubmergedObjectsParameters, isReflectionMode: false); Reflection = new WaterRenderingMode(parameters.ReflectionParameters, isReflectionMode: true); ReflectionPartiallySubmergedObjects = new WaterRenderingMode(parameters.ReflectionPartiallySubmergedObjectsParameters, isReflectionMode: true); }
public WaterSimulationModule(Game2DWater waterObject, WaterSimulationModuleParameters parameters) { _waterObject = waterObject; _damping = parameters.Damping; _stiffness = parameters.Stiffness; _spread = parameters.Spread; _firstCustomBoundary = parameters.FirstCustomBoundary; _secondCustomBoundary = parameters.SecondCustomBoundary; _isUsingCustomBoundaries = parameters.IsUsingCustomBoundaries; _stiffnessSquareRoot = Mathf.Sqrt(_stiffness); _leftCustomBoundary = Mathf.Min(_firstCustomBoundary, _secondCustomBoundary); _rightCustomBoundary = Mathf.Max(_firstCustomBoundary, _secondCustomBoundary); }
public WaterSimulationModule(Game2DWater waterObject, WaterSimulationModuleParameters parameters) { _waterObject = waterObject; _damping = parameters.Damping; _stiffness = parameters.Stiffness; _spread = parameters.Spread; _firstCustomBoundary = parameters.FirstCustomBoundary; _secondCustomBoundary = parameters.SecondCustomBoundary; _isUsingCustomBoundaries = parameters.IsUsingCustomBoundaries; _maximumdDynamicWavesDisturbance = parameters.MaximumDynamicWavesDisturbance; _limitDynamicWavesDisturbance = parameters.LimitDynamicWavesDisturbance; _areSineWavesActive = parameters.AreSineWavesActive; _sineWavesParameters = parameters.SineWavesParameters; _canWavesAffectRigidbodies = parameters.CanWavesAffectRigidbodies; _wavesStrengthOnRigidbodies = parameters.WavesStrengthOnRigidbodies; _stiffnessSquareRoot = Mathf.Sqrt(_stiffness); _leftCustomBoundary = Mathf.Min(_firstCustomBoundary, _secondCustomBoundary); _rightCustomBoundary = Mathf.Max(_firstCustomBoundary, _secondCustomBoundary); }
public WaterAnimationModule(Game2DWater waterObject) { _waterObject = waterObject; }
public WaterMainModule(Game2DWater waterObject, Vector2 waterSize) { _waterObject = waterObject; _transform = waterObject.transform; _waterSize = waterSize; }
public WaterWaterfallRipplesModule(Game2DWater waterObject) { _waterObject = waterObject; }
public WaterMeshModule(Game2DWater waterObject, int subdivisionsPerUnit) { _waterObject = waterObject; _subdivisionsPerUnit = subdivisionsPerUnit; }
public WaterAttachedComponentsModule(Game2DWater waterObject, float buoyancyEffectorSurfaceLevel) { _waterObject = waterObject; _buoyancyEffectorSurfaceLevel = buoyancyEffectorSurfaceLevel; }