c++とangelscriptでクラスを使用するには2パターンある。
angelscript側ではクラスを宣言しない(クラスをglobalpropertyとして使用)
Register*関連の関数を呼ぶ前にクラスの実態が存在してそいつをangelscriptからアクセスできるようにする。
struct MyStruct {
int health;
char name[32];
};
// Struct instance
MyStruct mystruct;
MyStruct mystruct;
iRet = g_pasengine->RegisterObjectType("MyObject", 0, asOBJ_REF | asOBJ_NOHANDLE); assert( iRet >= 0 );
iRet = g_pasengine->RegisterObjectProperty("MyObject", "int health", offsetof(MyStruct, health)); assert( iRet >= 0 );
angelscript側でもクラスの宣言をする(スクリプト側でC++のクラスの宣言可能)
iRet = m_pasengine->RegisterObjectType("CMoveObject", sizeof(CMoveObject), asOBJ_VALUE | asOBJ_POD | asOBJ_APP_CLASS); assert( iRet >= 0 );
※コメント投稿者のブログIDはブログ作成者のみに通知されます