【问题标题】:Error testing OGRE's tutorial code. incomplete type 'Ogre::MeshManager'测试 OGRE 的教程代码时出错。不完整的类型'Ogre::MeshManager'
【发布时间】:2014-08-08 11:30:44
【问题描述】:

我正在尝试通过 OGRE 的 tutorial #2。 我成功通过了第一部分。

我的问题是,当我尝试编译时,此方法出现错误:

void TutorialApplication::createScene(void){

      mSceneMgr->setAmbientLight(Ogre::ColourValue(1.0, 1.0, 1.0));
      mSceneMgr->setShadowTechnique(Ogre::SHADOWTYPE_STENCIL_ADDITIVE);

      Ogre::Entity* entNinja = mSceneMgr->createEntity("Ninja", "ninja.mesh");
      entNinja->setCastShadows(true);
      Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("HeadNode");
      headNode->attachObject(entNinja);

      Ogre::Plane plane(Ogre::Vector3::UNIT_Y, 0);

      Ogre::MeshManager::getSingleton().createPlane("ground", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
        plane, 1500, 1500, 20, 20, true, 1, 5, 5, Ogre::Vector3::UNIT_Z);
      Ogre::Entity* entGround = mSceneMgr->createEntity("GroundEntity", "ground");
      mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(entGround);
      entGround->setCastShadows(false);
      entGround->setMaterialName("Examples/Rockwall");
}

我得到的错误是:

错误:嵌套名称中使用了不完整的类型“Ogre::MeshManager” 说明符 Ogre::MeshManager::getSingleton().createPlane("ground", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,

这很奇怪,因为显然有人对本教程有疑问。我使用的是在我的机器上编译的 Ogre 1.9 (Ubuntu 14.04 x64)。

【问题讨论】:

    标签: gcc ogre


    【解决方案1】:

    如果您将以下包含添加到您的代码中,它应该可以工作。您的问题的原因可能是相应的教程尚未更新以匹配 Ogre 1.9。

    #include <OgreMeshManager.h>
    

    【讨论】:

    • 是的,这就是问题所在。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多