using System.Collections; using System.Collections.Generic; using UnityEngine; public class DebugSpawning : ObjectSpawning { public GameObject[] debugPrefabs; private void Awake() { _spawnedObject = null; _numberToSpawn = 0; } /// /// Reduce the spawned counter for this spawner /// public override void ReduceSpawnedCount() { objectCount = Mathf.Clamp(objectCount - 1, 0, _numberToSpawn); base.ReduceSpawnedCount(); } public void DoADebugSpawn(int prefabIndex, bool randomSpawnLoc) { float xPos = Random.Range(-xSpawnRange, xSpawnRange); float yPos = Random.Range(-ySpawnRange, ySpawnRange); float zPos = Random.Range(-zSpawnRange, zSpawnRange); Vector3 spawnLoc = Vector3.zero; float spawnHeight = 0.0f; // If debug is checked then try to spawn the object above the player, this is to test collisions if (!randomSpawnLoc) { GameObject currentPlayer = GameObject.Find("Player"); if (currentPlayer != null) { PlayerHoverMovement playerHover = currentPlayer.GetComponent(); if (playerHover != null) { spawnLoc = currentPlayer.transform.position + (currentPlayer.transform.forward * 10.0f); spawnHeight = playerHover.GetCurrentHeight() + 2.0f; } } } else { spawnLoc = new Vector3(xPos, yPos, zPos); spawnHeight = Random.Range(minSpawnHeight, maxSpawnHeight); } GameObject newSpawn = Instantiate(debugPrefabs[prefabIndex]); // Set the start height of the gameObject from the blackhole HoverMovement newSpawnMovement = newSpawn.GetComponent(); if (newSpawnMovement) { newSpawnMovement.startPositionVector = spawnLoc; newSpawnMovement.ForceHeightAdjust(spawnHeight); } newSpawn.SetActive(true); objectCount++; } /// /// Spawn the gameObject assigned to this spawner /// protected override void DoASpawn() { base.DoASpawn(); } }