Jump to content

[SOLVED] Проблема с WorldTrigger


photo

Recommended Posts

Posted

Добрый день. 

Подскажите пожалуйста, как получить доступ к WorldTrigger-у, в сцене.

Есть созданная в редакторе сцена. На ней 4 WorldTrigger-а. Внутри них ObjectMesh-и.

Из программы на С++ загружаю сцену:

Console *c=Console::get();
c->run("world_load prototype");
c->flush();

Сцена успешно загружается.

Получаю список Nod-ов:

 Vector<NodePtr> vec;
 World *w=World::get();
 w->getNodes(vec);

Нахожу в списке по имени нужный мне WorldTrigger:

QString tmp;

for(int n=0;n!=vec.size();n++){
   tmp.clear();
   Node *tmpNode=vec[n].get();
   tmp.append(tmpNode->getName());

   if(tmp.left(10)=="ST_Willage"){
       WorldTriggerPtr t=WorldTrigger::create(vec[n]);
       int r=t->getID();
   }
}

Все работает нормально, но WorldTrigger::create(vec[n]) возвращает пустой указатель. Соответственно, попытка получить его ID заканчивается крахом.

 

Приложение, использующее C++ API написано на Qt 5.3 MCVC2010.

OC Windows 7.

Posted

silent,

в примере <SDK>/source/samples/Api/Nodes/WorldTrigger  WorldTrigger создается в коде, командой WorldTrigger::create(const vec3 & size), в то время, как в моем случае WorldTrigger уже описан в файле .world.
В принципе, наверное, если заменить файл data/world_trigger.world на мой(во вложении) и в файле WorldTrigger.cpp в функции main заменить строку 60 на это:

World *w=World::get();
NodePtr n=w->getNode(1763654532);
WorldTriggerPtr tt=WorldTrigger::create(n);
int r=tt->getID();

, то проблема должна воспроизвестись.

 

prototype.world

Posted

Hi Igor,

 

I've successfully reproduced this issue. Thank you for the test scene.

 

I will pass this information to the developers. Hope they will give a feedback soon.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

silent, 

большое спасибо за оперативную реакцию.

×
×
  • Create New...