Как сделать так что-бы в одном волне спавнились разные типы врагов разным - Дизайн
Аноним
7/9/2021, 5:02:51 PM
Ответов:
Как сделать так что-бы в одном волне спавнились разные типы врагов разным

количеством? Враг типа X - 20 раз, враг типа Y - 10 раз. вообще не понимаю как это сделать, значение то я хочу задать в инспекторе, но что нужно использовать для это? пытался через struct. list. dictionary, но не получается, просто не знаю как сделать так что-бы код, потом в условии создание врага понимал какого врага создавать и "этого врага создали достаточно?", можно совета?

Ответы (37)

Аноним
7/9/2021, 5:04:31 PM

Странная проблема, цикл for не пробовал?

Puish
7/9/2021, 5:09:12 PM

Ну, а как оно тут поможет? враги создаются через корутину по условию, суть в том как спавнить несколько разных врагов в определенном количестве Волна 1 (На "Волны" можно забить, главное не это.) Враг - X Количество - 20 Враг - Y Количество - 10. волна 2... ... P.S. все эти волны в инспекторе делаются через struct -> List, если что, хотя не думаю что это важно

Trell _
7/9/2021, 5:11:03 PM

Ну можно создать лист, в котором будут десять 0, и 30 1 и через рандом рендж брать выбирать 0 это значит У моб, 1 Х моь

Аноним
7/9/2021, 5:12:57 PM

если делать втупую, то на каждый уровень сделать условие, если уровень 1, то в цикле for спавнишь 10 крипов типа А, 20 крипов типа Б, а так лучше класс создать с настройками для каждого уровня и класс каждого крипа

Puish
7/9/2021, 5:13:03 PM

А как их количество определять? суть в том что каждый враг имеет определенное количество, а тут просто будет куча врагов которые по рандому спавнятся

Trell _
7/9/2021, 5:13:25 PM

Ну так задавай через инспектор

Puish
7/9/2021, 5:21:14 PM

Как? это же не просто int enemies, как тип указать? ладно, GameObject Enemy int enemies, но тут я укажу префаб одного врага и количество его спавна, а если мне нужно две? тогда конечно можно те поля просто повторить, у них будут название отличатся и всё, вроде всё, но тут еще одна проблема, все эти данные про которые я говорил находятся внутри Волны n, каждая волна это не новая сцена, если что, всё происходит в одной сцене, именно по этому я задал вопрос, каким путем кидать данные и как ими потом пользоваться (скрип инспектора кину что-бы было понятнее).

Аноним
7/9/2021, 5:22:35 PM

ты хочешь спавнить волны в реалтайме и выбирать разное количество мобов определённого типа?

Аноним
7/9/2021, 5:22:38 PM

https://pastebin.com/CSM6Ke17 Как пример.

Trell _
7/9/2021, 5:23:38 PM

Делаешь отдельный класс у которого будет 2 поля ГО и Количество и делаешь массив этих классов.

Trell _
7/9/2021, 5:24:24 PM

Я без понятие, как у тебя работает волна

Аноним
7/9/2021, 5:27:19 PM

Я правда не понимаю в чем проблема :) Сделай Enemy Type для каждой волны и настраивай прям в инспекторе, если тебе так удобно

Аноним
7/9/2021, 5:29:34 PM

Тебе нужно чтобы например в первой пачке из 20 мобов появлялись разные типы или однотипные?

Puish
7/9/2021, 5:31:37 PM

нет, мне нужно что-бы в первой пачке были разные мобы количество которых будет отличатся (этот код работает если типов врагов только один)

Аноним
7/9/2021, 5:32:34 PM

Короче на примере: 1 волна - 20 крипов, 5 - тараканов, 13 - мух и 2 жука?

supermassive black hohole
7/9/2021, 5:34:04 PM

Никто не может понять че ты хочешь и в чем проблема

Puish
7/9/2021, 5:35:46 PM

ну я же пытался объяснить, я типа устал пытаясь сделать это (3,5 часов), но блин, но в конце концов то все поняли мои тайны

supermassive black hohole
7/9/2021, 5:35:56 PM

Как по мне, перезагрузка одной и той же сцены это такой себе вариант. Лучше когда надо, уметь привести сцену к изначальному виду.

Puish
7/9/2021, 5:38:40 PM

