public void SetParent(TFollowerWater parentObject) { this.parentWaterField = parentObject; }
// Update is called once per frame void Update() { if (deathComp && deathComp.IsDead()) { if (audio && audio.isPlaying) { audio.Stop(); } } if (activated) { if (startWaterAfterSec > 0.0f) { startWaterAfterSec -= Time.deltaTime; } else { if (playsSound && !audio.isPlaying) { audio.Play(); } if (mainWaterObject) { secSinceLastWaterTick += Time.deltaTime; if (secSinceLastWaterTick >= secBetweenWaterTicks) { for (int times = 0; times < waterMassTimesPerTick; times++) { Vector2 target = gameObject.transform.position; target.x += waterTargetPoint.x; target.y += waterTargetPoint.y; Collider2D[] hits = Physics2D.OverlapCircleAll(target, waterTargetRadius); List <Collider2D> waterHits = new List <Collider2D>(); foreach (Collider2D hit in hits) { if (hit.tag.Equals("Water")) { waterHits.Add(hit); } } for (int i = 0; i < waterHits.Count; i++) { int randomWaterTile = Random.Range(0, waterHits.Count); Collider2D choosenTile = waterHits[randomWaterTile]; if (choosenTile) { TWaterTile waterComponent = choosenTile.gameObject.GetComponent <TWaterTile>(); TFollowerWater tileWaterComponent = mainWaterObject.GetComponent <TFollowerWater>(); if (tileWaterComponent && waterComponent) { if (waterComponent.waterMass <= 1.0f) { tileWaterComponent.AddWaterToWaterTile(waterComponent.posX, waterComponent.posY, waterMassPerTick); } } } } } secSinceLastWaterTick = 0; } } else { print("TileWaterObject not set!"); } } } }