Description
LckStreamingController is a Unity MonoBehaviour that guides users through the steps required before they can live stream with LIV Hub: logging in, verifying their subscription, and confirming stream configuration. It runs as a state machine that advances through each check automatically, then enables the stream toggle once everything is validated.
This class is a reference implementation — you can use it directly or extend it to build custom UI/UX flows. At runtime it integrates with ILckService for starting/stopping streams and ILckCore for authentication and user status checks.
Usage
UseLckStreamingController to manage the full streaming setup flow. Attach it to a GameObject, connect a LckNotificationController for user messages, and wire your stream button to StreamingButtonToggled().
CheckCurrentState() when the user opens the streaming UI to kick off the validation state machine.
References
Properties
| Property | Type | Description |
|---|---|---|
| IsConfiguredCorrectly | bool | Indicates whether user setup and validation have been completed. When true, streaming can be toggled directly. |
| CurrentState | LckStreamingBaseState | The currently active state in the streaming state machine. |
| CheckConfiguredState | LckStreamingCheckConfiguredState | State for verifying if the user has already configured streaming. |
| ShowCodeState | LckStreamingShowCodeState | State for showing the user their login code. |
| CheckSubscribedState | LckStreamingCheckSubscribedState | State for verifying if the user has an active subscription. |
| WaitingForConfigureState | LckStreamingWaitingForConfigureState | State for waiting while the user configures streaming in LIV Hub. |
| ConfiguredCorrectlyState | LckStreamingConfiguredCorrectlyState | State indicating setup is complete and the user can start streaming. |
| CancellationTokenSource | CancellationTokenSource | Token used to cancel any ongoing async tasks when switching states or destroying the object. |
| LckCore | ILckCore | Provides access to the LIV Core SDK for authentication and user status checks. |
Methods
| Method | Returns | Description |
|---|---|---|
| CheckCurrentState() | void | Starts the setup/validation state machine from the beginning (CheckConfiguredState). |
| StopCheckingStates() | void | Cancels any ongoing async checks or polling in the current state. Useful when leaving the streaming UI. |
| SwitchState(LckStreamingBaseState state) | void | Switches to a new streaming state, cancelling pending operations and updating IsConfiguredCorrectly. |
| StreamingButtonToggled() | void | Toggles streaming: if configured, starts/stops streaming; if not configured, invokes _onStreamButtonError. |
| StopStreaming() | void | Force stops streaming if a stream is currently active. |
| ShowNotification(NotificationType type) | void | Displays a notification via the linked LckNotificationController. |
| HideNotifications() | void | Hides currently visible notifications. |
| SetNotificationStreamCode(string code) | void | Updates the notification UI with a login/streaming code. |
| Log(string message) | void | Logs debug messages if _showDebugLogs is enabled. |
| LogError(string error) | void | Logs error messages if _showDebugLogs is enabled. |
See Also
- ILckService — Service interface used to start/stop streams
- ILckCore — Core interface used for authentication and subscription checks
- LckNotificationController — Displays login codes, errors, and configuration prompts during the flow
- LckService — Default ILckService implementation with streaming methods