В нем говорится, что вы должны позвонить .Complete или что-то в этом роде…

При использовании класса, который возвращает JobHandle, Unity будет управлять зависимостью на основе до и после, и вам вообще не нужно будет вызывать .Complete of inputDeps. Но когда он говорит, что вы должны, возможно, вы сделали ту же ошибку, что и я. (Если я поставлю inputDeps.Complete(), это исправит ошибку, но перечеркнет цель автоматического менеджера зависимостей Unity.)

На самом деле я использую данные из предыдущего задания в ctrg.ctrds[0], которое является компонентом [Inject], в который записывается предыдущее задание. Я ожидаю, что Unity узнает об этом и дождется завершения предыдущего задания, прежде чем начинать это. Но волшебство не работает, потому что я уже пытаюсь получить его содержимое и скопировать его внутрь этого задания CommandTravelReceptorData.

Чтобы волшебство сработало, не поддевайте его содержимое, а просто отправьте ComponentDataArray целиком в задание, и Unity будет знать и ждать, пока этот массив будет готов, прежде чем запускать это задание. (Поскольку теперь это часть объявления переменной структуры задания, где и происходит волшебство). Обратите внимание, что вместо этого я переместил [0] внутрь задания, на этот раз зависимость работает, как и ожидалось.