2016-10-08 5 views
0

Я действительно новичок в единстве. Это мой первый проект. Моя проблема в том, что когда я создаю новый игровой объектИзменить текущий объект, а не prefab

public GameObject fancyName;

, а затем перетащить сборного я хочу над окном скрипта, если я делать какие-либо изменения на fancyName, вместо того, чтобы изменения, что я вижу на экране я изменить мои сборный ... Что я должен сделать, чтобы изменить Instantiate GameObject, а не сборку?

+1

Instantiate и получить ссылку на эту конкретизированной GameObject, что-то вроде 'GameObject идут = (GameObject) Instantiate (fancyName , pos, rot) '. –

+0

Спасибо, это решило мою задачу! –

ответ

2

Это ожидаемое поведение, потому что fancyName содержит ссылку на ваш сборник, поэтому любые изменения, внесенные вами в «fancyName», являются прямой модификацией вашего сборника (помните, что вы перетащили &, сбросили ли вы свой сборник до этой переменной?).

Вы должны создать экземпляр/клонировать:

var clone = (GameObject) Instantiate(fancyName); 

, а затем

MakeChange(clone); // Do anything you want

+0

Большое спасибо! Я не понимал, что я работал над этим напрямую ... –

Смежные вопросы