API:Layers
Layers are used to allow cameras and lights to act only on certain parts of the scene, or to have collisions or ray casts ignore certain objects. See the Unity Layers page for more details.
Layers in KSP
There are 32 layers available. This is a hard limit in Unity. Layers 0 to 7 are reserved by Unity.
- 0: Default (Unity built-in)
- 1: TransparentFX (Unity built-in)
- 2: Ignore Raycast (Unity built-in)
- 3:
- 4: Water (Unity built-in)
- 5: UI (Unity built-in)
- 6:
- 7:
- 8: PartsList_Icons
- 9: Atmosphere
- 10: Scaled Scenery
- 11: UIDialog
- 12: UIVectors
- 13: UI_Mask
- 14: Screens
- 15: Local Scenery
- 16: kerbals
- 17: EVA
- 18: SkySphere
- 19: PhysicalObjects
- 20: Internal Space
- 21: Part Triggers
- 22: KerbalInstructors
- 23: AeroFXIgnore
- 24: MapFX
- 25: UIAdditional
- 26: WheelCollidersIgnore
- 27: WheelColliders
- 28: TerrainColliders
- 29: DragRender
- 30: SurfaceFX
- 31: Vectors
Common Camera Configurations
External views
Used for EVA or flight, without any GUI elements (layers 0, 4, 9, 10, 15 18 and 23 enabled, all others disabled).
myExternalCamera.cullingMask = (1 << 0) | (1 << 4) | (1 << 9) | (1 << 10) | (1 << 15) | (1 << 18) | (1 << 23);
This sets the culling mask to 100001001000011000010001, or 8,685,073 in decimal. The culling mask can also be set in decimal:
myExternalCamera.cullingMask = 8685073;
IVA
Used for IVA views which can also see outside.
myInternalCamera.cullingMask = (1 << 0) | (1 << 4) | (1 << 9) | (1 << 10) | (1 << 15) | (1 << 16) | (1 << 18) | (1 << 20) | (1 << 23);
Game Objects
Game Objects can only have one layer. This layer is referred to numerically rather than in mask form. For example, to set an object to use the Local Scenery layer:
myGameObject.layer = 15;
Objects are visible in game when on layers 0 (Default), 15 (Local Scenery) and 19 (Disconnected Parts), and can also be visible on the camera plane on layers 12 (UI_Main) and 13 (UI_Mask). Only layer 0 displays mach and re-entry effects, so placing an object on layer 15 will disable these effects for that object.