以下是附加到预制对象的类,该类在游戏中被实例化,但是向上的力未施加到下面的代码试图执行的对象上,相反,我遇到此错误。
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);
}
}
答案 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
。