Skip to content

LedBoardController

ClassLEDStudioLEDStudio
public sealed class LedBoardController : MonoBehaviour, ILedBoardRuntime, ILedBoardContent, ILedBoardPlayback, ILedBoardConfiguration, ILedBoardFaults, ILedBoardDiagnostics

Main Unity scene component for LED board instances. Binds a board profile, source/composition content, and optional playlist to object lifetime. Orchestrates the update pipeline by delegating to focused subsystems: LEDStudio.LedSourceManager, LEDStudio.LedMaterialManager, and LEDStudio.LedDefectManager. Works in both editor (ExecuteAlways) and play mode.

public void RefreshSources()

Refresh component-backed source discovery after sources are created or removed manually.

CreateRuntimeBoard(string, Transform, Vector3, Quaternion, Vector3, Vector2Int, int, int)

Section titled “CreateRuntimeBoard(string, Transform, Vector3, Quaternion, Vector3, Vector2Int, int, int)”
public static LedBoardController CreateRuntimeBoard(string boardName, Transform parent, Vector3 localPosition, Quaternion localRotation, Vector3 localScale, Vector2Int logicalResolution, int cabinetColumns = 4, int cabinetRows = 1)

Creates a scene object with a ready-to-use LED board controller, generated topology, and the default board material.

Parameters

Name Type Description
boardName System.String Name for the created scene object. An empty value uses LED Board.
parent UnityEngine.Transform Optional parent under which the board is created.
localPosition UnityEngine.Vector3 Position relative to parent.
localRotation UnityEngine.Quaternion Rotation relative to parent.
localScale UnityEngine.Vector3 Scale relative to parent.
logicalResolution UnityEngine.Vector2Int Pixel resolution presented by the board.
cabinetColumns System.Int32 Number of cabinet columns used to partition the board.
cabinetRows System.Int32 Number of cabinet rows used to partition the board.

Returns

LEDStudio.LedBoardController: The controller attached to the newly created board object.

public void SetProfile(LedBoardProfile profile)

Set an authored board profile. Pass null to return to inline board settings.

Parameters

Name Type
profile LEDStudio.LedBoardProfile
public void SetTopologyAsset(LedTopologyAsset topologyAsset)

Use an authored topology asset and regenerate board geometry when possible.

Parameters

Name Type
topologyAsset LEDStudio.LedTopologyAsset
public void SetTopologySettings(LedTopologySettings topologySettings)

Use inline topology settings and regenerate board geometry when possible.

Parameters

Name Type
topologySettings LEDStudio.LedTopologySettings

SetExtrusionSettings(LedBoardExtrusionSettings)

Section titled “SetExtrusionSettings(LedBoardExtrusionSettings)”
public void SetExtrusionSettings(LedBoardExtrusionSettings extrusionSettings)

Use inline board body extrusion settings and regenerate board geometry when possible.

Parameters

Name Type
extrusionSettings LEDStudio.LedBoardExtrusionSettings

SetExtrusionMaterials(LedBoardExtrusionMaterialSettings)

Section titled “SetExtrusionMaterials(LedBoardExtrusionMaterialSettings)”
public void SetExtrusionMaterials(LedBoardExtrusionMaterialSettings extrusionMaterials)

Set optional generated body side material overrides.

Parameters

Name Type
extrusionMaterials LEDStudio.LedBoardExtrusionMaterialSettings
public bool RefreshTopologyMesh(bool forceReplaceCustomMesh = false)

Regenerate generated topology mesh. Custom meshes are preserved unless explicitly replaceable.

Parameters

Name Type
forceReplaceCustomMesh System.Boolean

Returns

System.Boolean

public bool TryRegenerateTopologyMesh(bool forceReplaceCustomMesh)

Rebuilds the board mesh from its current topology and physical settings when the assigned mesh may be replaced.

Parameters

Name Type Description
forceReplaceCustomMesh System.Boolean Whether an assigned custom mesh may be replaced. When false, only missing or LED Studio-generated meshes are replaced.

Returns

System.Boolean: True when a generated mesh was assigned; otherwise false.

SetInlineBoardSettings(Vector2Int, int, int)

