«Объект, который вы хотите создать, равен null», но я использую ресурс unity

#c# #unity3d

#c# #unity3d

Вопрос:

Есть масса подобных вопросов, но ни один из них, похоже, не относится ко мне, поскольку я напрямую использую ресурс из Unity. У меня есть сборный элемент Bullet, установленный на Rigidbody2D и имеющий тег «Bullet».

Когда я положил

Вот мой исходный код:

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

public class Umbrella : MonoBehaviour
{

    public Bullet bullet;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

        if (Input.GetKeyDown(KeyCode.Space))
        {            
            Instantiate(bullet);
        }

    }
}
 

У меня есть маркеры и все такое, но это не работает.
Изображение

Я буквально застрял на этом уже почти час…

Редактировать: Umbrella

Комментарии:

1. Пожалуйста, отредактируйте вопрос, чтобы включить изображение инспектора, показывающего Umbrella компонент. Я предполагаю, что у вас нет Bullet к этому никакого отношения.

2. @Ruzihm Только что сделал

3. Перетащите сборный элемент туда, где указано Bullet None (Rain)

4. @Ruzihm БОЛЬШОЕ СПАСИБО. Я знал, что это что-то простое, когда понял, что ни у кого другого не было такого типа ошибок с instantiate.

Ответ №1:

Вам нужно назначить свой сборный bullet элемент элементу компонента Umbrella, чтобы при вызове Instantiate(bullet); он знал, что bullet должно быть.

Вы можете сделать это, перетащив сборку туда, где указаноBullet None (Rain), как показано ниже: введите описание изображения здесь