Unreal入门,通过蓝图自定义Pawn移动

1. 自定义Pawn
- 
新建Pawn 
 ![image]() 
- 
添加相机和网格体 
 ![image]() 
- 
网格体设置(新建项目自带资源里随便挑一个) 
 ![image]() 
- 
相机设置(主要是旋转和位移,随便设置下,大概能达到俯视效果就行,其它效果也可以,只要能看到自己的Pawn,不然不知道怎么动的) 
 ![image]() 
2. 应用自定义Pawn(默认GameMode不可编辑,不能直接替换Default Pawn)
- 
新建GameMode 
 ![image]() 
- 
World Settings应用自定义的GameMode以及Default Pawn 
 ![image]() 
3. 自定义输入事件及按键绑定(名字不一定需要一样,叫阿猫阿狗都行)


4. Pawn蓝图中处理刚才自定义的按键事件
- 
右键添加MoveForward/MoveRight(或者刚才自定义的阿猫阿狗)事件,输入移动指令 
 ![image]() 
- 
Event Tick事件中消耗已输入的移动指令 
 ![image]() 
最终效果

PS:叫阿猫阿狗真的可以




帧率问题,默认帧率60fps,当前设置下,如果帧率翻倍则移动速度也会跟着翻倍,可以将这个值乘以帧间隔时间Delta Seconds即可得到帧独立速度
当前速度 = 帧率 * Movement值 / 1秒 (不应用独立帧率的时候快的飞起)
帧独立速度 = 帧率 * Movement值 * 1帧时间 / 1秒
1帧时间 = 1秒/帧率
帧独立速度 = 帧率 * Movement值 * (1秒/帧率) / 1秒 = Movement值

忽略独立帧率问题的话,其实也可以不用Tick的,直接自产自销

MovementInput太碍事?也可以干掉的

如果是继承自Character的Pawn,让角色移动的步骤就更少了,只用连线AddMovementInput即可达到移动效果,而且移动速度是帧率无关的

修改帧率测试指令

# 显示帧率
stat fps
# 修改帧率为120
t.MaxFPS 120
# 修改帧率为60
t.MaxFPS 60
参考
https://zhuanlan.zhihu.com/p/522287677
https://www.unrealengine.com/en-US/blog/input-action-and-axis-mappings-in-ue4
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/Input/AddMovementInput/
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/Input/ConsumeMovementInputVector
https://docs.unrealengine.com/4.26/en-US/API/Runtime/Engine/GameFramework/AActor/AddActorLocalOffset/
 
                    
                     
                    
                 
                    
                 








 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号