Страница 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;
??