@maxemga

Не могу получить функцию из другого скрипта, почемууу?

У меня есть скрипт где создаются объекты и мне нужно к нему обратиться через Другой скрипт чтоб игрок когда его задевал, с ним происходили какие-то действия (код скину), но когда я пытаюсь обратиться к нему, вылетает следующая ошибка

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();
        }
}
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@Ascar
listObjects = new GameObject[] { new GameObject() };
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы