实例化的对象未移动

时间:2018-10-07 03:37:46

标签: c# unity3d instantiation

以下是附加到预制对象的类,该类在游戏中被实例化,但是向上的力未施加到下面的代码试图执行的对象上,相反,我遇到此错误。

NullReferenceException:对象引用未设置为对象的实例在第15行

哪个

rb.GetComponent<Rigidbody2D>();

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LightBulbLeft : MonoBehaviour {

//public GameObject LeftLB;


Rigidbody2D rb;

// Use this for initialization
void Start()
{
    rb.GetComponent<Rigidbody2D>();
    rb.AddForce(Vector2.up * 15f, ForceMode2D.Impulse);
}

}

2 个答案:

答案 0 :(得分:2)

void Start()
{
  rb = GetComponent<Rigidbody2D>();
  rb.AddForce(Vector2.up * 15f, ForceMode2D.Impulse);
}

GetComponent<T>方法返回附加到对象的组件。施加力之前,您需要将rb分配给刚体。

答案 1 :(得分:1)

我假设您正在尝试将RigidBody2D附加到LightBulbLeft组件。在这种情况下,您可以这样做:

rb = gameObject.GetComponent<RigidBody2D>();

由于您的代码现在已经存在,因此您正在尝试从非实例化的RigidBody2D获取RigidBody2D