<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ShaderGraph-Docs",
  "identifier" : "/documentation/ShaderGraph/Logic/Switch",
  "metadataVersion" : "0.1.0",
  "role" : "ShaderGraph Node",
  "symbol" : {
    "kind" : "ShaderGraph Node",
    "modules" : [
      "ShaderGraph"
    ],
    "preciseIdentifier" : "Shader_ND_switch_float"
  },
  "title" : "Switch"
}
-->

# Switch

Outputs the value from one of ten input streams, according to a selector .

## Parameter Types

**Switch (float):**

|Input  |Type |
                |-------|-----|
                |`In 1` |Float|
                |`In 2` |Float|
                |`In 3` |Float|
                |`In 4` |Float|
                |`In 5` |Float|
                |`In 6` |Float|
                |`In 7` |Float|
                |`In 8` |Float|
                |`In 9` |Float|
                |`In 10`|Float|
                |`Which`|Float|

|Output|Type |
                |------|-----|
                |`Out` |Float|

**Switch (vector3h):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector3h|
                |`In 2` |Vector3h|
                |`In 3` |Vector3h|
                |`In 4` |Vector3h|
                |`In 5` |Vector3h|
                |`In 6` |Vector3h|
                |`In 7` |Vector3h|
                |`In 8` |Vector3h|
                |`In 9` |Vector3h|
                |`In 10`|Vector3h|
                |`Which`|Half    |

|Output|Type    |
                |------|--------|
                |`Out` |Vector3h|

**Switch (vector3f):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector3f|
                |`In 2` |Vector3f|
                |`In 3` |Vector3f|
                |`In 4` |Vector3f|
                |`In 5` |Vector3f|
                |`In 6` |Vector3f|
                |`In 7` |Vector3f|
                |`In 8` |Vector3f|
                |`In 9` |Vector3f|
                |`In 10`|Vector3f|
                |`Which`|Float   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector3f|

**Switch (half integer):**

|Input  |Type |
                |-------|-----|
                |`In 1` |Half |
                |`In 2` |Half |
                |`In 3` |Half |
                |`In 4` |Half |
                |`In 5` |Half |
                |`In 6` |Half |
                |`In 7` |Half |
                |`In 8` |Half |
                |`In 9` |Half |
                |`In 10`|Half |
                |`Which`|Int32|

|Output|Type|
                |------|----|
                |`Out` |Half|

**Switch (vector4h):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector4h|
                |`In 2` |Vector4h|
                |`In 3` |Vector4h|
                |`In 4` |Vector4h|
                |`In 5` |Vector4h|
                |`In 6` |Vector4h|
                |`In 7` |Vector4h|
                |`In 8` |Vector4h|
                |`In 9` |Vector4h|
                |`In 10`|Vector4h|
                |`Which`|Half    |

|Output|Type    |
                |------|--------|
                |`Out` |Vector4h|

**Switch (vector2f integer):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector2f|
                |`In 2` |Vector2f|
                |`In 3` |Vector2f|
                |`In 4` |Vector2f|
                |`In 5` |Vector2f|
                |`In 6` |Vector2f|
                |`In 7` |Vector2f|
                |`In 8` |Vector2f|
                |`In 9` |Vector2f|
                |`In 10`|Vector2f|
                |`Which`|Int32   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector2f|

**Switch (color4f):**

|Input  |Type         |
                |-------|-------------|
                |`In 1` |Color4<Float>|
                |`In 2` |Color4<Float>|
                |`In 3` |Color4<Float>|
                |`In 4` |Color4<Float>|
                |`In 5` |Color4<Float>|
                |`In 6` |Color4<Float>|
                |`In 7` |Color4<Float>|
                |`In 8` |Color4<Float>|
                |`In 9` |Color4<Float>|
                |`In 10`|Color4<Float>|
                |`Which`|Float        |

|Output|Type         |
                |------|-------------|
                |`Out` |Color4<Float>|

**Switch (color3f):**

|Input  |Type         |
                |-------|-------------|
                |`In 1` |Color3<Float>|
                |`In 2` |Color3<Float>|
                |`In 3` |Color3<Float>|
                |`In 4` |Color3<Float>|
                |`In 5` |Color3<Float>|
                |`In 6` |Color3<Float>|
                |`In 7` |Color3<Float>|
                |`In 8` |Color3<Float>|
                |`In 9` |Color3<Float>|
                |`In 10`|Color3<Float>|
                |`Which`|Float        |

|Output|Type         |
                |------|-------------|
                |`Out` |Color3<Float>|

**Switch (color3f integer):**

|Input  |Type         |
                |-------|-------------|
                |`In 1` |Color3<Float>|
                |`In 2` |Color3<Float>|
                |`In 3` |Color3<Float>|
                |`In 4` |Color3<Float>|
                |`In 5` |Color3<Float>|
                |`In 6` |Color3<Float>|
                |`In 7` |Color3<Float>|
                |`In 8` |Color3<Float>|
                |`In 9` |Color3<Float>|
                |`In 10`|Color3<Float>|
                |`Which`|Int32        |

|Output|Type         |
                |------|-------------|
                |`Out` |Color3<Float>|

**Switch (color4f integer):**

