【问题标题】:Instantiated Object Not Moving实例化的对象不移动
【发布时间】:2018-10-07 03:37:45
【问题描述】:

下面是一个附加到预制对象的类,该对象在游戏中被实例化,但没有向下面的代码尝试执行的对象施加向上的力,而是出现此错误。

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);
}

}

【问题讨论】:

    标签: c# unity3d instantiation


    【解决方案1】:
    void Start()
    {
      rb = GetComponent<Rigidbody2D>();
      rb.AddForce(Vector2.up * 15f, ForceMode2D.Impulse);
    }
    

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

    【讨论】:

      【解决方案2】:

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

      rb = gameObject.GetComponent<RigidBody2D>();
      

      由于您的代码现在存在,您正试图从非实例化的 RigidBody2D 获取 RigidBody2D

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        相关资源
        最近更新 更多