特に実装に問題はございませんが、入力されたレベルシーケンスの階層構造を捜査するVisitSequence関数があり、ObjectBindingに対してコールバックを呼び出すことができます。
サンプルコードは以下の通りです。
`struct FSequenceListBoundObjectVisitor : UE::MovieScene::ISequenceVisitor
{
IMovieScenePlayer* Player;
public:
FSequenceListBoundObjectVisitor(IMovieScenePlayer* InPlayer) :Player(InPlayer) {}
virtual void VisitObjectBinding(const FMovieSceneBinding& Binding, const UE::MovieScene::FSubSequenceSpace& LocalSpace)
{
FGuid Guid = Binding.GetObjectGuid();
TArrayView<TWeakObjectPtr<>> BoundObjects = Player->FindBoundObjects(Guid, LocalSpace.SequenceID);
//DoSomething
}
};
UE::MovieScene::FSequenceVisitParams Params;
Params.bVisitSubSequences = true;
Params.bVisitObjectBindings = true;
FSequenceListBoundObjectVisitor ListBoundObjectVisitor(InPlayer);
VisitSequence(InSequence, Params, ListBoundObjectVisitor);`