Section titled “SetInlineBoardSettings(Vector2Int, int, int)”
public void SetInlineBoardSettings(Vector2Int logicalResolution, int cabinetColumns = 4, int cabinetRows = 1)

Set inline board settings without constructing a profile asset.

Parameters

Name Type
logicalResolution UnityEngine.Vector2Int
cabinetColumns System.Int32
cabinetRows System.Int32
public void SetInlineBoardDefinition(BoardDefinition definition)

Set a complete inline board definition without constructing a profile asset.

Parameters

Name Type
definition LEDStudio.BoardDefinition
public void SetPitch(LedPitchPreset pitch)

Set inline physical pixel pitch and switch the board away from profile-driven settings.

Parameters

Name Type
pitch LEDStudio.LedPitchPreset
public void SetAutoSizeFromPitch(bool value)

Enable or disable automatic transform scaling from pixel pitch.

Parameters

Name Type
value System.Boolean
public void SetEmitter(LedEmitterParams emitter)

Set inline emitter shape and response settings.

Parameters

Name Type
emitter LEDStudio.LedEmitterParams
public void SetCabinetGrid(LedCabinetGrid cabinetGrid)

Set inline cabinet layout, seam width, and bezel darkening.

Parameters

Name Type
cabinetGrid LEDStudio.LedCabinetGrid
public void SetDefaultReduction(LedReductionMode reductionMode)

Set the inline default source reduction mode.

Parameters

Name Type
reductionMode LEDStudio.LedReductionMode
public void SetViewingDistances(float closeUpDistance, float farBlendDistance)

Set inline close-up and far blend viewing distances.

Parameters

Name Type
closeUpDistance System.Single
farBlendDistance System.Single
public void SetQualityProfile(LedQualityProfile profile)

Set an authored quality profile. Pass null to return to inline quality settings.

Parameters

Name Type
profile LEDStudio.LedQualityProfile

SetInlineQualitySettings(int, float, LedReductionMode, bool, LedQualityLevel, bool, bool, LedQualityLevel, bool)

Section titled “SetInlineQualitySettings(int, float, LedReductionMode, bool, LedQualityLevel, bool, bool, LedQualityLevel, bool)”
public void SetInlineQualitySettings(int maxUpdatesPerFrame = 0, float targetUpdateRateHz = 0, LedReductionMode reductionOverride = LedReductionMode.Box, bool useReductionOverride = false, LedQualityLevel qualityLevel = LedQualityLevel.High, bool enableBloom = true, bool enableCloseUpMode = true, LedQualityLevel defectQuality = LedQualityLevel.High, bool enableTemporalDefects = true)

Set inline quality settings without constructing a quality profile asset.

Parameters

Name Type
maxUpdatesPerFrame System.Int32
targetUpdateRateHz System.Single
reductionOverride LEDStudio.LedReductionMode
useReductionOverride System.Boolean
qualityLevel LEDStudio.LedQualityLevel
enableBloom System.Boolean
enableCloseUpMode System.Boolean
defectQuality LEDStudio.LedQualityLevel
enableTemporalDefects System.Boolean
public void SetEmitterCount(int columns, int rows)

Set the emitter-grid resolution while preserving the current cabinet layout.

Parameters

Name Type
columns System.Int32
rows System.Int32
public void SetEmitterCount(Vector2Int emitterCount)

Set the emitter-grid resolution while preserving the current cabinet layout.

Parameters

Name Type
emitterCount UnityEngine.Vector2Int
public void SetEmitterDensity(float emittersPerUnit)

Calculate emitter count from this board’s current local scale and a world-units density.

Parameters

Name Type
emittersPerUnit System.Single
public void SetEmitterCountForSize(Vector2 size, float emittersPerUnit)

Calculate emitter count from a supplied size and world-units density.

Parameters

Name Type
size UnityEngine.Vector2
emittersPerUnit System.Single

TryGetBoardPoint(Ray, out Vector2, out Vector2Int)

Section titled “TryGetBoardPoint(Ray, out Vector2, out Vector2Int)”
public bool TryGetBoardPoint(Ray worldRay, out Vector2 normalized, out Vector2Int emitter)

Map a world-space ray onto the board and return normalized board coordinates plus emitter coordinates.

