Среда, 24 Апреля 2024, 23:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Записи участника » alex9999 [24]
Результаты поиска
alex9999Дата: Воскресенье, 29 Апреля 2018, 22:02 | Сообщение # 21 | Тема: не работает спавн врага
был не раз
Сейчас нет на сайте
Цитата BrightSpot ()
if (currentNumberOfEnemies > 0)
{
yield return null;
continue;
}

спасибо, все работает, а не подскажите как прекратить спавн после смерти игрока?


Unity the best
alex9999Дата: Воскресенье, 29 Апреля 2018, 19:41 | Сообщение # 22 | Тема: не работает спавн врага
был не раз
Сейчас нет на сайте
Цитата Abel399 ()
// Не создавать новых врагов, пока не уничтожены старые
if (currentNumberOfEnemies <= 0) // <-- начиная отсюда
waveNumber++;
waveText.text = "WAVES: " + waveNumber;
{ // точно не перепутали?

У меня просто еще в коде есть ссылки на очки и волны появления врагов, я не удалил просто, не заметил))
Спасибо за ответ, я поменял свою строку: if (currentNumberOfEnemies <= 0) на вашу: if (currentNumberOfEnemies > 0) continue; при запуске игры после спавна 10-го врага юнити просто мертво зависает пока не завершить процесс из диспетчера задач, может нужно еще что то добавить в код и еще, не подскажете как сделать чтобы после смерти игрока спавн прекращался?


Unity the best

Сообщение отредактировал alex9999 - Воскресенье, 29 Апреля 2018, 20:21
alex9999Дата: Воскресенье, 29 Апреля 2018, 18:47 | Сообщение # 23 | Тема: не работает спавн врага
был не раз
Сейчас нет на сайте
Всем привет, подскажите пожалуйста почему после добавления этого скрипта враг спавнится не после уничтожения 10 врагов а просто бесконечно каждые 1-2 секунды появляются 10 врагов, независимо от уничтожения, даже если не убито ни одного врага?
Вот срипт
Код

[b]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameController : MonoBehaviour {

// Создание переменной «враг»
public Transform enemy;
// Временные промежутки между событиями, кол-во врагов
public float timeBeforeSpawning = 1.5f;
public float timeBetweenEnemies = 0.25f;
public float timeBeforeWaves = 2.0f;
public int enemiesPerWave = 10;
private int currentNumberOfEnemies = 0;

    // Процедура уменьшения количества врагов в переменной
    public void KilledEnemy()
    {
        currentNumberOfEnemies--;
    }

    // Use this for initialization
    void Start () {
        StartCoroutine(SpawnEnemies());
    }
    
    // Update is called once per frame
    void Update () {
  
    }
    // Появление волн врагов
    IEnumerator SpawnEnemies()
    {
        // Начальная задержка перед первым появлением врагов
        yield return new WaitForSeconds(timeBeforeSpawning);
        // Когда таймер истекает, начинаем производить эти действия
        while (true)
        {
            // Не создавать новых врагов, пока не уничтожены старые
            if (currentNumberOfEnemies <= 0)
            {
                float randDirection;
                float randDistance;
                // Создать 10 врагов в случайных местах за экраном
                for (int i = 0; i < enemiesPerWave; i++)
                {
                    // Задаём случайные переменные для расстояния и направления
                    randDistance = Random.Range(5, 25);
                    randDirection = Random.Range(0, 45);
                    // Используем переменные для задания координат появления врага
                    float posX = this.transform.position.x + (Mathf.Cos((randDirection) * Mathf.Deg2Rad) * randDistance);
                    float posY = this.transform.position.y + (Mathf.Sin((randDirection) * Mathf.Deg2Rad) * randDistance);
                    // Создаём врага на заданных координатах
                    Instantiate(enemy, new Vector3(posX, posY, 0), this.transform.rotation);
                    currentNumberOfEnemies++;
                    yield return new WaitForSeconds(timeBetweenEnemies);
                }
            }
            // Ожидание до следующей проверки
            yield return new WaitForSeconds(timeBeforeWaves);
        }
    }
}[/b]


Unity the best

Сообщение отредактировал alex9999 - Воскресенье, 29 Апреля 2018, 21:01
alex9999Дата: Воскресенье, 29 Апреля 2018, 18:32 | Сообщение # 24 | Тема: Вопрос-[ответ] по Unity
был не раз
Сейчас нет на сайте
Всем привет, помогите доработать скрипт пожалуйста, в этом скрипте враг находит игрока и двигается в его сторону но после смерти игрока враг замирает на месте, как сделать чтобы враг продолжал движение по инерции когда не на кого ориентироваться?
вот скрипт:



Unity the best

Сообщение отредактировал alex9999 - Воскресенье, 29 Апреля 2018, 20:41
Форум игроделов » Записи участника » alex9999 [24]
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг