为什么我不能使用WorldToViewportPoint进行2D鼠标移动

时间:2019-04-17 19:40:45

标签: c# unity3d

我想用鼠标指针跟踪2D乒乓球物体的运动,并且我的物体在Y轴上发疯。我想使用WorldToViewportPoint,但是此代码字更适合3D游戏(我认为?)。你们有谁知道为什么我可以使用WorldToViewportPoint跟踪我的运动吗?

(对不起,我的英语不好。我来自德国:)。并为我的编码技能而感到抱歉。

感谢帮助!

using UnityEngine;

public class MausMovement : MonoBehaviour
{
    public Rigidbody2D rb;

    void FixedUpdate()
    {
        var PosY = Camera.main.WorldToViewportPoint(Input.mousePosition).y; // Get the position of the mouse Pointer

        var VectorPos = new Vector2(0, PosY); // transfrom the position in a vector

        rb.MovePosition(VectorPos); // Put in the Rigidbody
    }
}

1 个答案:

答案 0 :(得分:0)

鼠标位于屏幕坐标中,而对象位于世界坐标中,因此应改用Camera.main.ScreenToWorldPoint

请注意,转换会将输入的Z值视为距相机的距离。 Input.mousePosition的Z值将为0,因此您可能需要微调Z,以使桨叶出现在正确的平面中。