60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
|
using UnityEngine;
|
||
|
|
||
|
// ReSharper disable once CheckNamespace
|
||
|
namespace BlueWaterProject
|
||
|
{
|
||
|
public class BossController : MonoBehaviour
|
||
|
{
|
||
|
[field: SerializeField] public GameObject BossPrefab { get; set; }
|
||
|
[field: SerializeField] public Transform BossSpawnTransform { get; set; }
|
||
|
[field: SerializeField] public Transform PlayerSpawnTransform { get; set; }
|
||
|
[SerializeField] private Transform bossInstantiateLocation;
|
||
|
|
||
|
private GameObject instantiatedBoss;
|
||
|
|
||
|
private void Start()
|
||
|
{
|
||
|
InitStart();
|
||
|
}
|
||
|
|
||
|
private void InitStart()
|
||
|
{
|
||
|
if (!instantiatedBoss)
|
||
|
{
|
||
|
instantiatedBoss = Instantiate(BossPrefab, BossSpawnTransform.position, Quaternion.identity, bossInstantiateLocation);
|
||
|
}
|
||
|
|
||
|
instantiatedBoss.SetActive(false);
|
||
|
}
|
||
|
|
||
|
public void ResetBoss()
|
||
|
{
|
||
|
if (instantiatedBoss)
|
||
|
{
|
||
|
if (instantiatedBoss.activeSelf)
|
||
|
{
|
||
|
Destroy(instantiatedBoss);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void Respawn()
|
||
|
{
|
||
|
if (instantiatedBoss)
|
||
|
{
|
||
|
if (instantiatedBoss.activeSelf)
|
||
|
{
|
||
|
Destroy(instantiatedBoss);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
instantiatedBoss.transform.position = BossSpawnTransform.position;
|
||
|
instantiatedBoss.SetActive(true);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
instantiatedBoss = Instantiate(BossPrefab, BossSpawnTransform.position, Quaternion.identity, bossInstantiateLocation);
|
||
|
}
|
||
|
}
|
||
|
}
|