Рандомные миссии.

Общие вопросы о Unity3D

Рандомные миссии.

Сообщение jimmm 18 июл 2017, 21:18

Нужна помощь, как можно собрать данные с разных объектов в один скрипт?
Хочу сделать рандомно появляющиеся цели для уничтожения или рандомно появляющиеся триггеры, и в одном скрипте считать сколько объектов появилось для уничтожения и сколько триггеров, после высчитывать процент выполненных задач.

Хочу на каждый объект имеющий значение для миссии вешат скрипт с тегом "mission", и булианами значеней о выполнении скрипта. А в обобщаюшем скрипте MissionLog находить эти объекты и высчитывать в каких объектах какие булианы выполненны или не выполненны. Таким образом считать процент вымолнения задач и целей в миссии.

Помогите, не сильно шарю в "правописании", как можно создать базу данных из объектов и скриптов?? И главное как вести статистику булианов в этих скриптах?
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Рандомные миссии.

Сообщение samana 18 июл 2017, 21:53

Задачка конечно не сильно конкретная, особенно я не понял по поводу триггеров рандомных, но ладно.
Допустим у вас каждый объект, который появится рандомно имеет скрипт Mission с bool переменной, отлично!
При создании такого объекта, заносите его Mission в массив в который будете собирать все появляющиеся такие же Mission остальных объектов.
После завершения уровня, пробегайтесь по этому массиву миссий (цикл for или foreach, Linq) и уже доставайте любую вам нужную информацию о каждой миссии.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Рандомные миссии.

Сообщение jimmm 18 июл 2017, 22:24

Да я тоже думал делать спомощью foreach проверку объектов.

А нужно ли сосдавать лист объектов?
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Рандомные миссии.

Сообщение samana 18 июл 2017, 22:32

jimmm писал(а):А нужно ли сосдавать лист объектов?

Но вы же хотите как-то потом обратиться ко всем этим ребятам, значит надо сделать список из них. А там массив или List или тому подобные коллекции уже на ваше усмотрение. Если неизвестно, сколько будет объектов, то проще List-ом сделать.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Рандомные миссии.

Сообщение jimmm 18 июл 2017, 22:43

Как-то так хотел, исправьте ошибки плиз.
Синтаксис:
Используется csharp
MissionObjectScrt[] missObj;

void Start (){
missObj  = GameObject.FindObjectsOfType<MissionObjectScrt> ();
}

void CheckMissObjects(){
foreach (missObj.boolTrigg == true){
//считать-прибавлять значение к общим даннымн
}
}
Последний раз редактировалось jimmm 18 июл 2017, 22:57, всего редактировалось 2 раз(а).
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Рандомные миссии.

Сообщение jimmm 18 июл 2017, 22:55

Или так??
Синтаксис:
Используется csharp
MissionObjectScrt[] missObj;

void Start (){
missObj  = GameObject.FindObjectsOfType<MissionObjectScrt> ();
}

void CheckMissObjects(){
foreach (MissionObjectScrt ms in missObj){
If(ms.boolTrigg == true){
//считать-прибавлять значение к общим даннымн
}
}
}
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Рандомные миссии.

Сообщение Anonymyx 18 июл 2017, 23:07

А вы уверены что при выполнении метода Start() нужные объекты будут на сцене?
Лист:
public List<MissionObjectScrt> missionObjects = new List<MissionObjectScrt>();

Объекты добавляете сразу когда инстаншиируете:
У вас же есть где-то метод Instantiate() который создает эти объекты, вот там их после создания и заносит в этот лист. Так оптимальнее.
missionObjects.Add(...);

А так, 2ой вариант метода, синтаксически верный.
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: Рандомные миссии.

Сообщение samana 19 июл 2017, 10:00

Anonymyx писал(а):А так, 2ой вариант метода, синтаксически верный.

Ну почти, не считая заглавной буквы в команде If.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Рандомные миссии.

Сообщение jimmm 19 июл 2017, 22:33

Спасибо
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Рандомные миссии.

Сообщение jimmm 23 июл 2017, 03:29

А как получить конкретный доступ к конкретному объекту в списке MissionObjectScrt[] missObj;
??
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14