无法将类型'UnityEngine.Vector2'隐式转换为'float'

时间:2019-05-30 19:56:31

标签: c# unity3d

我试图在不重新加载场景的情况下在主菜单屏幕上重置对象的位置。但是,当尝试重置下落物体的速度和角速度时,出现了此错误。

我尝试将“ Vector2.zero”部分替换为“ 0f”,并替换为等于0f的浮点数,但它也不起作用。

void Update () {
        transform.Translate (Vector2.right * Time.deltaTime * moveSpeed);
        if (player.transform.position.x >= 13f) {
            player.GetComponent<Rigidbody2D> ().velocity = Vector2.zero;
            player.GetComponent<Rigidbody2D> ().angularVelocity = Vector2.zero;
            player.transform.position = new Vector2 (-8.5f, 6f);
        }
    }

1 个答案:

答案 0 :(得分:5)

您的问题在这里:

player.GetComponent<Rigidbody2D>().angularVelocity = Vector2.zero;

angularVelocity是浮点数,而不是向量。您正在尝试传递一对值,其中编译器只能使用一个值,因此它不了解您想做什么。

您可以改为分配0f

player.GetComponent<Rigidbody2D>().angularVelocity = 0f;