Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4039.00元
坦克大战第七第八课
Rices发起了问答2021-04-18
5
回复
176
浏览

还是会出现坦克移动时撞墙抖动,然后同时按两个方向键的时候会移动。

   private void FixedUpdate()//解决刚体移动抖动的问题,有关力的问题
    {
        float h = Input.GetAxisRaw("Horizontal");//得到水平轴数据
        transform.Translate(Vector3.right * h * moveSpeed * Time.fixedDeltaTime, Space.World);//x轴上的移动
      
        float v = Input.GetAxisRaw("Vertical");//得到数据
        transform.Translate(Vector3.up * v * moveSpeed * Time.fixedDeltaTime, Space.World);//y轴上的移动
        if (v < 0)
        {
            sr.sprite = TANK[2];
        }
        else if (v > 0)
        {
            sr.sprite = TANK[0];
        }
        if (v != 0)
        {
            return;
        }
        if (h < 0)
        {
            sr.sprite = TANK[3];
        }
        else if (h > 0)
        {
            sr.sprite = TANK[1];
        }

 

所有回复
  • 老师_Trigger 2021-04-19

    同学你好,可以使用刚体的方法去移动,使用rigidbody.movePositon,放fixedupdate里可以解决

    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • Rices 2021-04-19

    老师还是不行呀,而且我同时按两个方向键坦克还是会乱动

    • 老师_Trigger 2021-04-19

      代码没有什么问题,看看是不是图片给的顺序不对,movePosition不会用的话可以等之后学其他案例再用,小抖动可以先不用管,如果很严重说明是设计比例的问题,可以先使用老师项目中游戏物体的大小去开发

      (0) 回复
    • Rices 2021-04-19

      好的好的谢谢老师

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!