不幸的是,我的数学知识非常令人沮丧,但我真的很想了解我必须通过用鼠标拖动来控制 Actor 的代码。此代码还可以用作通过在屏幕上单击鼠标将对象放置在世界中的方式。
首先-代码效果很好,更多的是关于向量代数而不是虚幻引擎的问题。我迷路了,我什至不知道如何正确命名变量哈哈
因此,这是我从我发现的一个蓝图示例转换而来的代码,它实现了我需要的功能:
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”?这对我来说将是一个巨大的进步,完美的情况是解释每一行......
提前致谢!