private void Awake()
{
bullet = Resources.Load<Bullet>("Assets/PreFab/Bullet.prefab");
}
void Update()
{
if (bullet == null)
Debug.Log("Fuck");
if (Input.GetButtonDown("Fire1")) Shoot();
}
private void Shoot()
{
Vector3 position = transform.position; position.y += 0.8F;
Instantiate(bullet, position, bullet.transform.rotation);
}
При нажатии кнопки которая в Unity Fire1, ошибка NullReferenceExeption.
Не понимаю в чём проблема. Префаб называется Bullet, точно, проверил. Если нужно будет, дам скрипт класса Bullet. Unity2D
Проблема в том, что Resources.Load ищет объекты внутри папки Resources. То есть в вашем коде объект ищется по пути Resources/Assets/PreFab/Bullet.prefab
При этом у юнити довольно специфичная работа с папкой Resources, а именно - в вашем проекте может быть сколько угодно папок с таким названием, и находиться они могут где угодно в других папках. Но при сборке проекта (или запуске в редакторе) юнити собирает все папки с именем Resources и их содержимое в один виртуальный контейнер и работать будет как будто в проекте всего одна папка с таким именем, при этом все ресурсы из этих попапок будут внутри одной виртуальной Resources.
Пример использования Resources.Load можно посмотреть в документации
А во-вторых, как вам правильно заметили в комментарии, вы сначла должны создать объект который вы ищете с помощью Instantiate, а только потом работать с ним
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости