Цель этого скрипта — увеличить количество врагов, которые появляются после того, как все они будут убиты. Мой вопрос в том, есть ли способ вызвать этот скрипт (например, вызвать его через [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]) но при условии, например, когда количество врагов равно нулю. Также необходимо, чтобы метод не был статическим, поскольку мне нужно иметь доступ к переменной level.
Я знаю, что это можно сделать, ссылаясь на него в любом скрипте, который прикреплен к gameObject, но мне это кажется плохим дизайном кода, так почему скрипт, созданный для движения игрока, должен знать о скрипте, созданном для появления врагов и т. д.
class EnemySpawning
{
public int level = 1;
public void Spawning()
{
if (SceneManager.GetActiveScene().name == "Game")
{
GameObject enemyObject = Resources.Load("BasicEnemy", typeof(GameObject)) as GameObject;
int enemyQuantity = 3 * level;
int minSpawnX = -3;
int maxSpawnX = 3;
int minSpawnY = 2;
int maxSpawnY = 5;
for (int i = 0; i < enemyQuantity; i++)
{
int xPos = Convert.ToInt32(Mathf.Round(UnityEngine.Random.Range(minSpawnX, maxSpawnX)));
int yPos = Convert.ToInt32(Mathf.Round(UnityEngine.Random.Range(minSpawnY, maxSpawnY)));
GameObject.Instantiate(enemyObject, new Vector3(xPos, yPos), new Quaternion());
}
level += 1;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... ed-to-a-ga
Как вызвать метод скрипта в состоянии, которое не привязано к игровому объекту, не вызывая его из другого скрипта? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Событие Pytest asyncio привязано к другому циклу событий, цикл событий закрыт
Anonymous » » в форуме Python - 0 Ответы
- 43 Просмотры
-
Последнее сообщение Anonymous
-