首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NullReferenceException火球

NullReferenceException火球
EN

Stack Overflow用户
提问于 2016-09-23 19:53:12
回答 1查看 64关注 0票数 0

我正在做这个游戏breakout-game

我试着让球发射并与墙反弹,为了做到这一点,我按照他说的做了,我添加了一个脚本,并放入了以下代码:

代码语言:javascript
复制
public class BallMove : MonoBehaviour {


private Rigidbody rb;
public float ballVelocity = 800f;

private bool isMove; 
// Use this for initialization
void awake() {
    rb = GetComponent<Rigidbody> ();
}

// Update is called once per frame
void Update () {

    if (Input.GetButtonDown ("Fire1") && isMove == false) {
        transform.parent = null;
        isMove = true;
        rb.isKinematic = false;
        rb.AddForce (new Vector3(ballVelocity,ballVelocity,0));
    }
}

}

我理解这段代码的每一行,但当我尝试玩这段代码时,我得到了一个nullReferenceException,我可以运行游戏,但当我按下键时,我得到了一个错误,有人知道为什么吗?然后会发生什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 19:57:11

您应该使用Awake(),而不是awake()。在您的例子中,您使用的是一个“定制”函数,而不是Unity引擎使用的“官方”函数。

因此,引擎不能自己启动该函数,当在Update()中使用时,rb仍然为null。

示例:

代码语言:javascript
复制
void Awake() {
    rb = GetComponent<Rigidbody> ();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39660135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档