using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpawnManager : MonoBehaviour { public List enemyList = new List(); public List spawnPoints = new List(); public int enemyStartNumber = 5; public GameObject Sun; bool night = false; bool alreadySpawn = false; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { int enemyNumber = enemyStartNumber + (Sun.GetComponent().daySurvived * enemyStartNumber); float sunRotationX = Sun.transform.localEulerAngles.x; sunRotationX = (sunRotationX > 180) ? sunRotationX - 360 : sunRotationX; if (sunRotationX < 0) { night = true; } else { night = false; } if (!night) { alreadySpawn = false; GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); foreach (GameObject localEnemy in enemies) { Destroy(localEnemy); } } if (!alreadySpawn && night) { for (int i = 0; i < enemyNumber; i++) { int randomSpawnPoint = Random.Range(0, (spawnPoints.Count - 1)); int random = Random.Range(0, (enemyList.Count - 1)); GameObject randomSpawnPointGO = spawnPoints[randomSpawnPoint].gameObject; Instantiate(enemyList[random], new Vector3(randomSpawnPointGO.transform.position.x, randomSpawnPointGO.transform.position.y, randomSpawnPointGO.transform.position.z), Quaternion.identity); alreadySpawn = true; } } } public static float Clamp0360(float eulerAngles) { float result = eulerAngles - Mathf.CeilToInt(eulerAngles / 360f) * 360f; if (result < 0) { result += 360f; } return result; } }