桨的运动不工作

本文关键字:工作 运动 | 更新日期: 2023-09-27 18:06:48

只是通过一些教程学习Unity。我正在看这个系列的第二个视频,这个视频是关于玩家的运动的,它是基于Pong的游戏。

导师正在使用JavaScript并编写了一些代码,这些代码似乎可以使Paddle上下移动。然而,我正在使用c#,并遇到了诸如cannot reference UnityEngine.Component.rigidbody2D等错误。现在我已经摆脱了错误/bug,没有任何错误,但它仍然不工作。

因为我是Unity的新手,有人能帮我解决这个问题吗?我相信这是非常简单的东西,但我还不熟悉Unity代码库。我写的代码如下:

顺便说一句……我重新添加了Start方法,作为其他地方提到的通过使用Start方法解决此类问题的解决方案……尽管在视频中导师说要删掉

using UnityEngine;
using System.Collections;
public class PlayerControls : MonoBehaviour {
public KeyCode moveUp, moveDown;
public float speed = 10;
public Vector2 v;
//Used for Initialising
void Start()
{
    v = rigidbody2D.velocity;
}
// Update is called once per frame
void Update () 
{
    if (Input.GetKey(moveUp))
    {
        v.y = speed;
    }
    else if (Input.GetKey(moveDown))
    {
        v.y = speed * - 1;
    }
    else
    {
        v.y = 0;
    }
}
}

链接到我正在关注的视频:https://www.youtube.com/watch?v=hCysoAoV3dc

桨的运动不工作

你没有改变刚体的速度。你改变了另一个任意向量v

是的,在你的Start()中,你说v = rigidbody2D.velocity;,但这只是将刚体的当前速度分配给v。如果你随后改变v,你改变的只是这个,而不是原始刚体的速度。

所以把你的update改成

v = rigidbody2D.velocity; //you might be able to skip this in your case
v.y = speed;
rigidbody2D.velocity = v;

并对其他行执行类似的操作,应该就可以了。