Задать вопрос
Zefirot
@Zefirot

Как правильно инстантить префабы с другими префабами?

Решил провести простой тест на то сколько в моём случае на сцене может быть префабов с нормальным фпс, создал следующий префаб "дом" из таких составляющих (3D сцена)
-PrefabBrick - фигура куб (растянутый под кирпич) с материалом
-PrefabWallBrick - состоит из 55 PrefabBrick
-PrefabFloor - состоит из 48 PrefabWallBrick + 2 куба пол крыша
===PrefabBuild= - состоит из 5ти PrefabFloor
Данный префаб (почему-то) весит 4 Мб, я думал что в нём только сохранены позиции остальных префабов, а получается вот так.
Ну и наконец я через массив решил его заинстантить
public GameObject GameObjectBuild;
    public Build build;
    public Dictionary<string, Build> DictionaryBuild = new Dictionary<string, Build>();
    private void SpawnBuilds(){
        int buildID = 1; int x = 0; int z = 0; int step = 5;
        for(int i = 0; i < 50; ++i){
            DictionaryBuild[buildID.ToString()] = Instantiate(build) as Build;
            DictionaryBuild[buildID.ToString()].transform.SetParent(GameObjectBuild.transform);
            DictionaryBuild[buildID.ToString()].transform.position = new Vector3(x - 30, 0f, z + 30);
            ++buildID;
            x += step;
            if(x > 50){ x = 0; z -= step; }
            }
        }

результат запуска таков - 1шт так себе, 10шт долговато, 50шт более минуты, 150шт более 30 мин пыталось запустится но так и не запустилось (надоело ждать), при этом 16 гиг оперативы на полную...

В итоге вопрос - как правильно инстантить сборные префабы?
Я думал что в сборном префабе сохраняется информация только о позициях других префабов, таким образом он должен был весить несколько Кб, но получается вот так.
Плюс ко всему я думал что так как один префаб уже загружен то его расклонировать можно легко, но чем их больше нужно тем дольше грузится.

Подскажите как правильно и в чём моя ошибка?

UPD. да забыл, при тесте всё внутри префаба выключил, со включенными всеми мешами 1 префаб такой садил на прочь фпс...
  • Вопрос задан
  • 41 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Кроме Instantiate у тебя ничего другого нет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы