<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/LevelOfDetailComponent/SelectionStrategy",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation22LevelOfDetailComponentV17SelectionStrategyV"
  },
  "title" : "LevelOfDetailComponent.SelectionStrategy"
}
-->

# LevelOfDetailComponent.SelectionStrategy

The strategy used to select which detail level to display.

```
struct SelectionStrategy
```

## Topics

### Creating a strategy

[`static func screenArea([Float]) -> LevelOfDetailComponent.SelectionStrategy`](/documentation/RealityKit/LevelOfDetailComponent/SelectionStrategy/screenArea(_:))

Switch levels based on projected screen area (0.0 = invisible, 1.0 = fills screen).

[`static func cameraDistance([Float]) -> LevelOfDetailComponent.SelectionStrategy`](/documentation/RealityKit/LevelOfDetailComponent/SelectionStrategy/cameraDistance(_:))

Switch levels based on distance from the camera.

### Selecting by resolution metric

[`static func resolutionMetric(switchingResolutions: [LevelOfDetailComponent.SelectionStrategy.ResolutionMetric.DirectionalSwitchingResolutions], boundingBox: BoundingBox) -> LevelOfDetailComponent.SelectionStrategy`](/documentation/RealityKit/LevelOfDetailComponent/SelectionStrategy/resolutionMetric(switchingResolutions:boundingBox:))

Creates a resolution metric for a level of detail component to switch with.

[`struct ResolutionMetric`](/documentation/RealityKit/LevelOfDetailComponent/SelectionStrategy/ResolutionMetric)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)