Блин, когда все поняли вдруг всем стало наср@ть на это(

supermassive black hohole
7/9/2021, 5:40:19 PM

Ну я лично не сильно понял. У тебя есть волны, при это после каждой волны сцена перезагружается. И у каждой волны как-то там отличается количество и тип врагов, так? В чем проблема?

Аноним
7/9/2021, 5:40:42 PM

Не нервничай. Почему нельзя положить enum EnemyType внутрь элемента Waves?

Puish
7/9/2021, 5:42:45 PM

Да нет, ничего не перегружается, уровень включился началась первая волна, игра спавнить (как говорилось выше) 10 тараканов, 5 пауков, вы уничтожаете их, начинается вторая волна, игра спавнить 15 тараканов, 5 пауков, 3 жука.... поняли?

Phantom
7/9/2021, 5:42:52 PM

class Wave { List<Enemy> enemies; ... } class Enemy { EnemyType type; int Count; ... }

Аноним
7/9/2021, 5:43:14 PM

Ага, да, вот так, например

supermassive black hohole
7/9/2021, 5:45:51 PM

Понял. А что именно у тебя не получается? Берешь и спавнишь определенное количество враго определенного типа циклом. У каждой волны свои значения.

Puish
7/9/2021, 5:51:29 PM

Я делал что-то такое только используя struct, но проблема в том "А как вообще понять какие данные были введены?", и вот снова же, как я могу понять какие данные получил enemies[0] EnemyType или же count? P.S. как эти данные использовать в коде*

Phantom
7/9/2021, 5:52:16 PM

Зачем 3 идентичных класса?

Аноним
7/9/2021, 5:52:37 PM

я без задней мысли писал, просто пример заполнения

Phantom
7/9/2021, 5:52:39 PM

Што, и зачем struct

Аноним
7/9/2021, 5:52:52 PM

а зачем вам эта информация?

Puish
7/9/2021, 5:56:51 PM

наплевать на struct, как использовать данные внутри листа? Банальны пример. if(проверка на количество созданных врагов) создание врага Вопрос, как понять коду, сколько врагов нужно спавнить, смотря на ваш пример именно этот вопрос и встает

Phantom
7/9/2021, 5:59:19 PM

Ну, есть же Count, нет?

Аноним
7/9/2021, 5:59:25 PM

добавить счетчик уже созданных юнитов?

Аноним
7/9/2021, 5:59:33 PM

public class Wave { WaveGroup[] _waveGroups; } public class WaveGroup { IEnemy _enemy; int _count; } И дальше класс Wave или отдельный, как ушодно, спаунит врагов циклом и может следить за количеством уже. Или есть какие-то доп условия, которые вы пытаетесь нам донести?

Puish
7/9/2021, 6:07:06 PM

Как через waveGroup я могу дотянутся до enemy?

Аноним
7/9/2021, 6:08:11 PM

ну да, поля или методы публичные выведите себе и дотянетесь до чего угодно

Аноним
7/9/2021, 6:19:42 PM

Сейчас вы обращаетесь к массиву, а не к элементу массива, поэтому и не можете _waveGroup[0] как пример и дотянетесь

Похожие вопросы по теме Дизайн

Algok17
8/10/2021, 6:29:13 PM
Ответов: 23
Привет. В webgl при переходе в полноэкранный режим и обратно появляется ползунок

прокрутки страницы и размер приложения остаётся полноэкранным. Как пофиксить?

Algok17
8/3/2021, 10:53:34 AM
Ответов: 22
Привет. Понадобилось мне изменить код инпут филда text mesh pro но так

как скрипт лежит в Library\PackageCache\[email protected]\Scripts\Runtime, юнити его постоянно перезаписывает. Как с этим бороться?

Аноним
8/31/2021, 10:37:41 AM
Ответов: 22
Народ тут есть люди корые шарят в дополненной реальности ?
AnderX003
7/27/2021, 4:38:39 PM
Ответов: 21
у меня в начале игры асинхронный метод достаёт из постоянной памяти рекорд

и при окончании должен обновить текст на сцене с этим рекордом, но юнити пишет что изменить этот текст можно толдько из основного потока. как тогда лучше сделать?

Аноним
8/23/2021, 11:11:04 AM
Ответов: 30
у меня есть обьект с колайдером и спавнится другой обьект с колайдером,

в скрипте другого обьекта я указываю, что если ты столкнулся с другим колайдером у которого тег САТ, то выполни ... но ничего не происходит, что не так? public void OnCollisionEnter2DCollision2D other { if other.collider.tag.Equals"cat" { if Time.timeScale != 0 { Handheld.Vibrate; DestroygameObject; } } }

Аноним
8/15/2021, 10:03:43 AM
Ответов: 23
Всем привет, помогите пожалуйста, у меня есть лист который содержит в себе

класс, а в классе 2 публичные переменные типа string и int, как мне получить номер класса в листе у которого наибольшее значение int?

Аноним
7/15/2021, 10:48:31 AM
Ответов: 30
Есть OnDrop и OnDrag в EventTrigger. В методе OnDrag позиции объекта присваивается

позиция курсора. Но при OnDrop вызывается метод у объекта которому присваевается позиция кнопки мыши т.к. он закрывает курсор. Как это можно исправить?

R0tmayer
7/22/2021, 1:54:00 AM
Ответов: 24
И я думаю а может фрукты не уничтожать, а просто выключать? Так

наверное будет более производительнее?

Аноним
8/9/2021, 8:02:25 PM
Ответов: 21
Люди, а объекты на сцене именовать в стиле PascalCase?
Аноним
7/11/2021, 3:56:35 PM
Ответов: 21
Как передать ссылку на переменную в другой скрипт, что бы по прежнему

переменную можно было настраивать в Unity?