У меня есть скрипт где создаются объекты и мне нужно к нему обратиться через Другой скрипт чтоб игрок когда его задевал, с ним происходили какие-то действия (код скину), но когда я пытаюсь обратиться к нему, вылетает следующая ошибка
NullReferenceException: Object reference not set to an instance of an object
RandomSpawn.SpawnRandom () (at Assets/Scripts/RandomSpawn.cs:19)
PlayerController.OnTriggerEnter2D (UnityEngine.Collider2D collision) (at Assets/Scripts/PlayerController.cs:83)
https://jsfiddle.net/35a1dywL/ (вот скрипты по ссылке)
Я погуглил и дело было в том, что я основном классе не инициализировал объект, я это сделал:
RandomSpawn Spawn = new RandomSpawn();
Но эта ошибка все равно вылетатет...
Есть предположения, что нужно инициализовать еще и объекты в этой функции, тоесть Coin и Массив listObjects
Но как это сделать?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RandomSpawn : MonoBehaviour
{
public GameObject[] listObjects;
public GameObject Coin;
int random;
void Start()
{
random = Random.Range(0, listObjects.Length);
SpawnRandom();
}
public void SpawnRandom()
{
Instantiate(Coin, listObjects[random].transform.position, Quaternion.identity);
}
}
Сюды нужно вставить
SpawnRandom
RandomSpawn Spawn = new RandomSpawn();
private void OnTriggerEnter2D (Collider2D collision)
{
if (collision.tag.Equals("Coin"))
{
HealthBar.fill += 0.2f;
Destroy(collision.gameObject);
Spawn.SpawnRandom();
}
}