Parameters

Name Type
worldRay UnityEngine.Ray
normalized UnityEngine.Vector2
emitter UnityEngine.Vector2Int

Returns

System.Boolean

TryGetBoardPoint(Vector3, out Vector2, out Vector2Int)

Section titled “TryGetBoardPoint(Vector3, out Vector2, out Vector2Int)”
public bool TryGetBoardPoint(Vector3 worldPoint, out Vector2 normalized, out Vector2Int emitter)

Map a world-space point onto the board and return normalized board coordinates plus emitter coordinates.

Parameters

Name Type
worldPoint UnityEngine.Vector3
normalized UnityEngine.Vector2
emitter UnityEngine.Vector2Int

Returns

System.Boolean

public void SetSource(LedSourceAsset source)

Set the board source overlay. Pass null to clear the source overlay.

Parameters

Name Type
source LEDStudio.LedSourceAsset
public void SetComposition(LedCompositionAsset composition)

Set the board composition overlay. Pass null to clear the composition overlay.

Parameters

Name Type
composition LEDStudio.LedCompositionAsset
public void SetLiveInput(string inputName, LedDataSourceBase sourceComponent)

Bind a reusable composition input slot to a scene data source component.

Parameters

Name Type
inputName System.String
sourceComponent LEDStudio.LedDataSourceBase
public void SetLiveInputTexture(string inputName, Texture texture)

Bind a reusable composition input slot directly to a texture.

Parameters

Name Type
inputName System.String
texture UnityEngine.Texture
public void ClearLiveInput(string inputName)

Remove a reusable composition input binding by slot name.

Parameters

Name Type
inputName System.String

AddImagePort(string, Texture2D, Rect?, LedFitMode, int)

Section titled “AddImagePort(string, Texture2D, Rect?, LedFitMode, int)”
public LedSourceAsset AddImagePort(string sourceId, Texture2D texture = null, Rect? zone = null, LedFitMode fitMode = LedFitMode.Fit, int priority = 0)

Add an image source layer backed by a texture asset.

Parameters

Name Type
sourceId System.String
texture UnityEngine.Texture2D
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32

Returns

LEDStudio.LedSourceAsset

AddRenderTexturePort(string, RenderTexture, Rect?, LedFitMode, int, UpdateScheduleSettings)

Section titled “AddRenderTexturePort(string, RenderTexture, Rect?, LedFitMode, int, UpdateScheduleSettings)”
public LedSourceAsset AddRenderTexturePort(string sourceId, RenderTexture renderTexture, Rect? zone = null, LedFitMode fitMode = LedFitMode.Stretch, int priority = 0, UpdateScheduleSettings updateSchedule = default)

Add a source layer backed by an externally updated render texture.

Parameters

Name Type
sourceId System.String
renderTexture UnityEngine.RenderTexture
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
updateSchedule ImpossibleRobert.Common.Timing.UpdateScheduleSettings

Returns

LEDStudio.LedSourceAsset

CreateDrawingPort(string, Vector2Int, Rect?, LedFitMode, int, RenderTextureFormat)

Section titled “CreateDrawingPort(string, Vector2Int, Rect?, LedFitMode, int, RenderTextureFormat)”
public RenderTexture CreateDrawingPort(string sourceId, Vector2Int renderResolution, Rect? zone = null, LedFitMode fitMode = LedFitMode.Stretch, int priority = 0, RenderTextureFormat format = 0)

Create a runtime-owned render texture and add it as a draw-anything source layer.

Parameters

Name Type
sourceId System.String
renderResolution UnityEngine.Vector2Int
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
format UnityEngine.RenderTextureFormat

Returns

UnityEngine.RenderTexture

AddUIToolkitPort(string, PanelSettings, Vector2Int?, Rect?, LedFitMode, int, UpdateScheduleSettings)

Section titled “AddUIToolkitPort(string, PanelSettings, Vector2Int?, Rect?, LedFitMode, int, UpdateScheduleSettings)”
public LedSourceAsset AddUIToolkitPort(string sourceId, PanelSettings panelSettings, Vector2Int? renderResolution = null, Rect? zone = null, LedFitMode fitMode = LedFitMode.Stretch, int priority = 0, UpdateScheduleSettings updateSchedule = default)

