RigidBody2D::~RigidBody2D() { if (physicsWorld_) { ReleaseBody(); physicsWorld_->RemoveRigidBody(this); } }
void RigidBody2D::OnSceneSet(Scene* scene) { if (scene) { physicsWorld_ = scene->GetOrCreateComponent<PhysicsWorld2D>(); CreateBody(); physicsWorld_->AddRigidBody(this); } else { if (physicsWorld_) { ReleaseBody(); physicsWorld_->RemoveRigidBody(this); physicsWorld_.Reset(); } } }
void RigidBody::OnSceneSet(Scene* scene) { if (scene) { if (scene == node_) URHO3D_LOGWARNING(GetTypeName() + " should not be created to the root scene node"); physicsWorld_ = scene->GetOrCreateComponent<PhysicsWorld>(); physicsWorld_->AddRigidBody(this); AddBodyToWorld(); } else { ReleaseBody(); if (physicsWorld_) physicsWorld_->RemoveRigidBody(this); } }
CzBox2dBody::~CzBox2dBody() { ReleaseBody(); }