Полезное

Мы Вконтакте

Discord канал

#
Пред.
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 176
Привет! Вот такой код увеличивает/уменьшает радиус освещения фонарика. Но, когда угол доходит до нужного мне предела, то появляется сообщение "STOP!", говорящее о том, что нужный предел достигнут. Вроде работает, но когда я хочу уменьшить радиус, то не могу, так как по логике блокируется блюпринт. До самих границ уменьшается/увеличивается нормально. Без условных ограничений тоже всё работает нормально. Я не понимаю, что делать.

Тут проект: https://wdfiles.ru/dscI 770Мб, так как в основе FPS пример.

Управление в игре:

F - Вкл/Выкл фонарика.
R/T - Увеличить/уменьшить дальность света.
C/V - Увеличить/уменьшить силу света.
G/H - Увеличить/уменьшить радиус света.

P.S. Спасибо за таймер. Значительно упростило тесты :)

Изображение
Аватара пользователя
Пользователь
Сообщения: 4069
ну так у тебя отсутствует какая либо логика для уменьшения радиуса

p.s. на таймере запускай луч, меряй длину луча и от этого меняй радиус
Аватара пользователя
Пользователь
Сообщения: 176
Prytaleks писал(а):
ну так у тебя отсутствует какая либо логика для уменьшения радиуса

Она есть. Просто в скрин я поместил только увеличение, чтобы показать логику. Просто когда доходит до 45 иил 0, то ни увеличение, ни уменьшение уже не работает. Пишет "STOP!"
Аватара пользователя
Пользователь
Сообщения: 176
Prytaleks писал(а):
p.s. на таймере запускай луч, меряй длину луча и от этого меняй радиус

А с логикой помочь? :) Я ещё не понимаю, почему нужно именно >=, а просто > не работает :)
Аватара пользователя
Пользователь
Сообщения: 4069
что бы померять длину луча, юзай ноду VectorLength

Изображение

p.s. лайнтрэйсы запускать умеешь?
Аватара пользователя
Пользователь
Сообщения: 2319
1 - попробуй найти куда вставить в свою логику - clamp
2 - вместо принтстринга почему бы не останавливать таймер
3 - есть нода "++" да увеличения перемнной на 1
4 - не делать одностронний обрыв вызова фунций, например сброс должен быть какой-то
5 - пересмотреть всю логику сделать ее несколькими любыми другими способами
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
да тут шутячая логика, запускать лайнтрэйс по форвард вектору, мерять длину луча(вектора), умножать полученную цифру на определенное число, возможно добавить clamp.
Аватара пользователя
Пользователь
Сообщения: 4069
yellyex писал(а):
Prytaleks писал(а):
p.s. на таймере запускай луч, меряй длину луча и от этого меняй радиус

А с логикой помочь? :) Я ещё не понимаю, почему нужно именно >=, а просто > не работает :)


потомучто переменная по умолчанию 0, а условие >0, поэтому сразу отправляет в фалсе. Естественно при условие больше или равно 0 оно работает.
Аватара пользователя
Пользователь
Сообщения: 176
Спасибо парни сейчас всё попробую.
Аватара пользователя
Пользователь
Сообщения: 176
А что кламп делает?

А кажется понял. Он как раз ограничивает углы.
Последний раз редактировалось yellyex 15 май 2017, 11:29, всего редактировалось 1 раз.


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

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница