Страница 1 из 1

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

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

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

Помогите, не сильно шарю в "правописании", как можно создать базу данных из объектов и скриптов?? И главное как вести статистику булианов в этих скриптах?

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

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

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

СообщениеДобавлено: 18 июл 2017, 22:24
jimmm
Да я тоже думал делать спомощью foreach проверку объектов.

А нужно ли сосдавать лист объектов?

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

СообщениеДобавлено: 18 июл 2017, 22:32
samana
jimmm писал(а):А нужно ли сосдавать лист объектов?

Но вы же хотите как-то потом обратиться ко всем этим ребятам, значит надо сделать список из них. А там массив или List или тому подобные коллекции уже на ваше усмотрение. Если неизвестно, сколько будет объектов, то проще List-ом сделать.

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

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

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

void CheckMissObjects(){
foreach (missObj.boolTrigg == true){
//считать-прибавлять значение к общим даннымн
}
}

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

СообщениеДобавлено: 18 июл 2017, 22:55
jimmm
Или так??
Синтаксис:
Используется csharp
MissionObjectScrt[] missObj;

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

void CheckMissObjects(){
foreach (MissionObjectScrt ms in missObj){
If(ms.boolTrigg == true){
//считать-прибавлять значение к общим даннымн
}
}
}

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

СообщениеДобавлено: 18 июл 2017, 23:07
Anonymyx
А вы уверены что при выполнении метода Start() нужные объекты будут на сцене?
Лист:
public List<MissionObjectScrt> missionObjects = new List<MissionObjectScrt>();

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

А так, 2ой вариант метода, синтаксически верный.

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

СообщениеДобавлено: 19 июл 2017, 10:00
samana
Anonymyx писал(а):А так, 2ой вариант метода, синтаксически верный.

Ну почти, не считая заглавной буквы в команде If.

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

СообщениеДобавлено: 19 июл 2017, 22:33
jimmm
Спасибо

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

СообщениеДобавлено: 23 июл 2017, 03:29
jimmm
А как получить конкретный доступ к конкретному объекту в списке MissionObjectScrt[] missObj;
??