Функция Instantiate
возвращает объект, который она создает. Вы можете получить этот объект и получить доступ к его положению и повороту.
Глобальная переменная для хранения последнего экземпляра объекта:
public GameObject obj;
Создание и возврат ссылки на экземпляр объекта:
obj = Instantiate(building, building.transform.GetChild(1).position
+ new Vector3(building.transform.position.x, 0, 0) + new Vector3(space, 0, 0), Quaternion.identity);
Доступ к позиции и повороту экземпляра объекта:
Vector3 pos = obj.transform.position;
Quaternion rot = obj.transform.rotation;
Если вам нужно использовать позицию последнего экземпляра объекта, просто проверьте, если это null
. Если null
, используйте префаб исходную позицию префаба, так как пока нет инстанцированного префаба. Если нет null
, используйте последнюю позицию объекта.
if (obj == null)
{
//Use the original prefab position
obj = Instantiate(building, building.transform.GetChild(1).position
+ new Vector3(building.transform.position.x, 0, 0) + new Vector3(space, 0, 0), Quaternion.identity);
}
else
{
//Use last instantiated object position
obj = Instantiate(building, obj.transform.GetChild(1).position +
new Vector3(obj.transform.position.x, 0, 0) + new Vector3(space, 0, 0), Quaternion.identity);
}