Такой вопрос: у меня игра - защита замка, вот есть у меня скрипт, который отвечает за спавн мобов в зависимости от игрового уровня.
Я реализовал так:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MobsSpawnController : MonoBehaviour
{
public Global _global;
public UIController _UIController;
//Мобы
public GameObject _zombie;
public float _spawnTimer;
void Start()
{
var _objectGlobal = GameObject.Find("Global");
_global = _objectGlobal.GetComponent<Global>();
var _objectUIController = GameObject.Find("UIController");
_UIController = _objectUIController.GetComponent<UIController>();
}
void Update()
{
if (_global._fightMode)//Если режим боя активен
{
if (_UIController._textNumberOfNightShowTime <= 0)//Если название уровня исчезло
{
_spawnTimer += Time.deltaTime;\\Запускаем таймер
}
} else
{
_spawnTimer = 0;//Если не режим боя, то таймер обнуляем
}
//Прописываем сценарии спавна мобов
switch (_global._gameLevel)
{
case 1:
if (_spawnTimer > 5)
{
Instantiate(_zombie, this.transform.position, this.transform.rotation);//На 5той секунде спавним зомбяку)
}
if (_spawnTimer > 10)
{
Instantiate(_zombie, this.transform.position, this.transform.rotation);//На 10той секунде тоже спавним зомбяку)
}
break;
}
}
}
using System.Collections.Generic;
using UnityEngine;
public class MobsSpawnController : MonoBehaviour
{
public Global _global;
public UIController _UIController;
//Мобы
public GameObject _zombie;
public float _spawnTimer;
void Start()
{
var _objectGlobal = GameObject.Find("Global");
_global = _objectGlobal.GetComponent<Global>();
var _objectUIController = GameObject.Find("UIController");
_UIController = _objectUIController.GetComponent<UIController>();
}
void Update()
{
if (_global._fightMode)//Если режим боя активен
{
if (_UIController._textNumberOfNightShowTime <= 0)//Если название уровня исчезло
{
_spawnTimer += Time.deltaTime;\\Запускаем таймер
}
} else
{
_spawnTimer = 0;//Если не режим боя, то таймер обнуляем
}
//Прописываем сценарии спавна мобов
switch (_global._gameLevel)
{
case 1:
if (_spawnTimer > 5)
{
Instantiate(_zombie, this.transform.position, this.transform.rotation);//На 5той секунде спавним зомбяку)
}
if (_spawnTimer > 10)
{
Instantiate(_zombie, this.transform.position, this.transform.rotation);//На 10той секунде тоже спавним зомбяку)
}
break;
}
}
}
Но вот незадача, мне надо, чтобы Instantiate сработал 1 раз. И использовать булевые флаги уже не вариант так как мобов будет оооочень много.
Вот и вопрос как вызывать Instantiate только 1 раз???