unity人物旋转移动代码_Unity中控制人物角色的移动和旋转

private int Speed = 2;

void Update () {

float h = Input.GetAxis("Horizontal");

float v = Input.GetAxis("Vertical");

rigBody.MovePosition(this.transform.position+new Vector3(h,0,v)*Speed*Time.deltaTime);

if(Input.GetAxis("Horizontal")!=0|| Input.GetAxis("Vertical")!=0)

Rotating(h,v);

void Rotating(float horizontal, float vertical)

// 创建角色目标方向的向量

Vector3 targetDirection = new Vector3(horizontal, 0f, vertical);

// 创建目标旋转值 并假设Y轴正方向为"上"方向

Quaternion targetRotation = Quaternion.LookRotation(targetDirection, Vector3.up); //函数参数解释: LookRotation(目标方向为"前方向", 定义声明"上方向")

// 创建新旋转值 并根据转向速度平滑转至目标旋转值

//函数参数解释: Lerp(角色刚体当前旋转值, 目标旋转值, 根据旋转速度平滑转向)

Quaternion newRotation = Quaternion.Lerp(rigBody.rotation, targetRotation, Speed * Time.deltaTime);

// 更新刚体旋转值为 新旋转值

rigBody.MoveRotation(newRotation);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值