我是UE4的新手,正在尝试了解一些有关控制角色典当的基本概念。我正在摸索尝试实现一些角色移动逻辑。我要使用基本的WASD将角色向前,向后,左右移动-就像几乎每个基本的第一人称射击游戏一样。我还希望鼠标输入旋转字符。
我有自己的习俗PlayerController
和Character
课程。
添加代码以前后左右移动角色-似乎都在角色类本身中。那里有一个叫做AddMovementInput的方法,似乎可以为我修改位置。这也使我认为角色类“拥有”自己的位置。这是有道理的,因为一次可能有一个以上的角色类别,每个角色类别都在不同的位置,对吗?
添加代码以旋转的字符具有一个用于控制旋转类似的方法- ,AddControllerYawInput
,。AddControllerPitchInput
AddControllerRollInput
简单地看一下功能的名称,就表明偏航俯仰和横滚是由播放器控制器“拥有”的。查看功能的文档和注释可以进一步证明这一点:“将输入(影响Yaw)添加到控制器的ControlRotation(如果它是本地PlayerController)。” 因此,在我看来,偏航角和侧倾是玩家控制器“拥有”的值,对吗?
作为一个初学者,这使我感到困惑:我对位置存储在角色本身中但旋转似乎没有存储这一事实感到困惑。
我有兴趣学习如何“思考”角色或棋子动作。我只是不清楚,这让我迷上了这个话题。
该设计的目的是将角色物理与控制力学分开。就编写软件而言,其想法是根据游戏交互机制将角色在游戏世界内部的旋转与玩家控制的旋转分离。例如,当我的角色的身体以某种方式向下倾斜时,我可以向上瞄准(因此可能与位于其下方的物体发生物理碰撞)。
瞧,您对“谁拥有什么”的看法正确。可以看到的是AController
,基类中PlayerController
,有一个成员变量ControlRotation
类型FRotator
。该数据成员的文档说:
ControlRotation(可通过GetControlRotation()访问)确定受控Pawn的查看/瞄准方向。
并GetControlRotation()
进一步澄清:
daccess-ods.un.org daccess-ods.un.org这是全目标旋转,它可能不同于受控Pawn的旋转(例如,可以选择不进行视觉俯仰或滚动)。
如图所示,控制器旋转与角色自己管理的任何“旋转相关”保持独立。
这是在文档中进一步支持,为下例如见Pawn
(基类的ACharacter
):
典当是玩家或AI可以拥有的所有演员的基类。它们是关卡中玩家和生物的物理表示。
及以下AController
:
控制器是非物理角色,可以拥有Pawn来控制其动作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句