unity第三人称旋转_unity 第三人称控制移动

本文详细介绍了在Unity中实现第三人称角色的键盘行走控制和鼠标旋转操作。通过Input.GetAxis()获取键盘和鼠标输入,调整角色的移动和旋转。同时,针对摄像机的平滑跟随和上下旋转,利用Lerp()函数和三角函数实现,确保摄像机始终在角色后上方并随角色转动。文章还提到了可能存在的性能问题以及不同方法的选择。
摘要由CSDN通过智能技术生成

键盘WSAD控制行走

最简单的就是使用Input.GetKeyDown()函数接收键盘

值输入,但在这里还有更简单的方法去实现。

利用Input.GetAxis()来获取坐标轴的改变。在InputManager中有许多参数,对应目前的需求只要Horizontal和Vertical这两个,前者对应坐标系的左右,后者对应前后。

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

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

//Debug.Log("H: " + H + " V: " + V);

Vector3 direction = H * m_transform.right + V * m_transform.forward;

Vector3 NewPosition = m_rigidbody.position + direction;

m_rigidbody.MovePosition(NewPosition);

摄像机固定在主角的后上方

代码需要绑定在主摄像机上,基本思想就是在Update()中检测主角的坐标轴,然后根据主角的坐标算出摄像机应该所在的位置,在利用LookAt()函数使摄像机角度转向主角。

这里为了使摄像机的转向趋于平滑,可以使用Lerp()函数。

Vector3 NextPos = target.forward * -1 * distance + target.up * high + target.position;

m_trans.position = Vector3.Lerp(this.transfo

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值