Форум

Работа с несколькими обьектами

01 октября 2015 21:54 #4185
Наверно уже где-то описывалось, но искал и не смог найти.
Собственно загружаю сцену и добавляю туда обьекты с которыми потом собираюсь работать через API
Делаю так
m_data.load('scene.json');
m_data.load('objects1file.json');
m_data.load('objects2file.json');


Хочу получить объекты из 1го файла с объектами
var object= m_scenes.get_object_by_name("objects1FileObject1");


Вместо objects1FileObject1 пробывал имя объекта из бленда и из файла JSON, пишет - "B4W ERROR: get object objects1FileObject1: not found"

Если подключать только объекты из первого файла
m_data.load('objects1file.json');


То объекты возвращаются функцией. Скажите как получить объекты в моем случае?
02 октября 2015 07:36 #4190
В случае динамически загружаемых сцен используйте метод с указанием второго аргумента - идентификатора сцены.

var object= m_scenes.get_object_by_name("objects1FileObject1", 1);
Руководитель проекта
02 октября 2015 09:32 #4191
Функция
m_data.load('objects1file.json');

возвращает идентификатор загруженной сцены. Это цифра, первой загруженной сцене соответствует 0, второй 1, и так далее.

Если вы передадите в функцию data.load вторым параметром функцию-callback, которая вызывается по завершению загрузки указанной сцены, то в этот callback также передается параметром идентификатор загруженной сцены или data_id, как его еще называют.

Идентификатор загруженной сцены (data_id) введен для того, чтобы не возникало путанницы при использовании функции m_scenes.get_object_by_name, к примеру. Если вы загрузите два раза одинаковую сцену, то у вас на сцене будет по два экземляра каждого объекта с одинаковым именем. Чтобы не было путанницы был введен data_id, по которому вы можете указать с какой именно сцены вы хотите взять объект. data_id передается вторым параметром в функцию
m_scenes.get_object_by_name("objects1FileObject1", 1);

По умолчанию (если ничего не передавать кроме имени объекта) этот параметр равен 0, что соответствует первой загруженной методом m_data.load сцене
Разработчик Blend4Web
02 октября 2015 11:05 #4193
Ясно, спасибо большое
10 декабря 2016 15:31 #14539
Кстати, после присоединения файла с одним меш-объектом (камеры, лампы нет в импортируемом файле).
В объектах сцены появляется 2 объекта
- сам объект
- объект с именем name "%meta_world%World"
Это баг или фича?
С одной стороны ресурсов он не занимает, а с другой стороны "замусоривается" список объектов.
Пробовал его удалять, после подгрузки из файла, но не могу его выбрать через
m_scenes.get_object_by_name("%meta_world%World",data_id);

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