20 Мая 2024, 07:23:57
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Программирование > LUA Динамическая подгрузка 1000 разных объектов
LUA Динамическая подгрузка 1000 разных объектов
(Прочитано 15982 раз)
  1 [2]
Печать
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #15 09 Ноября 2010, 21:58:43 »
Re: LUA Динамическая подгрузка 1000 разных объектов |
15
Цитировать
Могу посоветовать грузить каждый цгр в один и тот же ченелгрупп по 0 индексу, и потом просто копировать обжект дату в отдельное поле своего объекта. А после этого грузить следующий, и т.д

Не совсем понял как это реализовать
ну вот у тебя есть линка на паблик ченел с определённым именем из определённой ченелгруппы
ты подгружаешь цгр, в которой объявлен такой паблик ченел с таким именем и при подгрузке называешь ченнелгруппу именно так чтоб заработала твоя линка (и отот второй параметр ставишь 0, я ниразу не видел чтоб кто то когда то использовал там какое то другое значение)
используя ченнел Command New Interface -> Misc -> Add object data копируешь обжект дату из твоей линки в нужное тебе место(поле класса который будет создаваться динамически)
удаляешь ченелгруппу
повторяешь со следующей цгр

(я не уверен что это всё в итоге заработает, но это то что я хотел предложить в качестве усовершенствования твоего метода)

Цитировать
обычно достаточно возможности вызвать 3дОбжект из подгруженной цгр чтоб он сам себя полностью нарисовал и всё.

если я так сделаю то как я буду менять свойства у объекта если нет к ним доступа, размер, позиция, текстура.

вот это другой метод, которым пользуются обычно
если тебе например надо управлять позицией объекта из цгр, ты в какой то своей статической ченелгруппе объявляешь паблик ченел типа матрица, называешь его например CgrObjectMotion. В той цгр, которую ты будешь динамически подгружать, подключаешь этот паблик ченел к моушену 3дОбжекта. Когда рендериш каждую из подгруженных и подготовленных таким образом цгр перед вызовом 3дОбжекта меняешь значение CgrObjectMotion на то которое должно быть у этого 3дОбжекта

ты говоришь создавать каналы куда грузить изначально, а если я не знаю сколько объектов заранее?

я не очень понял что ты тут спрашивал, но если ты о том что для каждого объекта нужно создавать отдельную ченелгруппу, то это не проблема, им надо просто давать разные имена, по имени цгр файла например
fanil | * | Новичок | Сообщений: 15 | «Ответ #16 11 Ноября 2010, 14:12:08 »
Re: LUA Динамическая подгрузка 1000 разных объектов |
16
А можно как то на реальном примере показать как динамически создавать каналы? Теорию я понял с практикой туговато.
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #17 11 Ноября 2010, 17:10:50 »
Re: LUA Динамическая подгрузка 1000 разных объектов |
17
какие каналы? чёто я тебя опять не очень понимаю
fanil | * | Новичок | Сообщений: 15 | «Ответ #18 11 Ноября 2010, 17:20:58 »
Re: LUA Динамическая подгрузка 1000 разных объектов |
18
объекты=каналы. в моем понимании) ChannelCaller/ при мпорте в цене появляется объект не сохраненный типа. вот я про это и говорю
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #19 12 Ноября 2010, 12:34:52 »
Re: LUA Динамическая подгрузка 1000 разных объектов |
19
Описываешь ОО класс, у которого есть поле 3DObjectData (наверняка и какие то другие поля на твоё усмотрение), создаёшь какой то OO Class Instances List, в котором будешь хранить экземпляры этого класа, юзаешь OO InterfaceCommand -> Add new class to container, получаешь при этом Result Index, с помощью этого индекса и ченела OO Instance Ref Item From Container можешь обращаться к только что созданному экземпляру класса(и его полям  Подмигивающий )

думаю это то о чём ты спрашивал?
« Последнее редактирование: 12 Ноября 2010, 12:37:21 от DimiS »
 
  1 [2]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Программирование > LUA Динамическая подгрузка 1000 разных объектов
Перейти в: