public void SpawnLoopy() { if (loopySpawnIndex >= loopySpawnOrder.Length) { return; } LoopyMovement toSpawn = normalLoopyPrefab; switch (loopySpawnOrder[loopySpawnIndex]) { case LoopyType.normal: toSpawn = normalLoopyPrefab; break; case LoopyType.speedy: toSpawn = speedyLoopyPrefab; break; case LoopyType.lazy: toSpawn = lazyLoopyPrefab; break; } LoopyMovement newLoopyMovement = Instantiate(toSpawn, transform.position, Quaternion.identity); newLoopyMovement.lookDir = spawnDirection; timeToNextSpawn = spawnInterval; loopySpawnIndex++; }
private void Update() { timeToNextSpawn -= Time.deltaTime * GameManager.gm.movespeed; if (timeToNextSpawn <= 0) { SpawnLoopy(); } //funtion as a rototator Collider2D occupantCheck = Physics2D.OverlapBox(transform.position, new Vector2(transform.localScale.x, transform.localScale.y), 0); if (occupantCheck != null) { if (occupantCheck.tag == "Player") { LoopyMovement occupant = occupantCheck.gameObject.GetComponent <LoopyMovement>(); if (occupant.lookDir != spawnDirection) { occupant.turnTo = spawnDirection; occupant.turnLoc = transform.position; } } } }
private void PullIn(LoopyMovement target, Vector2 dir, float dist) { if (target.lookDir != dir) { target.turnTo = dir; target.turnLoc = transform.position - (new Vector3(dir.x, dir.y, 0) * (dist + target.radius)); } }
void Update() { UpdatePower(); if (hasPower) { Collider2D occupantCheck = Physics2D.OverlapBox(transform.position, new Vector2(transform.localScale.x, transform.localScale.y), 0); if (occupantCheck != null) { if (occupantCheck.tag == "Player") { LoopyMovement occupant = occupantCheck.gameObject.GetComponent <LoopyMovement>(); if (occupant.lookDir != turnToDir) { occupant.turnTo = turnToDir; occupant.turnLoc = transform.position; } } } } }