private async Task Reset() { rigidbodyElement.IsKinematic = true; //sto motion and set kinematic (listen to our transform changes) rigidbodyElement.IsTrigger = true; //set as ghost (bullets will go thru) Entity.Transform.Position.Y = enemyInitPositionY; var random = enemyRandomLocal; // Appearance position Entity.Transform.Position.X = (((float)(random.NextDouble())) * gameWidthX) - gameWidthHalfX; // Waiting time enemyLife = enemyLifeBase + (enemyLifeBase * (float)random.NextDouble()); Entity.Transform.UpdateWorldMatrix(); rigidbodyElement.UpdatePhysicsTransformation(); if (playingAnimation == null || playingAnimation.Name != "Wait") { playingAnimation = animationComponent.Play("Wait"); } await Script.NextFrame(); rigidbodyElement.IsKinematic = false; rigidbodyElement.IsTrigger = false; rigidbodyElement.Activate(); }