我是UE4的新手,我正试图理解一些关于控制角色典当的基本概念。我在摸索着尝试实现一些角色的运动逻辑。我是去基本的WASD,以推动字符前进,背部,左右-在几乎每一个基本的第一人称射击。我也希望鼠标输入旋转字符周围。
我有自己的自定义PlayerController和Character类。
添加代码来移动字符--前、后、侧--似乎都在字符类本身中。其中有一个名为AddMovementInput的方法,它似乎为我修改了这个职位。这也使我认为字符类“拥有”自己的位置。这是有意义的,因为一次可能有多个字符类,每个在不同的位置,对吗?
添加代码旋转字符有类似的方法控制旋转- AddControllerYawInput,AddControllerPitchInput,AddControllerRollInput。简单地看一下函数的名称,就可以看出偏航、俯仰和滚转都是由玩家控制器“拥有”的。查看文档和函数的注释将进一步支持:“向Controller的ControlRotation添加输入(影响偏航),如果它是本地PlayerController的话。”因此,在我看来,偏航投球和滚转似乎是球员控制者“拥有”的价值,对吗?
作为初学者,这让我感到困惑:我对这样一个事实感到困惑:位置存储在字符本身,但旋转似乎不是。
我有兴趣学习我应该如何“思考”人物或典当运动。我只是不清楚这件事,这使我在这个话题上陷入困境。
发布于 2018-08-25 06:59:53
本设计的目的是将控制力学与人物物理分开。在编写软件方面,的思想是从角色在游戏世界物理中的旋转开始,根据游戏交互机制, https://en.wikipedia.org/wiki/Coupling_(computer_programming)来控制玩家的旋转。例如,I可以是将向上瞄准,而我的角色的身体不知何故是将向下倾斜E 212 --因此可能会与位于其下方的物体发生物理碰撞。
看,你对“谁拥有什么”的观察是正确的。你可以看到 AController是PlayerController的基类,它有一个成员变量ControlRotation,类型为FRotator。该数据成员的文档说:
ControlRotation (通过GetControlRotation()访问)决定了被控制典当的观察/瞄准方向。
和GetControlRotation() 进一步澄清
这是完全的目标旋转,可能与受控的旋转不同(例如,它可能选择不视觉俯仰或滚动)。
与之一样,控制器的旋转与字符自身管理的任何“旋转相关”都是分开的。
这一点在文档中得到了进一步的支持,例如,请参见Pawn (ACharacter的基类):
典当是玩家或AI拥有的所有角色的基类。它们是一个级别上的玩家和生物的物理表示。
以及在AController下
控制器是non-physical参与者,可以拥有一个典当来控制它的动作。
https://stackoverflow.com/questions/52013550
复制相似问题