桨的运动不工作
本文关键字:工作 运动 | 更新日期: 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;
并对其他行执行类似的操作,应该就可以了。