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);
クラスの外では、オブジェクトが描画され、すべてが機能します。
私のアプローチの何が問題で、どうすれば修正できますか?