Interface IScyllaDependencyProvider
Interface for components that declare their external dependencies, enabling automatic discovery and validation of required packages. Implement this interface on Scylla modules or other components that depend on UPM packages, Unity Asset Store assets, third-party libraries, or other Scylla modules.
Namespace: Scylla.Core
Assembly: ScyllaCore.dll
Syntax
public interface IScyllaDependencyProvider
Remarks
The Scylla Getting Started editor window scans all assemblies for implementations of this interface to build a consolidated dependency list. Each dependency is displayed with its installation status, version requirements, and quick-install links, giving developers a single overview of what is needed to use each Scylla component.
Implementations should be placed in the Editor assembly of each module (e.g.,
ScyllaInput.Editor) so that dependency metadata is available in the Editor without
bloating the runtime build. The GetDependencies() method returns
ScyllaDependencyInfoData structs, which are lightweight runtime-safe containers
that carry no Editor-only references.
Properties
APIDocsURL
Gets the URL of the generated API reference for this component. When non-empty and the component appears as a Scylla-module dependency of another module, the Getting Started window renders an "API Docs" button on its row that opens this URL.
Declaration
string APIDocsURL { get; }
Property Value
| Type | Description |
|---|---|
| string | A non-null URL string. Concrete providers typically return their module's
|
ComponentDescription
Gets a short human-readable description of what this component provides. Shown by the Getting Started window above the per-module dependencies table to give the user a quick summary of the component's purpose.
Declaration
string ComponentDescription { get; }
Property Value
| Type | Description |
|---|---|
| string | A non-null description string. Concrete providers typically return their module's
|
ComponentDisplayName
Gets the human-readable display name for this component, shown in the Getting Started
window and dependency reports (e.g., "Scylla Input", "Scylla Camera").
Declaration
string ComponentDisplayName { get; }
Property Value
| Type | Description |
|---|---|
| string | A user-friendly name suitable for display in editor UI. |
ComponentID
Gets the unique identifier for this component. For Scylla modules, this should match
the module's ID as defined in ScyllaModuleID (e.g., "ScyllaInput",
"ScyllaCamera"). For non-module components, use a unique, stable string
that identifies the component across versions.
Declaration
string ComponentID { get; }
Property Value
| Type | Description |
|---|---|
| string | A non-null, non-empty string uniquely identifying this component. |
ComponentVersion
Gets the semantic version string of this component (e.g., "1.0.0").
Used for display purposes and optional version compatibility checks.
Declaration
string ComponentVersion { get; }
Property Value
| Type | Description |
|---|---|
| string | A version string, typically following semantic versioning. |
DocsURL
Gets the URL of the user-facing documentation for this component. When non-empty and the component appears as a Scylla-module dependency of another module, the Getting Started window renders a "Docs" button on its row that opens this URL.
Declaration
string DocsURL { get; }
Property Value
| Type | Description |
|---|---|
| string | A non-null URL string. Concrete providers typically return their module's
|
Methods
GetDependencies()
Returns the complete list of dependencies required or recommended by this component. Each entry describes a single external package or Scylla module dependency, including its source type, version requirements, and installation metadata.
Declaration
IReadOnlyList<ScyllaDependencyInfoData> GetDependencies()
Returns
| Type | Description |
|---|---|
| IReadOnlyList<ScyllaDependencyInfoData> | A read-only list of ScyllaDependencyInfoData entries describing each dependency.
Returns an empty list if the component has no external dependencies. Never returns |