Add a source layer backed by UI Toolkit panel settings.

Parameters

Name Type
sourceId System.String
panelSettings UnityEngine.UIElements.PanelSettings
renderResolution System.Nullable{UnityEngine.Vector2Int}
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
updateSchedule ImpossibleRobert.Common.Timing.UpdateScheduleSettings

Returns

LEDStudio.LedSourceAsset

AddTextPort(string, string, Rect?, LedFitMode, int, Color?, float, TextAnchor, LedTextSizingMode, TMP_FontAsset, bool, float, float, bool, float, LedSeamlessWrapDistribution, LedTextScrollAxis)

Section titled “AddTextPort(string, string, Rect?, LedFitMode, int, Color?, float, TextAnchor, LedTextSizingMode, TMP_FontAsset, bool, float, float, bool, float, LedSeamlessWrapDistribution, LedTextScrollAxis)”
public LedSourceAsset AddTextPort(string sourceId, string text = "", Rect? zone = null, LedFitMode fitMode = LedFitMode.Fit, int priority = 0, Color? color = null, float textSize = 24, TextAnchor alignment = 4, LedTextSizingMode sizingMode = LedTextSizingMode.FitBox, TMP_FontAsset font = null, bool scroll = false, float scrollSpeed = 30, float scrollOffsetPercent = 0, bool seamlessWrap = false, float seamlessWrapPaddingPixels = 8, LedSeamlessWrapDistribution seamlessWrapDistribution = LedSeamlessWrapDistribution.SingleRepeat, LedTextScrollAxis scrollAxis = LedTextScrollAxis.Horizontal)

Add a text source layer with optional scrolling and seamless wrap.

Parameters

Name Type
sourceId System.String
text System.String
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
color System.Nullable{UnityEngine.Color}
textSize System.Single
alignment UnityEngine.TextAnchor
sizingMode LEDStudio.LedTextSizingMode
font TMPro.TMP_FontAsset
scroll System.Boolean
scrollSpeed System.Single
scrollOffsetPercent System.Single
seamlessWrap System.Boolean
seamlessWrapPaddingPixels System.Single
seamlessWrapDistribution LEDStudio.LedSeamlessWrapDistribution
scrollAxis LEDStudio.LedTextScrollAxis

Returns

LEDStudio.LedSourceAsset

AddTimerPort(string, float, bool, Rect?, LedFitMode, int, Color?, float, TextAnchor, LedTextSizingMode, TMP_FontAsset, bool, float, float, bool, float, LedSeamlessWrapDistribution, LedTextScrollAxis)

Section titled “AddTimerPort(string, float, bool, Rect?, LedFitMode, int, Color?, float, TextAnchor, LedTextSizingMode, TMP_FontAsset, bool, float, float, bool, float, LedSeamlessWrapDistribution, LedTextScrollAxis)”
public LedTimerDataSource AddTimerPort(string sourceId, float initialSeconds = 60, bool autoStart = false, Rect? zone = null, LedFitMode fitMode = LedFitMode.Fit, int priority = 0, Color? color = null, float textSize = 24, TextAnchor alignment = 4, LedTextSizingMode sizingMode = LedTextSizingMode.FitBox, TMP_FontAsset font = null, bool scroll = false, float scrollSpeed = 30, float scrollOffsetPercent = 0, bool seamlessWrap = false, float seamlessWrapPaddingPixels = 8, LedSeamlessWrapDistribution seamlessWrapDistribution = LedSeamlessWrapDistribution.SingleRepeat, LedTextScrollAxis scrollAxis = LedTextScrollAxis.Horizontal)

Add a scene-backed timer source layer with optional scrolling and seamless wrap.

Parameters

Name Type
sourceId System.String
initialSeconds System.Single
autoStart System.Boolean
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
color System.Nullable{UnityEngine.Color}
textSize System.Single
alignment UnityEngine.TextAnchor
sizingMode LEDStudio.LedTextSizingMode
font TMPro.TMP_FontAsset
scroll System.Boolean
scrollSpeed System.Single
scrollOffsetPercent System.Single
seamlessWrap System.Boolean
seamlessWrapPaddingPixels System.Single
seamlessWrapDistribution LEDStudio.LedSeamlessWrapDistribution
scrollAxis LEDStudio.LedTextScrollAxis

