Всем привет. Пишу простую 2д игру на юнити. Суть в том, что шарик прыгает, а платформа под ним движется. Нужно в процессе игры генерировать новые платформы. Тут возникла проблемка с использованием метода Instantiate. Ссылки на префаб платформы хранятся в массиве platforms. Их я присвоил через редактор Unity. После удаления старого объекта вылезает исключение, но почему? Ссылка ведь на префаб, а не на конкретный объект на сцене.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Generate : MonoBehaviour {
GameObject emptyObject;
public GameObject[] platforms = new GameObject[3];
void Start(){
Data.pointOfGenerate.Set(9.1f, -4.5f, 0.0f);
emptyObject = GameObject.Find("EmptyObject");
}
void OnTriggerExit2D(Collider2D checkObj)
{
if (checkObj.gameObject.tag == "Platform")
{
GenerateNewPlatform();
}
}
void GenerateNewPlatform() {
Data.nextPlatform = platforms[Random.Range(0,3)];
Instantiate(Data.nextPlatform, Data.pointOfGenerate, Quaternion.identity);
}
}
Ошибка
Проблема решена. В редакторе Unity я прикрепил к скрипту Generate объект со сцены, думая что это префаб (у них были одинаковые имена). Поэтому при удалении платформы со сцены функция Instantiate ссылалась на несуществующий объект.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Интересует, есть ли возможность получить доступ к кнопке, которая отвечает за конкретную вкладку в компоненте TabControl:
У меня есть класс Student, который содержит информацию о студентах, а так же клас Group, который содержит описания факультетаОдин студент может...
Как можно сгенерировать число Biginteger заданного размера?