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

28 ответов

109 просмотров

Потому что монобехи не предусмотрены для работы с асинками, у них нет стокового 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'е) При смерти выключаю, при возрождении - включаю и всё отлично работает...

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта