Member 11391151 Ответов: 1

Вызов функции из другого скрипта работает, но экземпляры gameobjects не загружаются почему?


Я хочу вызвать функцию из другого скрипта, но определенные игровые объекты не загружаются.И дает ошибку
NullReferenceException: ссылка на объект не установлена на экземпляр объекта

Мой код..я вызываю функцию executemyoperation ()..Он делает вызовы, но не загружает объекты, Почему?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace UnityEngine.ProBuilder.Experimental.CSG
{
    public class Subtractoperation : MonoBehaviour
    {

        public GameObject rodtomake;
        public GameObject tool;
        private Mesh result;
        GameObject composite;
        public void executemyoperation()
        {

            Debug.Log("do subtraction");
            result = CSG.Subtract(rodtomake, tool);

            composite = new GameObject();
            composite.AddComponent<MeshFilter>().sharedMesh = result;
            composite.AddComponent<MeshRenderer>().enabled = result;
            Destroy(rodtomake);
            Destroy(tool);
        }
    }

}


Что я уже пробовал:

Я вызываю эту функцию следующим образом
Subtractoperation d = new Subtractoperation();
d.executemyoperation();

1 Ответов

Рейтинг:
9

Sandeep Mewara

Ссылка на объект не установлена на экземпляр объекта
 
Эта ошибка возникает при попытке использовать свойство или вызвать метод объекта, который имеет значение null. Новые подробности: здесь[^]
 
Простое использование отладчика Visual studio может подсказать вам объект, из - за которого это происходит. Просто посмотрите на трассировку стека и поместите отладчик на эту линию. Проверьте объекты этой строки и посмотрите, является ли какой-либо из них нулевым, и вы пытаетесь использовать это свойство объектов. Справляйся с тем же.

Несколько вещей, которые вы не должны пропустить, оценивая во время отладки:
1. Значение rodtomake
2. Значение tool
3. Значение result


Member 11391151

Когда я прикрепляю эту функцию к кнопке она работает нормально но когда я вызываю ее скриптом то возникает ошибка

Sandeep Mewara

Тем не менее, отладьте и посмотрите, какой объект является нулевым, который вызывает его. Попробуй.

Member 11391151

Ладно, я понял...Спасибо! это было слишком просто...Я просто назначил gameobjects через скрипт, и это сработало.

Sandeep Mewara

Супер! Приятно знать, что она разрешилась.