桨的运动不起作用

时间:2014-06-04 17:02:00

标签: c# scripting unity3d

通过一些学习Unity的教程。我正处于该系列的第二个视频播放中,视频正在覆盖播放器的运动,其中基于Pong的游戏。

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

由于我是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

1 个答案:

答案 0 :(得分:2)

你没有改变刚体的速度。您正在更改另一个任意向量v

是的,在Start()中你说v = rigidbody2D.velocity;,但只会将刚体的当前速度指定为v。如果您随后更改了v,那么您正在改变它,而不是原始刚体的速度。

因此请将更新更改为

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

并为其他行做类似的事情,你应该好好去。