UE4/玩家控制的相机

官方教程,玩家控制的相机


  • USpringArmComponentUCameraComponent类型找不到的情况,需要在PawnWithCamera.h中添加下列头文件:
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"

  • 官方教程中的
MovementInput.SafeNormal()

会显示MovementInput【FVector2D类型】中的SafeNormal()函数已经被弃用,可以使用GetSafeNormal()函数来代替。


  • 在运行时,当控制物体移动到场景中的桌子或椅子处时,会遇到有关摄像机奇怪的现象(无法形象的描述),这里涉及到了有关物理碰撞的知识,解决方法,可以分别设置桌子和椅子的下列属性:
    UE4/玩家控制的相机_第1张图片

补充第1次(2018/05/11):
这里是配置的物理通道,也可以自定义物理通道,是在Edit->Project Settings->Engine/Collision,具体的方法参考:https://docs.unrealengine.com/en-US/Programming/Tutorials/FirstPersonShooter/3/3


  1. 配置输入,在“虚幻编辑器->Edit->Project Settings->Input”

    映射分为:动作映射(Action Mappings)和轴映射(Axis Mappings),

    • Action Mappings 在key按下和释放时触发

      绑定动作映射使用:

      PlayerInputComponent->BindAction(); // Binds a delegate function to an Action defined in the project settings.

      函数的定义是:

      template<class UserClass>
      FInputActionBinding & BindAction
      (
          const FName ActionName,
          const EInputEvent KeyEvent,
          UserClass * Object,
          typename FInputActionHandlerSignature::TUObjectMethodDelegate< UserClass >::FMethodPtr Func
      )

      EInputEvent类型的定义:

      enum EInputEvent
      {
          IE_Pressed        =0,
          IE_Released       =1,
          IE_Repeat         =2,
          IE_DoubleClick    =3,
          IE_Axis           =4,
          IE_MAX            =5,
      }
    • Axis Mappings 允许输入在一个连续值的范围内,因此与此相关的自定义函数都具有一个float型的参数

      绑定轴映射使用:

      PlayerInputComponent->BindAxis();  // Binds a delegate function an Axis defined in the project settings.

      函数的定义是

      template<class UserClass>
      FInputAxisBinding & BindAxis
      (
          const FName AxisName,
          UserClass * Object,
          typename FInputAxisHandlerSignature::TUObjectMethodDelegate< UserClass >::FMethodPtr Func
      )
  2. 关于rotation的yaw,pitch,roll

    UE4/玩家控制的相机_第2张图片

你可能感兴趣的:(虚幻引擎)