Цикл в цикле при помощи DOTS

Программирование на Юнити.

Цикл в цикле при помощи DOTS

Сообщение AlexandrBuryakov 10 июл 2019, 01:59

Как реализовать с помощью ECS и распаралеленного Jobs такой перебор?
Пробовал с чанками, но не понял а как быть в случае, если во втором цикле нужно обращаться к элементам из следующего чанка, так что вообще не понял как. Работа два раза, одна для первого цикла и внутри вторая для второго цикла? Может кто ни будь правильно написать код, а то от DOTS голова пухнет с непонятками как же всё таки правильно писать... Вообще хочу обращаться к уже существующим элементам конвертированным из GameObject в ECS.

Синтаксис:
Используется csharp
for ( iFirst = 0; iFirst < iMax; iFirst++ ) {
     for ( iSecond = 0; iSecond < iMax; iSecond++ ) {
    }
}
AlexandrBuryakov
UNIт
 
Сообщения: 59
Зарегистрирован: 26 янв 2019, 14:36

Re: Цикл в цикле при помощи DOTS

Сообщение ~AvA~ 10 июл 2019, 11:15

На этот вопрос невозможно ответить вот так, глядя в код цикла :)

Нужны подробности, что самое важное, так это - что ты хочешь сделать и какие у тебя данные?
Перевести один к одному из ООП в ECS - не можна обычно) Типа у меня тут в монобехе цикл, я хочу такой же в ecs..
Они тупо работают по-другому
Аватара пользователя
~AvA~
UNIверсал
 
Сообщения: 396
Зарегистрирован: 17 фев 2015, 13:09

Re: Цикл в цикле при помощи DOTS

Сообщение AlexandrBuryakov 11 июл 2019, 17:43

~AvA~ писал(а): что ты хочешь сделать и какие у тебя данные?


Мне нужно на каждом шаге выбранного на данный момент элемента осуществлять перебор последующих оставшихся компонентов. То есть помнить переменные текущего индекса при переборе оставшихся, а потом переходить к следующему и перебирать опять до конца.

Приведу пример, неправильный, но понятный возможно:
Синтаксис:
Используется csharp
public void Execute(int iFirst ) {
    public void Execute(int iSecond ) {
        //Только тут (во второй, внутренней, работе) получается все с начала будут перебираться, а не продолжать дальше от "iFirst"
    }
}
 

А по поводу какие данные (компоненты), то любые подойдут, например Translation.
AlexandrBuryakov
UNIт
 
Сообщения: 59
Зарегистрирован: 26 янв 2019, 14:36

Re: Цикл в цикле при помощи DOTS

Сообщение 1max1 11 июл 2019, 17:48

А зачем DOTS? PLINQ не подойдет?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Скрипты

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

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