Привет! Мне тут нужно заморозить одну функцию до момента, пока

игрок не выполнит определенное действие. Если я воспользуюсь while(true), то у меня вся игра повиснет?

Корутины использовать не хочу, потому что стараюсь держать логику и визуал отдельно.

28 ответов

25 просмотров

Хмм, а если через событие?

Я так понимаю ты эту функцию вызываешь в апдейте?

Nicolas-Cognito Автор вопроса
Daniil Kri
Хмм, а если через событие?

У меня оно сейчас реализовано через объект SpellController, который в апдейте проверяет, выбрана ли цель, и если выбрана, вызывает следующий метод. По сути, то же самое что через ивент, так?

Nicolas Cognito
У меня оно сейчас реализовано через объект SpellCo...

А зачем тебе while(true) в апдейте если апдейт это и есть while(true) loop?

Nicolas-Cognito Автор вопроса
Roman Salnikov
А зачем тебе while(true) в апдейте если апдейт это...

Этот метод я не в апдейте вызываю. Я его вообще не вызывал пока что, но по идее он вызывается один раз при касте спела.

Nicolas-Cognito Автор вопроса
Roman Salnikov
Вопрос то в чем? Не совсем понимаю

Вопрос в том, что я хочу переделать эту тему — отвязать логику от визуала максимально. Придумал вот способ с while(true), по идее если я вызову этот метод, он не будет отпускать тред пока не выполнится условие. Или это не так работает?

По поводу отпускает ли тред я не знаю. По поводу переписать логику, то расскажи как сейчас у тебя и как ты переделал, может мы сможем подсказать более грамотный вариант

Nicolas-Cognito Автор вопроса
Roman Salnikov
По поводу отпускает ли тред я не знаю. По поводу...

Сейчас у меня после того как отдана команда на каст спела создается объект SpellController, в апдейте которого проверяется, выбрал ли игрок цель. Если выбрал, то объект кастует спелл, после чего самоуничтожается.

Nicolas-Cognito Автор вопроса
Roman Salnikov
По поводу отпускает ли тред я не знаю. По поводу...

Переписать у меня еще не получилось, так что рассказывать нечего)

Nicolas Cognito
Сейчас у меня после того как отдана команда на кас...

А почему сразу не проверять выбрана ли цель и если выбрана, то можно кастовать спел?

Nicolas-Cognito Автор вопроса
Roman Salnikov
А почему сразу не проверять выбрана ли цель и если...

Потому что она сразу не выбрана. Её можно выбирать только после начала каста.

Nicolas-Cognito Автор вопроса
Roman Salnikov
А почему сразу не проверять выбрана ли цель и если...

Могу показать через демонстрацию экрана в дискорде или тг

Nicolas Cognito
Потому что она сразу не выбрана. Её можно выбирать...

Ну пусть у тебя будет класс в котором в апдейте будешб проверять выбрана ли цель Если хочешь можно вообще сделать один апдейт на всю систему Зачем создавать то новый объект каждый раз

Nicolas-Cognito Автор вопроса
Nicolas-Cognito Автор вопроса
Roman Salnikov
Ну пусть у тебя будет класс в котором в апдейте бу...

В смысле, в апдейте буду держать логику. Или в корутине.

Nicolas Cognito
Да, наверное так и сделаю. Спасибо.

Я думаю у тебя много где функционал зависит на выборе таргета, поэтому если хочешь ещё импрувнуть производительность, то можно при выборе скила запускать корутину которая чекает выбрана ли цель, чтобы в апдейте не делать

Nicolas Cognito
В смысле, в апдейте буду держать логику. Или в кор...

Хочешь легко? Делай апдейт Посложнее - корутина

Тебе нужно сделать это не блокировав поток, корутины делают это

можно тогда через async await сделать (только запускать через Task.Run а как обычный метод вызвать)

Nicolas Cognito
Этот метод я не в апдейте вызываю. Я его вообще не...

Хмм, я точно не могу сказать ведь как каст идёт я не знаю, но по идее можно чуть по другому сделать, можно китать рейкаст в сторону противника, и если он попал в него то начать каст, ну и за одно проверка на кнопку сделать.

Їкорунтину юзай

И ты изобрела корутины

Phantom
И ты изобрела корутины

ничего что юнитеки сами предлагают этот подход вместо корутин?

Можно ссылку?

ворвусь :)) справедливости ради, там чел, что задал вопрос, в целом не очень понимает, что происходит) Кидать его в асинки, возможно, слишком жестоко) Ну и асинки и корутины это в принципе разные вещи

Artem Jim
ворвусь :)) справедливости ради, там чел, что зада...

да, я потом уже прочла что он не понимает, когда отвечала видела только его сообщение

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

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

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
Всем добрый вечер, Рад оказаться в кругу единомышленников. Начинаю погружаться в мир .net веба. Зовут Ерасыл 🖖 У меня назрел вопрос: Какой процент проектов, прошедшие через в...
Ерасыл
6
Чому? Да тому що без GiT не уявляю нормального проекта а коли код в базі то то так собі
Dmytro Lukianenko
3
Карта сайта