Merge pull request #87976 from AThousandShips/black_hole
Fix crash with `PhysicsBody2D/3D::get_gravity` with invalid state
This commit is contained in:
commit
f427d2f0d3
|
@ -147,7 +147,9 @@ bool PhysicsBody2D::test_move(const Transform2D &p_from, const Vector2 &p_motion
|
|||
}
|
||||
|
||||
Vector2 PhysicsBody2D::get_gravity() const {
|
||||
return PhysicsServer2D::get_singleton()->body_get_direct_state(get_rid())->get_total_gravity();
|
||||
PhysicsDirectBodyState2D *state = PhysicsServer2D::get_singleton()->body_get_direct_state(get_rid());
|
||||
ERR_FAIL_NULL_V(state, Vector2());
|
||||
return state->get_total_gravity();
|
||||
}
|
||||
|
||||
TypedArray<PhysicsBody2D> PhysicsBody2D::get_collision_exceptions() {
|
||||
|
|
|
@ -189,7 +189,9 @@ bool PhysicsBody3D::test_move(const Transform3D &p_from, const Vector3 &p_motion
|
|||
}
|
||||
|
||||
Vector3 PhysicsBody3D::get_gravity() const {
|
||||
return PhysicsServer3D::get_singleton()->body_get_direct_state(get_rid())->get_total_gravity();
|
||||
PhysicsDirectBodyState3D *state = PhysicsServer3D::get_singleton()->body_get_direct_state(get_rid());
|
||||
ERR_FAIL_NULL_V(state, Vector3());
|
||||
return state->get_total_gravity();
|
||||
}
|
||||
|
||||
void PhysicsBody3D::set_axis_lock(PhysicsServer3D::BodyAxis p_axis, bool p_lock) {
|
||||
|
|
Loading…
Reference in New Issue