Но да, действительно, это из-за await, но почему и как?

28 ответов

40 просмотров

Потому что монобехи не предусмотрены для работы с асинками, у них нет стокового awaiter-а, а юнитаска не принесла свою реализацию. Сделай нормальный синхронный метод, а внутри вызови асинхронный через UniTask.Run.

Даня-фидер Автор вопроса
Alexander Pluzhnikov
Потому что монобехи не предусмотрены для работы с ...

Всю эту логику вынести в метод который возращает таску и вызвать её через Run?

Как выглядит OnHit?

Даня-фидер Автор вопроса

Ммм, значит ты действительно где-то ранее контекст переключаешь

Даня-фидер Автор вопроса

это типо корутина?

Даня фидер
Извиняюсь, а можно простым языком?)

UniTask.SwitchToThreadPool где-нибудь вызывается?

Даня фидер
Нет

А, подожди, я не туда воюю. UniTask.Create, а не Run

Потому что там Func без аргументов

Даня-фидер Автор вопроса
Даня-фидер Автор вопроса
Alexander Pluzhnikov
() => OnHit(...)

Уже пробовал, когда нужна смена позиции - ничего не происходит, ошибок нет

Даня фидер
Уже пробовал, когда нужна смена позиции - ничего н...

Отладчиком пройди шаг смены позиции. Он покажет исключение, если что-то не так.

Даня-фидер Автор вопроса
Alexander Pluzhnikov
Отладчиком пройди шаг смены позиции. Он покажет ис...

Куда именно смотреть? Конкретно мне ничего не пишет

Даня фидер
screenshot Куда именно смотреть? Конкретно мне ничего не пише...

Это после назначения позиции? Выглядит норм. В transform.position значение поменялось?

Даня-фидер Автор вопроса
Alexander Pluzhnikov
Это после назначения позиции? Выглядит норм. В tra...

Дебаг пишет, что transform.position такой же, как у startPos, в юнити же всё совсем по другому

В инспекторе показываются локальные координаты. У объекта есть родитель?

Даня-фидер Автор вопроса
Даня фидер
Это и есть родительский

Ммм, тогда могу только предложить копать глубже. Из этого кода я не вижу больше причин, почему это не работает. Возможно есть ещё что-то, что меняет позицию. Можно поставить watch в отладчике на transform.position, тогда он остановит поток в случае изменения значения. Либо же задержать выполнение через Delay и сравнить позицию ещё раз. Если теория подтвердится, значит точно есть сторонние изменения.

Даня-фидер Автор вопроса
Alexander Pluzhnikov
Ммм, тогда могу только предложить копать глубже. И...

В проекте 2 скрипта, только конкретно в этом я меняю позицию игрока именно через transform.position, двигается он через CharacterController.Move (кстати, может в нём дело?)

Даня-фидер Автор вопроса
Alexander Pluzhnikov
Ммм, тогда могу только предложить копать глубже. И...

Действительно)) Проблема была в CharacterController'е) При смерти выключаю, при возрождении - включаю и всё отлично работает...

Похожие вопросы

Обсуждают сегодня

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Привет! Подскажите может кто сталкивался, при создании купона выходит вот в таком виде окно. Как поправить это?
Ruslan
4
Помните я тут рассказывал про таролога программистку? Мне выдали новый мем
Magic
6
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
DataGrip не сканирует почему-то все таблицы, хотя раньше показывал их че за херня, сталкивались?
Magic
9
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
Карта сайта