C# 我的角色在2d unity项目中没有进展 private rigidibody2d\u; 公众浮标速度; 无效开始(){ _myRigidbody=this.GetComponent(); } 无效更新(){ float move=Input.GetAxis(“水平”); _myRigidbody.velocity=新矢量2(移动*速度,_myRigidbody.velocity.y); } }

C# 我的角色在2d unity项目中没有进展 private rigidibody2d\u; 公众浮标速度; 无效开始(){ _myRigidbody=this.GetComponent(); } 无效更新(){ float move=Input.GetAxis(“水平”); _myRigidbody.velocity=新矢量2(移动*速度,_myRigidbody.velocity.y); } },c#,unity3d,C#,Unity3d,我在inspector中将速度设置为7。当我在Unity中启动它时,角色不移动,但动画工作。我该怎么做才能修好它?(Unity 5)谢谢。我想问题是您正在创建对空对象的引用 private Rigidbody2D _myRigidbody; public float speed; void Start () { _myRigidbody = this.GetComponent<Rigidbody2D>(); } void Update () { float move

我在inspector中将速度设置为7。当我在Unity中启动它时,角色不移动,但动画工作。我该怎么做才能修好它?(Unity 5)谢谢。

我想问题是您正在创建对空对象的引用

private Rigidbody2D _myRigidbody;
public float speed;
void Start () {
    _myRigidbody = this.GetComponent<Rigidbody2D>();
}

void Update () {
    float move = Input.GetAxis("Horizontal");
    _myRigidbody.velocity = new Vector2(move * speed, _myRigidbody.velocity.y);
}
}
\u myRigidbody=this.GetComponent();
这条线表示_myRigidbody=myRigidbody;wich是空的

尝试:

_myRigidbody = this.GetComponent<Rigidbody2D>();
\u myRigidbody=gameObject.GetComponent();

移动的值是多少?你确定不是0吗
0*0=0
在我观看的教程中,为move赋值就像<代码>浮动移动=输入.GetAxis(“水平”)这对他很有效。作为我的第一次尝试,我只想写同样的代码。这是关于统一版本的吗@请尝试检查项目的输入设置。正常情况下,有一个“水平”轴的条目,但可能不知怎么的,它在您的中丢失了?@Agumander是的,有一个条目,带有默认值。只需检查:)我尝试了您发布的代码,它确实移动了角色,所以奇怪的是它对您不起作用。尝试在“move”变量上使用Debug.Log()将其值打印到控制台。
_myRigidbody = gameObject.GetComponent<Rigidbody2D>();