在我尝试使用 Ogre 创建我的第一个 3D 游戏时,我开始编写一个通用的“对象”类。构造函数:
Object( const char* mesh, Ogre::SceneManager*& sm )
{
...
_sn = sm->getRootSceneNode()->createChildSceneNode( _sn_name );
_ent = sm->createEntity( _ent_name, mesh );
_sn->attachObject(_ent);
...
}
_sn 是 SceneNode* 并且 _ent 是 Entity*(都是私有的)。问题是没有任何东西被吸引到屏幕上!但如果我使用:
Ogre::Entity *map = mSceneMgr->createEntity("map","map.mesh");
Ogre::SceneNode *sc = mSceneMgr->getRootSceneNode()->createChildSceneNode("mapNode");
sc->attachObject(map);
在类之外,对象被绘制并且一切正常。
我的方法有什么问题,我该如何解决?