В файле Logic.h, скажем, у меня есть закрытая переменная-член, которая указывает на поведение
#include "Behaviour.h"#include "GameComponent.h"
class Logic : public GameComponent
{
public:
void Initialise();
void Update();
private:
Behaviour * behaviour;
std::string scriptName;
}
В файле PlayerCharacter.h у меня есть это
#include "Behaviour.h"
class PlayableCharacter : public Behaviour
{
//some stuff
}
У меня вопрос, как я могу «создать» этот класс PlayableCharacter и присоединить его к компоненту Logic, который будет работать с какой-либо формой десериализации?
До сих пор я делал макрокоманду нового размещения, которое добавлялось бы к некоторой карте где-нибудь в моем файле решения:
#RegisterScript(name) SomeGlobalPtr->AddBehaviour(new Behaviour(name));
Но я не думаю, что это когда-либо создаст класс PlayableCharacter, и я не уверен, что я в правильном направлении.
Задача ещё не решена.
Других решений пока нет …