Returns

LEDStudio.LedTimerDataSource

AddScorePort(string, string, string, string, string, string, string, Rect?, LedFitMode, int, Color?, float, TextAnchor, LedTextSizingMode, TMP_FontAsset, bool, float, float, bool, float, LedSeamlessWrapDistribution, LedTextScrollAxis)

Section titled “AddScorePort(string, string, string, string, string, string, string, Rect?, LedFitMode, int, Color?, float, TextAnchor, LedTextSizingMode, TMP_FontAsset, bool, float, float, bool, float, LedSeamlessWrapDistribution, LedTextScrollAxis)”
public LedScoreDataSource AddScorePort(string sourceId, string homeLabel = "HOME", string awayLabel = "AWAY", string homeScore = "0", string awayScore = "0", string period = "", string clock = "", Rect? zone = null, LedFitMode fitMode = LedFitMode.Fit, int priority = 0, Color? color = null, float textSize = 24, TextAnchor alignment = 4, LedTextSizingMode sizingMode = LedTextSizingMode.FitBox, TMP_FontAsset font = null, bool scroll = false, float scrollSpeed = 30, float scrollOffsetPercent = 0, bool seamlessWrap = false, float seamlessWrapPaddingPixels = 8, LedSeamlessWrapDistribution seamlessWrapDistribution = LedSeamlessWrapDistribution.SingleRepeat, LedTextScrollAxis scrollAxis = LedTextScrollAxis.Horizontal)

Add a scene-backed score source layer with optional scrolling and seamless wrap.

Parameters

Name Type
sourceId System.String
homeLabel System.String
awayLabel System.String
homeScore System.String
awayScore System.String
period System.String
clock System.String
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
color System.Nullable{UnityEngine.Color}
textSize System.Single
alignment UnityEngine.TextAnchor
sizingMode LEDStudio.LedTextSizingMode
font TMPro.TMP_FontAsset
scroll System.Boolean
scrollSpeed System.Single
scrollOffsetPercent System.Single
seamlessWrap System.Boolean
seamlessWrapPaddingPixels System.Single
seamlessWrapDistribution LEDStudio.LedSeamlessWrapDistribution
scrollAxis LEDStudio.LedTextScrollAxis

Returns

LEDStudio.LedScoreDataSource

AddCanvasPort(string, Camera, Vector2Int, Rect?, LedFitMode, int, UpdateScheduleSettings)

Section titled “AddCanvasPort(string, Camera, Vector2Int, Rect?, LedFitMode, int, UpdateScheduleSettings)”
public LedCanvasDataSource AddCanvasPort(string sourceId, Camera sourceCamera, Vector2Int renderResolution, Rect? zone = null, LedFitMode fitMode = LedFitMode.Stretch, int priority = 0, UpdateScheduleSettings updateSchedule = default)

Add a scene-backed camera/canvas source layer.

Parameters

Name Type
sourceId System.String
sourceCamera UnityEngine.Camera
renderResolution UnityEngine.Vector2Int
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
updateSchedule ImpossibleRobert.Common.Timing.UpdateScheduleSettings

Returns

LEDStudio.LedCanvasDataSource

AddUIToolkitPort(string, UIDocument, Vector2Int, Rect?, LedFitMode, int, UpdateScheduleSettings)

Section titled “AddUIToolkitPort(string, UIDocument, Vector2Int, Rect?, LedFitMode, int, UpdateScheduleSettings)”
public LedUIToolkitDataSource AddUIToolkitPort(string sourceId, UIDocument document, Vector2Int renderResolution, Rect? zone = null, LedFitMode fitMode = LedFitMode.Stretch, int priority = 0, UpdateScheduleSettings updateSchedule = default)

Add a scene-backed UI Toolkit document source layer.

Parameters

Name Type
sourceId System.String
document UnityEngine.UIElements.UIDocument
renderResolution UnityEngine.Vector2Int
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
updateSchedule ImpossibleRobert.Common.Timing.UpdateScheduleSettings

Returns

LEDStudio.LedUIToolkitDataSource

