// Start is called before the first frame update void Start() { Player = GameObject.Find("Player"); spotRange = 50; _Rb = GetComponent <Rigidbody>(); _Rb.angularDrag = 0; FirstEnemy _fe = GetComponent <FirstEnemy>(); MovementSpeed = _fe.enemyStats.MovementSpeed; }
// Actually spawn the enemy void SpawnEnemy0(GameObject enemyPrefab) { GameObject enemy = enemyPrefab; // TEMPORARY CODE: Make more generalized later FirstEnemy enemyScript = enemy.GetComponent <FirstEnemy>(); // Set the time until attack for this enemy enemyScript.timeUntilAttack = Random.Range(SpawnCore.attackDelay_Min, SpawnCore.attackDelay_Max); // enemyScript.timeUntilAttack = 0.95f; // Set the size of the enemys float sizeMultiplier = Random.Range(SpawnCore.sizeMultiplier_Min, SpawnCore.sizeMultiplier_Max); enemyScript.sizeMultiplier = sizeMultiplier; // Set the position of this enemy Vector3 pos = Vector2.zero; // Set the enemy just right off the screen pos.x = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, 0, 0)).x + enemy.renderer.bounds.size.x / 2; // Z-sort so larger enemies are behind smaller ones pos.z = sizeMultiplier * 5; // Calculate the max height for spawning- just at the top of the screen float maxHeight = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height, 0)).y - enemy.renderer.bounds.size.y / 2; // Calculate the min height for spawning- 3/5s of the screen- right above the layer float minHeight = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height * 3 / 5, 0)).y - enemy.renderer.bounds.size.y / 2; // Set the enemy to a random height between the max and min heights pos.y = Random.Range(minHeight, maxHeight); // Apply the position to the enemy enemy.transform.position = pos; // Activate the object enemy.GetComponent <EnemySpawn>().Activate(); // TEMPORARY: Make this part MORE general somehow- probably with EnemySpawnController enemy.GetComponent <FirstEnemy>().Activate(); }