Pracownia-Programowania-Pro.../Assets/Scripts/DungeonGen/RoomSpawner.cs
Polarjad 68f6116689 Added map gen
Added enemy spawn, door spawn and despawn
2021-01-18 16:04:50 +01:00

70 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoomSpawner : MonoBehaviour
{
public int doorLocation;
private int random;
private RoomTemplate templates;
private bool spawned = false;
private float waitTime=5;
void Start()
{
Destroy(gameObject, waitTime);
templates = GameObject.FindGameObjectWithTag("Rooms").GetComponent<RoomTemplate>();
Invoke("Spawn", 0.1f);
}
void Spawn()
{
if (spawned == false)
{
if (doorLocation == 2)
{
//Right rooms
random = Random.Range(0, templates.rightRooms.Length);
Instantiate(templates.rightRooms[random], transform.position, templates.rightRooms[random].transform.rotation);
}
else if (doorLocation == 1)
{
//Left rooms
random = Random.Range(0, templates.leftRooms.Length);
Instantiate(templates.leftRooms[random], transform.position, templates.leftRooms[random].transform.rotation);
}
else if (doorLocation == 4)
{
//Top rooms
random = Random.Range(0, templates.topRooms.Length);
Instantiate(templates.topRooms[random], transform.position, templates.topRooms[random].transform.rotation);
}
else if (doorLocation == 3)
{
//Down rooms
random = Random.Range(0, templates.downRooms.Length);
Instantiate(templates.downRooms[random], transform.position, templates.downRooms[random].transform.rotation);
}
spawned = true;
}
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("SpawnPoint"))
{
if(spawned == false && other.GetComponent<RoomSpawner>().spawned == false)
{
Instantiate(templates.roomWithoutExit, transform.position, Quaternion.identity);
Destroy(gameObject);
}
spawned = true;
}
}
}