From 12216448badeab631d004cf1f7492f02ffa4c780 Mon Sep 17 00:00:00 2001 From: dart Date: Sat, 2 Apr 2022 23:48:20 +0300 Subject: [PATCH] Create random spawn --- ldjam50/Assets/Scripts/OverMind.cs | 44 +++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/ldjam50/Assets/Scripts/OverMind.cs b/ldjam50/Assets/Scripts/OverMind.cs index 9d021d6..af4ddc6 100644 --- a/ldjam50/Assets/Scripts/OverMind.cs +++ b/ldjam50/Assets/Scripts/OverMind.cs @@ -11,6 +11,9 @@ public class OverMind : MonoBehaviour [SerializeField] private GameObject characterObject; [SerializeField] private float mobMoveSpeed; + [SerializeField] private GameObject mobPull; + [SerializeField] private GameObject activeMobs; + private List _pullEnemies; public struct MobParameters @@ -22,13 +25,16 @@ public struct MobParameters void Start() { PreHeaterSpawn(); + StartCoroutine (spawnMobsCourutine()); } private void PreHeaterSpawn() { for (var i = 0; i < pullSize; i++) { - var newMob = Instantiate(mob,transform); + var newMob = Instantiate(mob,mobPull.transform); + //_mobsPull.Add(newMob); + newMob.SetActive(false); var newMobParameters = new MobParameters { @@ -39,8 +45,44 @@ private void PreHeaterSpawn() newMob.GetComponent().SetupMob(newMobParameters); } } + + Vector3 GenerateRandomSpawnMobPoint() + { + var spawnBorder = 2f; + Vector3 stageDimensions = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height,0)); + print(stageDimensions); + var xCoords = new Vector3(stageDimensions.x, stageDimensions.x + spawnBorder); + var yCoords = new Vector3(stageDimensions.y, stageDimensions.y + spawnBorder); + + var spawnPoint = new Vector3( + Random.Range(xCoords.x, xCoords.y), + Random.Range(xCoords.x, xCoords.y), + 0 + ); + + return spawnPoint; + } + + + IEnumerator spawnMobsCourutine() + { + while(true) + { + Debug.Log ("OnCoroutine: "+(int)Time.time); + yield return new WaitForSeconds(1f); + + var mobToSpawn = mobPull.transform.GetChild(0); + + mobToSpawn.transform.position = GenerateRandomSpawnMobPoint(); + mobToSpawn.parent = activeMobs.transform; + + mobToSpawn.gameObject.SetActive(true); + + } + } // Update is called once per frame void Update() { + } }