hkpRigidBody¿¡ °ÔÀÓ¿¡ »ç¿ëÇϱâ À§ÇÑ ¼Ó¼ºÀ» Ãß°¡ ÇÒ ¼ö ÀÖ´Ù. Ãß°¡ ÇÒ ¼ö ÀÖ´Â ¼Ó¼ºÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀº int, 64ºñÆ® uint, float, Æ÷ÀÎÅÍÀÌ´Ù.
1. ¼Ó¼º Ãß°¡ Çϱâ
ù ¹ø° ÀÎÀÚ´Â std::mapÀÇ Å°¿Í °°Àº ¿ªÇÒÀ» Çϸç, µÎ ¹ø° ÀÎÀÚ´Â °ªÀÌ´Ù. °ÔÀÓ¿¡¼ ¿ÀºêÁ§Æ® ID¸¦ Ãß°¡ÈÄ Ãæµ¹ ÇßÀ» ¶§ ID¸¦ ¾ò¾î ¿Ã¼ö ÀÖ´Â »ó´çÈ÷ À¯¿ëÇÑ ±â´ÉÀÌ´Ù.
#define UID_WALL_PROPERTY 0x100000
hkpRigidBody* pRigidBody = new hkpRigidBody( rigidBodyInfo );
pRigidBody->addProperty( UID_WALL_PROPERTY, 7 );
|
2. ¼Ó¼º ±¸Çϱâ
CheckContactPoint( ) ÇÔ¼ö¿¡¼ Ãæµ¹½Ã Ãæµ¹ º®¸éÀÇ UI_WALL_PROPERTY°¡ ÀÖ´ÂÁö üũ ÈÄ UID¸¦ ±¸ÇÑ´Ù.
hkpRigidBody* rb = hkpGetRigidBody( collisionEntries[i].m_partner );
if( rb->hasProperty( UID_WALL_PROPERTY ) )
nUid = rb->getProperty( UID_WALL_PROPERTY ).getInt();
|
±¸ÇÒ·Á´Â µ¥ÀÌÅÍ Çü¿¡ µû¶ó ´ÙÀ½°ú °°Àº ÇÔ¼ö¸¦ È£Ãâ ÇÑ´Ù. ±¸ÇÒ·Á´Â °ªÀÌ intÀ̸é getInt( ) ±¸ÇÒ·Á´Â °ªÀÌ floatÀ̸é getReal( ) ±¸ÇÒ·Á´Â °ªÀÌ 64ºñÆ® uintÀ̸é getUint64( ) ±¸ÇÒ·Á´Â °ªÀÌ Æ÷ÀÎÅÍÀ̸é getPtr( )
hkpCharacterRigidBodyÀÇ hkpRigidBody¿¡µµ ¶È°°ÀÌ Àû¿ë ÇÒ ¼ö ÀÖ´Ù.
ÇÁ·ÎÁ§Æ®: havok_property.zip
|