Созданный объект не движется - PullRequest
0 голосов
/ 07 октября 2018

Ниже приведен класс, прикрепленный к сборному объекту, который создается в игре, но сила не применяется к объекту, который пытается выполнить приведенный ниже код, вместо этого я получаю эту ошибку.

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 голосов
/ 07 октября 2018

Я предполагаю, что вы пытаетесь подключить RigidBody2D к компоненту LightBulbLeft.В этом случае вы должны сделать:

rb = gameObject.GetComponent<RigidBody2D>();

Поскольку ваш код существует сейчас, вы пытаетесь получить RigidBody2D от неинстанцированного RigidBody2D.

0 голосов
/ 07 октября 2018
void Start()
{
  rb = GetComponent<Rigidbody2D>();
  rb.AddForce(Vector2.up * 15f, ForceMode2D.Impulse);
}

Метод GetComponent<T> возвращает компонент, прикрепленный к объекту.Вы должны назначить rb своему жесткому телу перед применением силы.

...