繁体   English   中英

unity 3D 向后移动时移动问题

[英]Unity 3D Movement Problem when moving backward

以下代码假设根据 plyer 的输入移动和旋转角色。 但是,它在向前、向左和向右移动时运行良好,但在向后移动时会继续旋转。

有谁知道这是为什么? 我真的不知道这怎么可能,它使用完全相同的代码向其他方向移动,为什么它在向后移动时不起作用?!

请帮我。 我正在为此失去理智。

代码放在 Update() function 中。

PS:所以,现在我确定问题是总是触发向后移动的 if 语句。 我在向后移动时记录了 transform.foward,它输出 (0,0,-1) 但等于 function 仍然返回 false。 我不明白为什么会这样,为什么这不会发生在任何其他方向。 请帮忙,谢谢!

PSS:所以我切换了。等于 function 到 == 操作,它现在可以工作了。 仍然很好奇为什么会发生这种情况。

// Player Movements
        hInput = Input.GetAxis("Horizontal");
        vInput = Input.GetAxis("Vertical");
        if(Mathf.Abs(hInput) > Mathf.Abs(vInput))
        {
            if(hInput > 0)
            {
                // move right
                if (!transform.forward.Equals(new Vector3(1, 0, 0)))
                {
                    transform.Rotate(90, 0, 0);

                }
            } else if(hInput < 0)
            {
                // move left
                if (!transform.forward.Equals(new Vector3(-1, 0, 0)))
                {
                    transform.Rotate(-90, 0, 0);
                }
            }
            controller.Move(new Vector3(hInput, 0, 0) * mSpeed * Time.deltaTime);
        } else if(Mathf.Abs(hInput) < Mathf.Abs(vInput))
        {
            if (vInput > 0)
            {
                // move forward
                if (!transform.forward.Equals(new Vector3(0, 0, 1)))
                {
                    transform.Rotate(90, 0, 0);

                }
            }
            else if (vInput < 0)
            {
                // move backward
                if (!transform.forward.Equals(new Vector3(0, 0, -1)))
                {
                    transform.Rotate(-90, 0, 0);
                }
            }

            controller.Move(new Vector3(0, 0, vInput) * mSpeed * Time.deltaTime);
        }strong text

播放器上有哪些组件? 另外,我建议记录 transform.foward function

UnityEngine.Debug.Log(transform.forward)

看来 transform.foward 最有可能是您的问题的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM