private MapObject GetMapObjectByCursor() { if (!EngineApp.Instance.MouseRelativeMode) { Ray ray = RendererWorld.Instance.DefaultCamera.GetCameraToViewportRay( EngineApp.Instance.MousePosition); MapObject result = null; Map.Instance.GetObjects(ray, delegate(MapObject obj, float scale) { //check by sphere Sphere sphere = new Sphere(obj.Position, .5f); if (sphere.RayIntersection(ray)) { //find entities with Dynamic class only Dynamic dynamic = obj as Dynamic; if (dynamic != null) { result = obj; //stop GetObjects return false; } } //find next object return true; }); return result; } return null; }