AddVideoPort(string, VideoClip, Rect?, LedFitMode, int, bool, bool)

Section titled “AddVideoPort(string, VideoClip, Rect?, LedFitMode, int, bool, bool)”
public LedVideoDataSource AddVideoPort(string sourceId, VideoClip clip = null, Rect? zone = null, LedFitMode fitMode = LedFitMode.Fill, int priority = 0, bool playOnAwake = true, bool loop = true)

Add a scene-backed video player source layer.

Parameters

Name Type
sourceId System.String
clip UnityEngine.Video.VideoClip
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
playOnAwake System.Boolean
loop System.Boolean

Returns

LEDStudio.LedVideoDataSource

AddSourcePort(string, LedSourceAsset, Rect?, LedFitMode, int, bool)

Section titled “AddSourcePort(string, LedSourceAsset, Rect?, LedFitMode, int, bool)”
public void AddSourcePort(string sourceId, LedSourceAsset source, Rect? zone = null, LedFitMode fitMode = LedFitMode.Fit, int priority = 0, bool preserveAlpha = false)

Add a custom source asset as a composition layer.

Parameters

Name Type
sourceId System.String
source LEDStudio.LedSourceAsset
zone System.Nullable{UnityEngine.Rect}
fitMode LEDStudio.LedFitMode
priority System.Int32
preserveAlpha System.Boolean
public void SetPlaylist(LedPlaylistAsset playlist)

Activate a playlist asset. Pass null to clear the currently assigned playlist. Playback time resets to 0.

Parameters

Name Type
playlist LEDStudio.LedPlaylistAsset
public void ResetPlaylistPlayback()

Reset playback to the start of the currently assigned playlist without changing which playlist is active.

public void RestartCurrentPlaylistEntry()

Restarts the active playlist entry and rebuilds its composition, or resets the board clock when no playlist is assigned.

public void RestartPlaylistEntry(int index, bool debugOverride, float transitionProgress)

Restarts a playlist entry at an optional transition preview point and synchronizes the board’s clock group.

Parameters

Name Type Description
index System.Int32 Zero-based entry index. Values outside the playlist are clamped.
debugOverride System.Boolean Whether to hold the selected entry as an editor or diagnostic override.
transitionProgress System.Single Normalized position within the entry transition.
public void PreviewPreviousPlaylistEntry()

Switches the board preview to the preceding playlist entry without waiting for playback.

public void PreviewNextPlaylistEntry()

Switches the board preview to the following playlist entry without waiting for playback.

public void PreviewPlaylistEntry(int index)

Applies a playlist entry immediately as a preview and rebuilds the displayed composition.

Parameters

Name Type Description
index System.Int32 Zero-based entry index to preview.

SetPlaylistDebugOverride(bool, int, float)

Section titled “SetPlaylistDebugOverride(bool, int, float)”
public void SetPlaylistDebugOverride(bool enabled, int entryIndex, float transitionProgress)

Enables or clears a fixed playlist preview used to inspect an entry and its transition independently of playback time.

Parameters

Name Type Description
enabled System.Boolean Whether the fixed preview overrides normal playlist playback.
entryIndex System.Int32 Zero-based entry index to hold while the override is enabled.
transitionProgress System.Single Normalized transition position to preview.
public void SetScore(string home, string away, string period, string clock)

Push structured score data to score-type sources on the board.

Parameters

Name Type
home System.String
away System.String
period System.String
clock System.String
public void SetSourceTexture(string sourceId, Texture texture)

Override the output texture of a specific source at runtime and schedule the board to refresh. The Source ID is a stable board-local address.

Parameters

Name Type
sourceId System.String
texture UnityEngine.Texture
public void SetSourceText(string sourceId, string value)

Set the text content of a specific text source at runtime and schedule the board to refresh. The Source ID is a stable board-local address.

Parameters

Name Type
sourceId System.String
value System.String
public void MarkSourceDirty(string sourceId)

Mark a source dirty when its content changed outside the board API, such as an externally rendered texture updating in place.

Parameters

Name Type
sourceId System.String
public void MarkSourceDirty(string sourceId, RectInt sourceRect)

