官方教程,玩家控制的相机
-
USpringArmComponent
和UCameraComponent
类型找不到的情况,需要在PawnWithCamera.h中添加下列头文件:
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
-
官方教程中的
MovementInput.SafeNormal()
会显示MovementInput【FVector2D类型】中的SafeNormal()函数已经被弃用,可以使用GetSafeNormal()
函数来代替。
-
在运行时,当控制物体移动到场景中的桌子或椅子处时,会遇到有关摄像机奇怪的现象(无法形象的描述),这里涉及到了有关物理碰撞的知识,解决方法,可以分别设置桌子和椅子的下列属性:
补充第1次(2018/05/11):
这里是配置的物理通道,也可以自定义物理通道,是在Edit->Project Settings->Engine/Collision
,具体的方法参考:https://docs.unrealengine.com/en-US/Programming/Tutorials/FirstPersonShooter/3/3
配置输入,在“虚幻编辑器->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 )
关于rotation的yaw,pitch,roll