@saylar
Разработчик Unity C#

Instantiate почему изменяется прифаб?

Проблема в том, что по какой то причине, Instantiate создает прифаб (мой прифаб, это собранная карта, с большим количеством объектов), но он создается измененным, я не понимаю почему.
Ниже скриншот 5aa5affcbc7c7845362935.jpeg Где видно, что есть монетки, для примера, я собрал их. После того как я прошел через коллайдер, по коду поймете через какой, начинается реализация метода, где есть Instantiate, но по какой то причине, он создает объект карты, измененные, т.е. те монеты которые я собрал, он собственно без них и создает сл. прифаб. 5aa5b0da2c1b1223707751.jpeg

Вот Сам Код
public class SpaunZone : MonoBehaviour
{
    public bool spaun = false;
    public GameObject[] pref;
    public int indexNumber;
    public GameObject spaunPoint;
    // Use this for initialization
    void Start ()
    {
        spaun = false;
	}

    private void Update()
    {
        Spaun();
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.transform.tag == "Player")
        {
            spaun = true;
        }

    }

    private void Spaun()
    {
        if (spaun)
        {
            spaunPoint = GameObject.Find("SpaunZonePref");
            Instantiate(pref[indexNumber], spaunPoint.transform.position, Quaternion.identity);
            spaun = false;
            Destroy(pref[indexNumber], 2);
        }
        else
        {
            spaunPoint = null;
        }
    }
}
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
MrMureno
@MrMureno
VR for all
А покажите пожалуйста в инспекторе на что у вас ссылки в public GameObject[] pref;

возможно у вас ссылка не на префаб из ПРОЕКТА, а ссылка на ПРЕФАБ В СЦЕНЕ. тогда у вас будет браться не из, так сказать ресурсов, а будет создаваться копия того объекта ,который в сцене существует и меняется..

UPD
Вынесу сюда, чтоб людям не все коментарии читать.

В общем то суть в том - что префаб содержал ссылку на СЕБЯ. и после инстанциации - начинал ссылаться на себя в СЦЕНЕ.
надо разделить хранилище ссылок на префабы, и сами префабы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
YOPS LTD Санкт-Петербург
от 30 000 до 48 000 руб.
ЛАНИТ Москва
от 80 000 до 100 000 руб.
Кнопка Екатеринбург
До 100 000 руб.