虚拟摇杆控制物体移动,解决旋转之后物体依然朝遥杆对应方向移动的问题

笔者在使用虚拟摇杆的过程中,不仅需要遥杆控制物体前后左右移动,还用按钮控制物体左右旋转,因为摄像机在物体上,这就产生了一个问题,在旋转之前,物体移动的方向跟视角方向一样,但是一旦开始旋转几次后,物体的移动依然是按着摇杆控制的世界坐标的方向移动,可是由于视角改变,造成摇杆的方向跟物体移动的视角方向不一致。
于是笔者就对物体的移动进行了一定的改动,达到了想要的结果。

public void Move(Vector3 dir)
    {
        Vector3 moveDir=Vector3.zero;
        if (dir.x >= dir.z && Mathf.Abs(dir.x) >= Mathf.Abs(dir.y))
        {
            moveDir = transform.right;
        }
        if(dir.x>=dir.z&& Mathf.Abs(dir.x) < Mathf.Abs(dir.y))
        {
            moveDir = -transform.forward;
        }
        if(dir.x < dir.z && Mathf.Abs(dir.x) >= Mathf.Abs(dir.y))
        {
            moveDir = -transform.right;
        }
        if (dir.x < dir.z && Mathf.Abs(dir.x) < Mathf.Abs(dir.y))
        {
            moveDir = transform.forward;
        }
        transform.position +=moveDir.normalized * speed * Time.deltaTime;
    }
笔者在摇杆方向改变的时候传递了摇杆的方向坐标,再根据坐标计算出摇杆的方向,用方向来控制物体移动,最终解决了旋转后视角方向改变的问题。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值