Mark a source-space rectangle dirty by stable board-local Source ID so manual or externally driven sources can update only the affected board region on the next pass.

Parameters

Name Type
sourceId System.String
sourceRect UnityEngine.RectInt
public void SetSuspended(bool value)

Pause or resume board updates while keeping allocated textures alive.

Parameters

Name Type
value System.Boolean
public void ApplyDefectProfile(LedDefectBlendRequest request)

Apply a defect profile with blending parameters.

Parameters

Name Type
request LEDStudio.LedDefectBlendRequest
public void ApplyPhysicalSize()

Apply the active board definition’s physical LED size to the transform scale.

public void ClearDefectProfile(string profileId)

Remove a specific defect profile by asset name.

Parameters

Name Type
profileId System.String
public void SetDefectSeverity(string profileId, float severity)

Adjust severity of a specific active defect profile.

Parameters

Name Type
profileId System.String
severity System.Single
public void SetDefectEnabled(bool value)

Master toggle for all defect simulation on this board.

Parameters

Name Type
value System.Boolean
public void SetBackgroundColor(Color color)

Set the background color drawn before sources are composited.

Parameters

Name Type
color UnityEngine.Color
public void SetPresentationBackgroundColor(Color color)

Set the presentation shader background color behind LED emitters.

Parameters

Name Type
color UnityEngine.Color
public void SetSyncClock(double seconds)

Override the board’s sync clock. If the board belongs to a sync group the override is forwarded to every member of the group.

Parameters

Name Type
seconds System.Double
public void SetSyncGroup(string syncGroupId)

Assign this board to a sync group. Pass null or empty to use playlist sync or no sync group.

Parameters

Name Type
syncGroupId System.String

public LedBoardController()

public ILedBoardContent Content { get; }

Focused source and composition view.

Returns

LEDStudio.ILedBoardContent

public ILedBoardPlayback Playback { get; }

Focused playlist and synchronization view.

Returns

LEDStudio.ILedBoardPlayback

public ILedBoardConfiguration Configuration { get; }

Focused board-definition and physical-sizing view.

Returns

LEDStudio.ILedBoardConfiguration

public ILedBoardFaults Faults { get; }

Focused defect-simulation view.

Returns

LEDStudio.ILedBoardFaults

public ILedBoardDiagnostics Diagnostics { get; }

Focused lifecycle and output diagnostics view.

Returns

LEDStudio.ILedBoardDiagnostics

public LedBoardProfile Profile { get; }

Profile currently driving board settings, or null when the board uses inline runtime settings.

Returns

LEDStudio.LedBoardProfile

public BoardDefinition Definition { get; }

Current resolved board definition snapshot.

Returns

LEDStudio.BoardDefinition

public LedQualityProfile QualityProfile { get; }

Quality profile currently driving quality settings, or null when inline quality settings are used.

Returns

LEDStudio.LedQualityProfile

public LedPitchPreset Pitch { get; }

Resolved physical pixel pitch used by the active board definition.

Returns

LEDStudio.LedPitchPreset

public bool AutoSizeFromPitch { get; }

Whether the board should keep transform scale matched to resolution and pixel pitch.

Returns

System.Boolean

public LedEmitterParams Emitter { get; }

Resolved emitter shape and response settings used by the active board definition.

Returns

LEDStudio.LedEmitterParams

public LedCabinetGrid CabinetGrid { get; }

Resolved cabinet layout used by the active board definition.

Returns

LEDStudio.LedCabinetGrid

public LedReductionMode DefaultReduction { get; }

Resolved default source reduction mode used by the active board definition.

Returns

LEDStudio.LedReductionMode

public float CloseUpDistance { get; }

Resolved close-up distance used by presentation shading.

Returns

System.Single

public float FarBlendDistance { get; }

Resolved far blend distance used by presentation shading.

Returns

System.Single

public int MaxUpdatesPerFrame { get; }

Resolved maximum board updates per frame across all boards (0 = unlimited).

Returns

System.Int32

public float TargetUpdateRateHz { get; }

Resolved target composition update rate in Hz (0 = every frame).

Returns

System.Single

public bool UseReductionOverride { get; }

Whether the resolved reduction override is active.

Returns

System.Boolean

