using UnityEngine; public class SharkSpawner : MonoBehaviour { public GameObject sharkPrefab; public SpriteRenderer gameBoardSpriteRenderer; private Bounds sharkBounds; private Bounds gameBoardBounds; private float spawnTimer = 0f; private Vector2 spawnPosition; private bool isActive = true; private static float spawnProbability = 0.1f; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { gameBoardBounds = gameBoardSpriteRenderer.bounds; sharkBounds = sharkPrefab.GetComponent().bounds; Reset(); } // Update is called once per frame void FixedUpdate() { spawnTimer += Time.fixedDeltaTime; if (spawnTimer >= 1f && isActive) { spawnTimer = 0f; if (Random.value < spawnProbability) { GameObject shark = Instantiate(sharkPrefab, spawnPosition, Quaternion.identity); isActive = false; } } } public void Reset() { isActive = true; spawnTimer = 0f; spawnPosition = new Vector2( Random.Range( gameBoardBounds.min.x + sharkBounds.extents.x, gameBoardBounds.max.x - sharkBounds.extents.x ), Random.Range( gameBoardBounds.min.y + sharkBounds.extents.y, gameBoardBounds.max.y - sharkBounds.extents.y ) ); } }