通过一些学习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;
}
}
}
答案 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;
并为其他行做类似的事情,你应该好好去。