MyGUI FAQ
2013-09-04 16:18
211 查看
原文地址:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=MyGUI+FAQ
问题一:
Q:不能正常运行,为什么?
A:检查MyGUI.log
问题二:
Q:为什么MyGUI找不到材质?
Q:为什么在创建任何widget时,会出现异常"layer '[any_layer_name]' not found"?
A:
1.在resources.cfg文件中,确认MyGUI_Media文件夹;
2.在默认resource group确认有MyGUI_Media文件夹;
从另一个resource group加载MyGUI,这样写:
问题三:
Q:为什么Combobox popup/Tab widget sheets selecting/RenderBox autorotate/Progress bar autotrack/Edit caret blinking/Message不能正常运行?
A:当你没有每帧调用inject时,就会出现这样的情况。
注意:在MyGUI 3.0,这个方法不在了,这个方法会在渲染器内部会自动调用。
问题四:
Q:当改变camera时,为什么GUI会消失?
A:如果新的camera有新的Scene Manager,需要在新的SceneManager上设置GUI。
问题五:
Q:必须要调用什么函数以确保当CheckBox被点击之后处于选中状态?
A:添加eventMouseButtonclick:
或者如果你已经写了,那么添加这2行代码到on click 事件中。
问题六:
Q:我的代码可以编译并且运行。log不报任何错误,但是只能看到一个空白的屏幕(blank screen)。
A:确保在initialize ogre platform 类之前,你已经创建scene manager ,camera,以及viewport。或者之后创建并且调用。(只有这些部分不足以初始化场景,在你创建了Ogre::RenderSystem和Ogre::RenderWindow之后,你只需要设置viewport)
问题七:
Q:代码编译通过并且可以运行,只显示场景,不显示GUI。
A(1):如果你在使用多viewport,需要告诉platform render manager 如下信息:
这个参数是Ogre render window 中viewport的索引,并且等价于之前产生的MyGUI使用的viewport (这句话翻译的有问题)Ogre::RenderWindow::getNumViewports( )的返回值。
如果动态生成viewport,当删除一个viewport时,确保使用递减的索引来标识。
A(2):
确保在Ogre中初始化与之相应的的ResourceManager之后再初始化MyGUI。否则,虽然MyGUI.log提示可以正常找到.xml并且解析正常,但是gui仍然不显示。
A(3):
确保viewport启用overlays,只有当viewport的overlays启用时,MyGUI才会渲染。
问题一:
Q:不能正常运行,为什么?
A:检查MyGUI.log
问题二:
Q:为什么MyGUI找不到材质?
Q:为什么在创建任何widget时,会出现异常"layer '[any_layer_name]' not found"?
A:
1.在resources.cfg文件中,确认MyGUI_Media文件夹;
2.在默认resource group确认有MyGUI_Media文件夹;
从另一个resource group加载MyGUI,这样写:
mPlatform = new MyGUI::OgrePlatform(); mPlatform->initialise(mWindow, mSceneManager, "MyResourceGroupName");
问题三:
Q:为什么Combobox popup/Tab widget sheets selecting/RenderBox autorotate/Progress bar autotrack/Edit caret blinking/Message不能正常运行?
A:当你没有每帧调用inject时,就会出现这样的情况。
mGUI->injectFrameEntered(evt.timeSinceLastFrame);
注意:在MyGUI 3.0,这个方法不在了,这个方法会在渲染器内部会自动调用。
问题四:
Q:当改变camera时,为什么GUI会消失?
A:如果新的camera有新的Scene Manager,需要在新的SceneManager上设置GUI。
(MyGUI::OgrePlatform*)pPlatform->getRenderManagerPtr()->setSceneManager(newSceneManager);
问题五:
Q:必须要调用什么函数以确保当CheckBox被点击之后处于选中状态?
A:添加eventMouseButtonclick:
button->eventMouseButton<x>click = MyGUI::newDelegate(this, &[class_name]::notifyToggleCheck); void [class_name]::notifyToggleCheck(MyGUI::WidgetPtr _sender) { MyGUI::ButtonPtr checkbox = _sender->castType<MyGUI::Button>(); checkbox->setStateSelected(!checkbox->getStateSelected()); }
或者如果你已经写了,那么添加这2行代码到on click 事件中。
问题六:
Q:我的代码可以编译并且运行。log不报任何错误,但是只能看到一个空白的屏幕(blank screen)。
A:确保在initialize ogre platform 类之前,你已经创建scene manager ,camera,以及viewport。或者之后创建并且调用。(只有这些部分不足以初始化场景,在你创建了Ogre::RenderSystem和Ogre::RenderWindow之后,你只需要设置viewport)
(MyGUI::OgrePlatform*)pPlatform->getRenderManagerPtr()->setSceneManager(mSceneManaer); (MyGUI::OgrePlatform*)pPlatform->getRenderManagerPtr()->setRenderWindow(mWindow); (MyGUI::OgrePlatform*)pPlatform->getRenderManagerPtr()->setActiveViewport(index);
问题七:
Q:代码编译通过并且可以运行,只显示场景,不显示GUI。
A(1):如果你在使用多viewport,需要告诉platform render manager 如下信息:
(MyGUI::OgrePlatform*)pPlatform->getRenderManagerPtr()->setActiveViewport(1);
这个参数是Ogre render window 中viewport的索引,并且等价于之前产生的MyGUI使用的viewport (这句话翻译的有问题)Ogre::RenderWindow::getNumViewports( )的返回值。
如果动态生成viewport,当删除一个viewport时,确保使用递减的索引来标识。
A(2):
确保在Ogre中初始化与之相应的的ResourceManager之后再初始化MyGUI。否则,虽然MyGUI.log提示可以正常找到.xml并且解析正常,但是gui仍然不显示。
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); // code code code ... MyGUI::OgrePlatform* mPlatform = new MyGUI::OgrePlatform(); mPlatform->initialise(ogreRenderWindow, ogreSceneManager); mGUI = new MyGUI::Gui(); mGUI->initialise();
A(3):
确保viewport启用overlays,只有当viewport的overlays启用时,MyGUI才会渲染。
viewport->setOverlaysEnabled(true);
相关文章推荐
- MyGUI-3.2.0 for android 编译
- 网游UI解决方案的选择(CEGUI/MYGUI/Hikari/Scaleform/...)
- MyGUI ButtonImage
- ogre + mygui的cmake编译
- 网游UI解决方案的选择(CEGUI/MYGUI/Hikari/Scaleform/...)
- My MFC FAQ
- MyGUI 3.0 支持中文显示及中文输入
- 如何将MyGUi整合到HGE里面
- MyGUI 3.2.0 出炉了
- MyGUI_Orge官网教程_1.Widgets窗口部件
- my FAQ about c++/c/mfc .
- 网游UI解决方案的选择(CEGUI/MYGUI/Hikari/Scaleform/...)
- ogre+mygui配置
- Qt编译时出错为:warning: libts-1.0.so.0, needed by /myroot/qt/qtlib/lib/libQtGui.so, not found (try using
- MyGui 3.2.0(OpenGL平台)的编译
- 网游UI解决方案的选择(CEGUI/MYGUI/Hikari/Scaleform/...)
- How do I make my GUI plot into an axes within the GUI figure rather than inside of a new figure in M
- Why I can’t convert my Windows Server 2012 R2 Core to GUI
- MyGui 3.01编译
- SQL Server my FAQ