public override void _PhysicsProcess(float delta) { if (!exploded) { Vector3 velocity = Vector3.Forward * speed; var collision = MoveAndCollide(velocity * delta, testOnly: true); if (collision != null) { Explode(); if (collision.Collider is CollisionObject && !(collision.Collider is BulletPhysics) ) { ((CollisionObject)(collision.Collider)).QueueFree(); } if (collision.Collider is Enemy) { var scoreCount = GetTree().Root.GetNode <ScoreCount>("World/Camera/ScoreCount"); scoreCount.IncrementScore(); } } bulletParent.Translate(velocity * delta); } }