У меня проблемы с получением одного скрипта для вызова функции создания экземпляра из другого скрипта. На следующем рисунке показано, как мне настроить игровые объекты.

У меня есть 2 объекта, Thing1 и Thing2, которые перемещаются по экрану на основе сценария движения, который прикреплен к каждому из них. Thing1 также приложил скрипт реакции. Когда Thing1 и Thing2 сталкиваются, должна появиться Thing 3. К Thing3 прикреплен скрипт создания экземпляра, который содержит функцию с командой создания экземпляра.
Когда я вызываю функцию инстанцирования в скрипте инстанцирования (я поместил ее в функцию Start Thing3), она работает нормально. Однако, когда я вынимаю его оттуда и пытаюсь вставить в функцию запуска скрипта реакции, прикрепленного к Thing2, я не могу заставить его работать. В настоящее время я не получаю ошибки при компиляции, но как только игра запускается, я получаю следующее (поведение Thing1 и Thing2 также, похоже, отрицательно сказывается):
"NullReferenceException: Object reference not set to an instance of an object"
Когда я ищу причину этой ошибки, я обнаруживаю, что наиболее типичной причиной этого является сборный объект, не присоединяемый к сценарию. Тем не менее, у меня действительно есть сборник, прикрепленный к сценарию. Он присоединен к сценарию создания экземпляра, который содержит функцию создания экземпляра.
Ниже приведен код для сценария создания экземпляра и сценария реакции, который вызывает функцию создания экземпляра в сценарии установки.
//Instantiation
public class Thing3Instantiation : MonoBehaviour
{
public GameObject thing3Obj;
void Start()
{
//CreateThing3();
}
public void CreateThing3()
{
Instantiate(thing3Obj);
}
}
И
//Reaction
public class Reaction : MonoBehaviour
{
private Thing3Instatiation thing3instantiation;
void Awake()
{
thing3instantiation = GetComponent<Thing3Instantiation>();
}
void Start()
{
thing3instantiation.CreateThing3(); //This line triggers the null error
}
Есть идеи, что я делаю не так?