Fix error when spawning prefab with rigidbody

This commit is contained in:
Wojtek Figat
2021-02-14 16:50:35 +01:00
parent 6bdc31df5a
commit 3bbda838a2
3 changed files with 6 additions and 2 deletions

View File

@@ -43,6 +43,8 @@ Actor::Actor(const SpawnParams& params)
, _staticFlags(StaticFlags::FullyStatic)
, _localTransform(Transform::Identity)
, _transform(Transform::Identity)
, _sphere(BoundingSphere::Empty)
, _box(BoundingBox::Empty)
, HideFlags(HideFlags::None)
{
}

View File

@@ -973,7 +973,7 @@ bool Level::loadScene(rapidjson_flax::Value& data, int32 engineBuild, bool autoI
if (obj && obj->GetParent() == nullptr)
{
sceneObjects->At(i) = nullptr;
LOG(Warning, "Scene object {0} {1} has missing parent object after scene load. Removing it.", obj->GetID(), obj->ToString());
LOG(Warning, "Scene object {0} {1} has missing parent object after load. Removing it.", obj->GetID(), obj->ToString());
obj->DeleteObject();
}
}

View File

@@ -181,6 +181,8 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, Actor* parent, Dictionary<Guid
// Prepare parent linkage for prefab root actor
root->_parent = parent;
if (parent)
parent->Children.Add(root);
// Link actors hierarchy
for (int32 i = 0; i < sceneObjects->Count(); i++)
@@ -226,7 +228,7 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, Actor* parent, Dictionary<Guid
if (obj && obj->GetParent() == nullptr)
{
sceneObjects->At(i) = nullptr;
LOG(Warning, "Scene object {0} {1} has missing parent objct after prefab spawn. Removing it.", obj->GetID(), obj->ToString());
LOG(Warning, "Scene object {0} {1} has missing parent object after load. Removing it.", obj->GetID(), obj->ToString());
obj->DeleteObject();
}
}