public static Entity MakeEntity(IntPtr ptr) { if (ptr == IntPtr.Zero) { return(null); } var type = new Core.Type(Entity_getType(ptr)); switch (type.Name.ToLower()) { case "camera": return(new Camera(ptr)); case "light": return(new Light(ptr)); case "model": return(new Model(ptr)); case "scene": return(new Scene(ptr)); } return(null); }