File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -18,12 +18,28 @@ namespace sh::editor
1818 {
1919 render::Model& model = static_cast <render::Model&>(payload);
2020
21- auto obj = world.AddGameObject (model.GetName ().ToString ());
21+ const auto & nodes = model.GetNodes ();
22+ const auto & skeletons = model.GetSkeletons ();
2223
23- auto rootNode = model.GetRootNode ();
24- std::queue<std::pair<const render::Model::Node*, game::GameObject*>> nodeQ;
25- for (auto & child : rootNode->children )
26- nodeQ.push ({ child.get (), obj });
24+ if (nodes.empty ())
25+ return ;
26+
27+ auto rootObj = world.AddGameObject (model.GetName ().ToString ());
28+
29+ // node index -> 생성된 GameObject 매핑 (bone 연결 시 사용)
30+ std::vector<game::GameObject*> nodeMap (nodes.size (), nullptr );
31+ nodeMap[0 ] = rootObj;
32+
33+ struct SkinnedSetup
34+ {
35+ game::SkinnedMeshRenderer* renderer;
36+ int skeletonIdx;
37+ };
38+ std::vector<SkinnedSetup> skinnedSetups;
39+
40+ std::queue<std::pair<int , game::GameObject*>> nodeQ; // nodeIdx, parentObj
41+ for (int childIdx : nodes[0 ].childrenIdx )
42+ nodeQ.push ({ childIdx, rootObj });
2743
2844 while (!nodeQ.empty ())
2945 {
You can’t perform that action at this time.
0 commit comments