UE4 人物控制移动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4 人物控制移动相关的知识,希望对你有一定的参考价值。
参考技术A 我们只做一个简单的前后移动第一步我们需要给MyPawn加一个组件
第二步编写蓝图
在这个蓝图里我们需要注意两个结点
这个结点表明我们从该节点以后可以执行两个事件,但是该节点执行机制是单线程的,意思就是只有执行完Then0以后才会执行第二个
这个结点相当于一个闸口
控制左右旋转
而我们也有另外一种移动方式
此时我们也需要在MyPawn的
勾上此选项就可以了
下边是鼠标右键控制视野上下
‘
这里的ControlerRotation我们其实就可以简单的理解,该Actor是否运动鼠标控制的偏移,就是鼠标上下左右移动是否会对其有影响
而我们经常遇到的SpringArm也有这几个选项
个人理解
UsePawnControlRotation是否使用鼠标的上下左右移动来对其控制
剩下的就是是否继承某个轴的转向
而Camera也有类似的设置
UsePawnControlRotation是否使用鼠标的上下左右移动来对其控制
关于用过控制人物移动的方法
在这里将收集更新有关,控制移动的方法。
1.通过WSAD控制人物的前后移动的方法(一)
1 public class PlayerMovemeng:monoBehaviour 2 { 3 //人物的移动速度 4 public float speed=6f; 5 //坐标的移动变化量 6 Vector3 movement; 7 Rigidbody playerRigidbody; 8 //与Ray发生碰撞的平面的Layer层数’ 9 int FloorMask; 10 float camRayLength=100f; 11 void Awake() 12 { 13 floorMask=LayerMask.GetMask("Floor"); 14 PlayerRigidbody=GetComponent<Rigidbody>(); 15 } 16 void FixedUpdate() 17 { 18 //ws前后的控制 19 float h=Input.GetAxisRaw("Horizontal"): 20 //ad左右的控制 21 float v=Input.GetAxisRaw("Vertical") 22 Move(h,v); 23 Turning(); 24 } 25 //实现移动 26 void Move(float h,float v) 27 { 28 movement.Set(h,0,v); 29 movement=movement.normalized*speed*Time.deltaTime; 30 //使用刚体的MovePosition来实现人物移动 31 playerRigidbody.MovePosition(trandorm.position+movement); 32 } 33 //转向鼠标 34 void Turning() 35 { 36 Ray camRay=Cameta.main.ScreenPointToRay(Input.mousePosition); 37 RaycastHit floorHit; 38 if(Physics.Raycast(camRay,Out floorHit,camRayLength,floorMask)); 39 { 40 //获取人物与鼠标点击处的向量 41 Vevtor3 playerToMouse=floorHit.point-transform.position;
//获取人物与鼠标之间的用于旋转的四元数 42 Quaternion newRotation=Quaternion.LookRotation(playerToMouse);
//实现人物的转向过度 43 playerRigidbody.MoveRotation(newRotation); 44 } 45 } 46 }
2.实现相机跟随人物的脚本(无旋转方向)
1 public Transform target; 2 //镜头滑动速度 3 public float smoothing=5f; 4 //相机与人物的距离 5 Vector3 offset; 6 void Start() 7 { 8 offset=transform.positiion-target.position; 9 } 10 void FixedUpdate() 11 { 12 Vevtor3 targetCamPos=target.position+offset; 13 transform.position=Vector3.Lerp(transform.position,targetCamPos,smoothing*Time.datle); 14 }
以上是关于UE4 人物控制移动的主要内容,如果未能解决你的问题,请参考以下文章