Мои познания в математике, к сожалению, сильно удручают, но очень хочется разобраться в коде, которым я должен управлять Актером, перетаскивая его мышкой. Этот код также работает как способ размещения объекта в мире щелчком мыши по экрану.
Во-первых - код работает отлично, речь больше о векторной алгебре, чем о Unreal Engine. Я так запутался, что даже не знаю, как правильно назвать переменные, лол
Итак, вот код, который я преобразовал из одного из найденных мной примеров Blueprint, который реализует нужную мне функциональность:
FVector WorldLocation;
FVector WorldDirection;
PlayerController->DeprojectMousePositionToWorld(WorldLocation, WorldDirection);
// Have no idea how it works but it works! I really need to learn more about vector Algebra :(((
float DistanceAboveGround = 200.0f;
float NotSureWhyThisValue = -1.0f;
float WhyThisOperation = WorldLocation.Z / WorldDirection.Z + DistanceAboveGround;
FVector IsThisNewWorldDirection = WorldDirection * WhyThisOperation * NotSureWhyThisValue;
FVector ActorWorldLocation = WorldLocation + IsThisNewWorldDirection;
// end of "Have no idea how it works" code
Capsule->SetWorldLocation(ActorWorldLocation);
Если кто-нибудь может объяснить мне, почему мне нужно выполнять эти операции, начиная с // Понятия не имею.. строка комментария? Если я смогу понять, как правильно называть «NotSureWhyThisValue», «WhatDoesItMean», «WhyThisOperation» и «IsThisNewWorldDirection?» это будет огромным улучшением для меня, хотя идеальным случаем было бы объяснить каждую строку...
Заранее спасибо!