实例化对象不动
Instantiated Object Not Moving
下面是一个 class 附加到在游戏中实例化的预制对象,但是向上的力没有应用到下面的代码试图做的对象而不是我得到这个错误。
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);
}
}
void Start()
{
rb = GetComponent<Rigidbody2D>();
rb.AddForce(Vector2.up * 15f, ForceMode2D.Impulse);
}
GetComponent<T>
方法 returns 组件附加到对象。在施加力之前,您需要将 rb
分配给刚体。
我假设您正在尝试将 RigidBody2D
附加到 LightBulbLeft
组件。在那种情况下,你会做:
rb = gameObject.GetComponent<RigidBody2D>();
由于您的代码现在存在,您正在尝试从未实例化的 RigidBody2D
中获取 RigidBody2D
。
下面是一个 class 附加到在游戏中实例化的预制对象,但是向上的力没有应用到下面的代码试图做的对象而不是我得到这个错误。
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);
}
}
void Start()
{
rb = GetComponent<Rigidbody2D>();
rb.AddForce(Vector2.up * 15f, ForceMode2D.Impulse);
}
GetComponent<T>
方法 returns 组件附加到对象。在施加力之前,您需要将 rb
分配给刚体。
我假设您正在尝试将 RigidBody2D
附加到 LightBulbLeft
组件。在那种情况下,你会做:
rb = gameObject.GetComponent<RigidBody2D>();
由于您的代码现在存在,您正在尝试从未实例化的 RigidBody2D
中获取 RigidBody2D
。