|Input  |Type         |
                |-------|-------------|
                |`In 1` |Color4<Float>|
                |`In 2` |Color4<Float>|
                |`In 3` |Color4<Float>|
                |`In 4` |Color4<Float>|
                |`In 5` |Color4<Float>|
                |`In 6` |Color4<Float>|
                |`In 7` |Color4<Float>|
                |`In 8` |Color4<Float>|
                |`In 9` |Color4<Float>|
                |`In 10`|Color4<Float>|
                |`Which`|Int32        |

|Output|Type         |
                |------|-------------|
                |`Out` |Color4<Float>|

**Switch (vector2h):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector2h|
                |`In 2` |Vector2h|
                |`In 3` |Vector2h|
                |`In 4` |Vector2h|
                |`In 5` |Vector2h|
                |`In 6` |Vector2h|
                |`In 7` |Vector2h|
                |`In 8` |Vector2h|
                |`In 9` |Vector2h|
                |`In 10`|Vector2h|
                |`Which`|Half    |

|Output|Type    |
                |------|--------|
                |`Out` |Vector2h|

**Switch (vector4h integer):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector4h|
                |`In 2` |Vector4h|
                |`In 3` |Vector4h|
                |`In 4` |Vector4h|
                |`In 5` |Vector4h|
                |`In 6` |Vector4h|
                |`In 7` |Vector4h|
                |`In 8` |Vector4h|
                |`In 9` |Vector4h|
                |`In 10`|Vector4h|
                |`Which`|Int32   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector4h|

**Switch (vector3f integer):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector3f|
                |`In 2` |Vector3f|
                |`In 3` |Vector3f|
                |`In 4` |Vector3f|
                |`In 5` |Vector3f|
                |`In 6` |Vector3f|
                |`In 7` |Vector3f|
                |`In 8` |Vector3f|
                |`In 9` |Vector3f|
                |`In 10`|Vector3f|
                |`Which`|Int32   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector3f|

**Switch (float integer):**

|Input  |Type |
                |-------|-----|
                |`In 1` |Float|
                |`In 2` |Float|
                |`In 3` |Float|
                |`In 4` |Float|
                |`In 5` |Float|
                |`In 6` |Float|
                |`In 7` |Float|
                |`In 8` |Float|
                |`In 9` |Float|
                |`In 10`|Float|
                |`Which`|Int32|

|Output|Type |
                |------|-----|
                |`Out` |Float|

**Switch (vector4f):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector4f|
                |`In 2` |Vector4f|
                |`In 3` |Vector4f|
                |`In 4` |Vector4f|
                |`In 5` |Vector4f|
                |`In 6` |Vector4f|
                |`In 7` |Vector4f|
                |`In 8` |Vector4f|
                |`In 9` |Vector4f|
                |`In 10`|Vector4f|
                |`Which`|Float   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector4f|

**Switch (vector2h integer):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector2h|
                |`In 2` |Vector2h|
                |`In 3` |Vector2h|
                |`In 4` |Vector2h|
                |`In 5` |Vector2h|
                |`In 6` |Vector2h|
                |`In 7` |Vector2h|
                |`In 8` |Vector2h|
                |`In 9` |Vector2h|
                |`In 10`|Vector2h|
                |`Which`|Int32   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector2h|

**Switch (vector3h integer):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector3h|
                |`In 2` |Vector3h|
                |`In 3` |Vector3h|
                |`In 4` |Vector3h|
                |`In 5` |Vector3h|
                |`In 6` |Vector3h|
                |`In 7` |Vector3h|
                |`In 8` |Vector3h|
                |`In 9` |Vector3h|
                |`In 10`|Vector3h|
                |`Which`|Int32   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector3h|

**Switch (half):**

|Input  |Type |
                |-------|-----|
                |`In 1` |Half |
                |`In 2` |Half |
                |`In 3` |Half |
                |`In 4` |Half |
                |`In 5` |Half |
                |`In 6` |Half |
                |`In 7` |Half |
                |`In 8` |Half |
                |`In 9` |Half |
                |`In 10`|Half |
                |`Which`|Float|

|Output|Type|
                |------|----|
                |`Out` |Half|

**Switch (vector4f integer):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector4f|
                |`In 2` |Vector4f|
                |`In 3` |Vector4f|
                |`In 4` |Vector4f|
                |`In 5` |Vector4f|
                |`In 6` |Vector4f|
                |`In 7` |Vector4f|
                |`In 8` |Vector4f|
                |`In 9` |Vector4f|
                |`In 10`|Vector4f|
                |`Which`|Int32   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector4f|

**Switch (vector2f):**

|Input  |Type    |
                |-------|--------|
                |`In 1` |Vector2f|
                |`In 2` |Vector2f|
                |`In 3` |Vector2f|
                |`In 4` |Vector2f|
                |`In 5` |Vector2f|
                |`In 6` |Vector2f|
                |`In 7` |Vector2f|
                |`In 8` |Vector2f|
                |`In 9` |Vector2f|
                |`In 10`|Vector2f|
                |`Which`|Float   |

|Output|Type    |
                |------|--------|
                |`Out` |Vector2f|

---

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)