public LedReductionMode ReductionOverride { get; }

Resolved reduction override mode.

Returns

LEDStudio.LedReductionMode

public LedQualityLevel QualityLevel { get; }

Resolved visual quality level.

Returns

LEDStudio.LedQualityLevel

public bool EnableBloom { get; }

Whether HDR bloom contribution is enabled.

Returns

System.Boolean

public bool EnableCloseUpMode { get; }

Whether close-up emitter shading is enabled.

Returns

System.Boolean

public LedQualityLevel DefectQuality { get; }

Resolved defect texture quality after quality-level clamping.

Returns

LEDStudio.LedQualityLevel

public bool EnableTemporalDefects { get; }

Whether time-varying defect effects are enabled.

Returns

System.Boolean

public Color BackgroundColor { get; }

Background color drawn before sources are composited.

Returns

UnityEngine.Color

public Color PresentationBackgroundColor { get; }

Background color used by the presentation shader behind LED emitters.

Returns

UnityEngine.Color

public LedTopologyAsset TopologyAsset { get; }

Topology asset currently driving generated board geometry, or null when inline topology settings are used.

Returns

LEDStudio.LedTopologyAsset

public LedTopologySettings TopologySettings { get; }

Resolved topology settings used by generated board geometry and physical sizing.

Returns

LEDStudio.LedTopologySettings

public LedBoardExtrusionSettings ExtrusionSettings { get; }

Resolved board body extrusion settings used by generated board geometry.

Returns

LEDStudio.LedBoardExtrusionSettings

public LedBoardExtrusionMaterialSettings ExtrusionMaterials { get; }

Resolved generated body side material assignments.

Returns

LEDStudio.LedBoardExtrusionMaterialSettings

public Vector2Int EmitterCount { get; set; }

Current emitter-grid resolution. Setting this switches the board to inline runtime settings.

Returns

UnityEngine.Vector2Int

public RenderTexture LogicalTexture { get; }

Returns

UnityEngine.RenderTexture

public Vector2 PhysicalSizeMeters { get; }

Physical board size derived from the active definition and pixel pitch.

Returns

UnityEngine.Vector2

public Vector3 PhysicalScale { get; }

Recommended local scale derived from the active definition, pitch, and topology.

Returns

UnityEngine.Vector3

public bool IsGroupControlled { get; }

True when a LEDStudio.LedBoardGroup is driving this board’s content.

Returns

System.Boolean

public LedCompositionAsset CurrentComposition { get; }

Runtime display composition containing playlist content plus board source, composition, and component overlays.

Returns

LEDStudio.LedCompositionAsset

public LedBoardState LifecycleState { get; }

Current lifecycle of the board.

Returns

LEDStudio.LedBoardState

public int PlaylistIndex { get; }

Index of the currently playing entry in the active playlist, or -1.

Returns

System.Int32

public double PlaylistTime { get; }

Elapsed time in seconds since the playlist started.

Returns

System.Double

public bool PlaylistDebugOverrideEnabled { get; }

Returns

System.Boolean

public int PlaylistDebugEntryIndex { get; }

Returns

System.Int32

public float PlaylistDebugTransitionProgress { get; }

Returns

System.Single

public bool DefectsEnabled { get; }

Whether defect simulation is currently enabled on the board.

Returns

System.Boolean

public Texture OutputTexture { get; }

The current logical board output texture.

Returns

UnityEngine.Texture

public string SyncGroupId { get; }

Effective sync group id for this board (either its own assignment or the group carried by the active playlist). Empty when not participating in a sync group.

Returns

System.String

public LedPlaylistAsset Playlist { get; }

Currently assigned playlist asset, or null.

Returns

LEDStudio.LedPlaylistAsset

public LedSourceAsset Source { get; }

Currently assigned direct source overlay, or null.

Returns

LEDStudio.LedSourceAsset

public LedCompositionAsset Composition { get; }

Currently assigned composition overlay, or null.

Returns

LEDStudio.LedCompositionAsset

public IReadOnlyList<LedLiveInputBinding> InputBindings { get; }

Live input bindings used by reusable composition input layers.

Returns

System.Collections.Generic.IReadOnlyList{LEDStudio.LedLiveInputBinding}