Полезное

Мы Вконтакте

Discord канал

#
12345 ... 8
Аватара пользователя
Пользователь
Сообщения: 27
и еще простенький вопросик, я для своей камеры сделал функцию поворота, суть такая что нажимаешь на кнопку и пока она нажата, считывается X ось мыши из инпута и добавляется к yaw в FRotator камеры, так вот когда я нажимаю на кнопку эту кнопку, я меняю курсор и все дела, только курсор продолжает двигаться :/ а я бы хотел что бы он замирал на месте когда я кручу камеру, как заставить курсор замереть?
Аватара пользователя
Пользователь
Сообщения: 27
и еще вопросик вдогонку, вообще когда курсор слишком близко к персонажу я ему не приказываю бежать к курсору, а приказываю повернуться;

Код:
GetCharacter()->SetActorRotation(FRotator(GetCharacter()->GetActorRotation().Pitch, UKismetMathLibrary::FindLookAtRotation(characterpoint, targetpoint).Yaw, GetCharacter()->GetActorRotation().Roll));


только получается что персонаж поворачивается мгновенно, как можно реализовать плавный поворот? Я искал в Character подобные функции, но не нашел. Но когда используешь simplemovetolocation, он поворачивается плавно перед тем как побежать к точке, хотелось бы что бы он поворачивался с той же скоростью и через фрейм тик делать не хочется.
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:
и через фрейм тик делать не хочется.

тикать все равно прийдется, simplemovetolocation работает на тике.
откровенно говоря павн класс недоделанный в этом плане...
не хватает ассинхронных задач для павна, которорые сами тикают и выполняюся после запуска...
об этом по сути этот мой вопрос
viewtopic.php?p=56532#p56532
сделать менеджр асинхронных задач ,чтоб задачи одной функцией запускать, и получать с функции последующий вызов при завершении.
ну а простое дилетанское решение - интерполировать вращение павна на тике, тоесть тупо ограничить ему скорость вращения.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 27
Snake писал(а):
Цитата:
и через фрейм тик делать не хочется.

тикать все равно прийдется, simplemovetolocation работает на тике.
откровенно говоря павн класс недоделанный в этом плане...
не хватает ассинхронных задач для павна, которорые сами тикают и выполняюся после запуска...
об этом по сути этот мой вопрос
viewtopic.php?p=56532#p56532
сделать менеджр асинхронных задач ,чтоб задачи одной функцией запускать, и получать с функции последующий вызов при завершении.
ну а простое дилетанское решение - интерполировать вращение павна на тике, тоесть тупо ограничить ему скорость вращения.


Это звучит как-то что мне нужно, а твою таск систему реально привязать к павну и системе навигации? я не очень понимаю как там все работает, но пытаясь найти функции управления им понял что вариантов там не особо много и вообще я не очень понял как там все связанно, не знаешь где прочитать про павн класс на русском? или лучше вообще забить на него и от актора начать?
Аватара пользователя
Пользователь
Сообщения: 2319
в исходном коде лучше всего почитать...

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

сам павн с навигацией не связан... вроде бы, неуверен,
за навигацию отвечает АИ контроллер.(?)

эпики вобще забили на разработку управления аи и павном...
куча всего полезного и недоделанного в исходниках, но использовать стремно так как непонятно когда его от туда выпилят.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 27
Вопрос назрел, короче пытался я локализацию сделать, но не встроенную через FText, а свою, и первое что я выяснил это то что у меня строки в кавычках с кирилицей вообще не компилируются, это меня не особо смутило конечно, я все равно хотел локализацию из файлов подгружать, хотя я и удивился, так как консольные приложения у меня собираются на ура, ну так значит запилил я пару файлов, написал пару текстов, На русском и на английском, а в итоге с латиницей все окей, а вот кирица это куча вопросиков, я так понимаю это проблемы с кодировкой? Но я понятия не имею как мне ее решить, у меня русский шрифт импортирован, когда в блюпринтах в том же самом виджете в котором обновляется текст из файла пишешь на кирилице, то все нормально отображается, а из .txt нет.
Аватара пользователя
Пользователь
Сообщения: 2319
задача: запустить ивент установки "дефолтных значений"(инициализации) в компоненте, из самого компонента. Тоесть добавили компонент, и без дополнительных взоздействий из актора он сам запустил ивент установки значений.

все необходимое кроме подходящего ивента вроде как есть... GetOwner() ссылка на актора.(особо больше ничего и не нужно)

кто пробовал и какими способами, у кого какой опыт?

самая большая проблема получить ивент когда обьект полностью сконструирован, и его владелец полностью сконструирован.
PostInitProperties()
OnRegister()
OnComponentCreated()
FObjectInitializer()
-пробовал но так себе работает...
с разного рода глюками... только если дилей нулевой поставить(отложить инициализацию на 1 фрейм после сработки ивента) тогда более менее...
самый частый глюк с переменными на рефы других обьектов, во время сработки ивента они nullptr.

пока само надежно это инициализировать компоненты в констракшн скрипте актора...
что добавляет лишние зависимые движения при разработке компонентов, такие как при каждом добавлении компонента писать логику его инициализации в акторе , что дико бесит, хочется добавить компонент установить ему переменные и все.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
продолжу я свои глупые вопросы:
есть два класса скажем

Код:
#include "B.h"
class A
{
  B*varB=nullptr;
};

#include "A.h"
class B
{
   A*varA=nullptr;
};

каждый из которых содержит переменную указатель на другой класс...
можно ли с хедерами решить вопрос чтоб не было :
LogCompile : error : Circular dependency detected for filename ...бла... бла...
???
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
хм...
https://ru.wikipedia.org/wiki/%D0%9F%D1 ... 0%B8%D0%B5
и это помогло :)
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 21
добавь class перед переменной что бы компилятор понял что это класс.


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

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