Unreal Engine 4 http://uengine.ru/forum/ |
|
Добавление движения классу Actor (Не Pawn или Character) http://uengine.ru/forum/viewtopic.php?f=19&t=16638 |
Страница 1 из 1 |
Автор: | NoirMorilec [ 29 дек 2018, 19:14 ] |
Заголовок сообщения: | Добавление движения классу Actor (Не Pawn или Character) |
Добрый день всем! Подскажите пожалуйста, могу ли я каким угодно образом заставить двигаться персонажа на основе Actor? (Не Pawn) Я только недавно начал изучать уе4, но мне хочется попробовать написать собственный чарактер с меньшим функционалом чисто для тренировки. Но вот вопрос - как лучше это сделать? К примеру, я создам класс-наследник от AActor. Затем одно из нескольких вариантов: 1. Использовать ActorMovementComponent, но не знаю, чем он отличается от PawnMovementComponent (либо же использовать второе, к примеру) 2. Покопаться в EnableMovement у Actor`а и через него всё делать Как лучше быть? Что лучше использовать? |
Автор: | Prytaleks [ 30 дек 2018, 10:39 ] |
Заголовок сообщения: | |
SetActorLocation, AddActorLocation ты можешь двигать что угодно используя эти функции, можешь двигать по forward вектору, можешь двигать по right вектору, можешь двигать по forward + right вектору, также все предыдущие варианты умножить на -1 что бы инвертировать направление. Также еще есть и up вектор. Можешь двигать и резко и плавно, и наращивая скорость постепенно, как напишешь так и будет. p.s. я не много в шоке от начинающих с++ сников, еще не поняли как вообще все работает, но начинается все, с создания наследников. как лучше быть> учить разнообразные инструменты движка что лучше использовать > мозг и накопленные знания. |
Автор: | NoirMorilec [ 30 дек 2018, 22:42 ] |
Заголовок сообщения: | Re: |
Prytaleks писал(а): SetActorLocation, AddActorLocation ты можешь двигать что угодно используя эти функции А если я хочу именно не просто устанавливать новые значения, а именно передвигать объекты как физические предметы? То есть, если врезаются в стенку, то пусть не передвигаются, к примеру. Ибо через установку вектора они тупо будут проходить через всё |
Автор: | Prytaleks [ 31 дек 2018, 00:30 ] |
Заголовок сообщения: | Re: Re: |
NoirMorilec писал(а): Prytaleks писал(а): SetActorLocation, AddActorLocation ты можешь двигать что угодно используя эти функции А если я хочу именно не просто устанавливать новые значения, а именно передвигать объекты как физические предметы? То есть, если врезаются в стенку, то пусть не передвигаются, к примеру. Ибо через установку вектора они тупо будут проходить через всё https://api.unrealengine.com/INT/API/Ru ... index.html надеюсь гугл переводчик уже осилил вообще существует больше функций для движения, вот еще одна функция(не последняя) - https://api.unrealengine.com/INT/API/Ru ... index.html p.s. лучше пару лет движок поучить, а потом уже смело и уверенно изобретать велосипед. В таком случае даже если бы в этих функциях не было бы таких вещей как Sweep и Teleport ты мог бы запустить лайнтрэйс и запретить движение, если необходимо. |
Автор: | NoirMorilec [ 01 янв 2019, 20:36 ] |
Заголовок сообщения: | Re: Re: |
Спасибо, с этим разобрался. А могу ли я добавить бинды кнопок для актора, у которого нету inputcomponent? Чтобы я мог передвигать actor`а по какой-либо клавише? (Ибо у Pawn это есть уже, а у Actor`а не вижу) https://answers.unrealengine.com/questi ... an-ac.html Ибо тут говорят, что это невозможно, но я тогда не совсем понимаю, в чем смысл всяких функций в классе actor в виде "enable input" и прочее Кстати, с Новым Годом! |
Автор: | Prytaleks [ 01 янв 2019, 21:44 ] |
Заголовок сообщения: | |
актор должен быть помечен как "игрок", что бы работали кнопки. |
Автор: | semusto [ 18 янв 2019, 22:35 ] |
Заголовок сообщения: | Re: |
Prytaleks писал(а): актор должен быть помечен как "игрок", что бы работали кнопки. Какой ещё игрок, что игрок ? какой код будет игрок выпольнять ? Нужно добавить InputComponent и обработать его Для AActor например так: В .h файле Код: #include "Runtime/Engine/Classes/Components/InputComponent.h" ... В классе Код: void SetupMyPlayerInputComponent(UInputComponent* myInputComponent); В .cpp файле: Код: void AMyActor1::BeginPlay()
{ Super::BeginPlay(); EnableInput(GetWorld()->GetFirstPlayerController()); UInputComponent* myInputComp = this->InputComponent; if (myInputComp) { SetupMyPlayerInputComponent(myInputComp); } } void AMyActor1::SetupMyPlayerInputComponent(UInputComponent* myInputComponent) { //UE_LOG(YourLog, Warning, TEXT("SETUP PLAYER INPUT COMPONENT")); //Super::SetupPlayerInputComponent(InputComponent); //Another experimental thing myInputComponent->BindAction("mKey1", IE_Pressed, this, &AMyActor1::keyE); } void AMyActor1::keyE() { UE_LOG(LogTemp, Warning, TEXT("ss")) } |
Автор: | Prytaleks [ 20 янв 2019, 07:12 ] |
Заголовок сообщения: | Re: Re: |
semusto писал(а): Какой ещё игрок, что игрок ? какой код будет игрок выпольнять ? Нужно добавить InputComponent и обработать его я имел ввиду указать нужной актор в геймоде, после чего инпуты можно добавлять как в настройках проекта, так и в самом акторе, также не забыть про Auto Recive Input в настройках актора. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |