Class ScyllaDependencyInfo
Editor-side metadata container describing a single dependency of a Scylla component, including its source, version requirements, installation URLs, and current DependencyStatus. Instances are immutable except for the mutable Status and InstalledVersion properties, which are populated by ScyllaDependencyDetector after detection.
Inherited Members
Namespace: Scylla.Core.Editor
Assembly: ScyllaCore.Editor.dll
Syntax
public sealed class ScyllaDependencyInfo
Remarks
Use the static factory methods - CreateUPM(string, string, bool, string, string, string), CreateAssetStore(string, string, string, string, bool, string, string, string), CreateThirdParty(string, string, string, string, bool, string, string, string), and CreateScyllaModule(string, string, bool, string, string) - to create pre-configured instances for each dependency source type. Alternatively, call FromRuntimeData(ScyllaDependencyInfoData) to convert a ScyllaDependencyInfoData struct that was declared by an IScyllaDependencyProvider.
After detection, use WithStatus(DependencyStatus, string) to create updated copies while keeping the original instance unchanged. This is the pattern used internally by GetDependencyStatus(ScyllaDependencyInfo).
Constructors
ScyllaDependencyInfo(string, string, DependencySourceType, bool, string, string, string, string, string)
Initializes a new ScyllaDependencyInfo with all required metadata.
Status is initialized to Unknown and
InstalledVersion to null; both are updated after detection.
Declaration
public ScyllaDependencyInfo(string packageID, string displayName, DependencySourceType sourceType, bool isRequired = true, string minVersion = null, string description = null, string installURL = null, string documentationURL = null, string detectionTypeName = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | packageID | Unique identifier for the package. For UPM packages this must match the package name
(e.g., |
| string | displayName | Human-readable name shown in editor UI (e.g., |
| DependencySourceType | sourceType | The DependencySourceType indicating the origin of this package. |
| bool | isRequired |
|
| string | minVersion | Minimum acceptable version string (e.g., |
| string | description | Brief explanation of what the dependency provides. A |
| string | installURL | URL for obtaining the package - typically the Asset Store product page or a repository URL.
May be |
| string | documentationURL | URL to the package's documentation, or |
| string | detectionTypeName | Fully qualified C# type name used as a fallback to detect whether the package is installed
via reflection. May be |
Properties
Description
Description of what the dependency provides.
Declaration
public string Description { get; }
Property Value
| Type | Description |
|---|---|
| string |
DetectionTypeName
Fully qualified type name used to detect if the package is installed. This is used for Asset Store and third-party packages that don't appear in UPM.
Declaration
public string DetectionTypeName { get; }
Property Value
| Type | Description |
|---|---|
| string |
DisplayName
Human-readable display name for the package.
Declaration
public string DisplayName { get; }
Property Value
| Type | Description |
|---|---|
| string |
DocumentationURL
URL to the package's documentation.
Declaration
public string DocumentationURL { get; }
Property Value
| Type | Description |
|---|---|
| string |
InstallURL
URL for installing or downloading the package. For UPM packages, this can be null as they install via Package Manager. For Asset Store packages, this is the Asset Store URL. For third-party packages, this is the download URL.
Declaration
public string InstallURL { get; }
Property Value
| Type | Description |
|---|---|
| string |
InstalledVersion
Currently installed version of the dependency. Null if not installed or version couldn't be determined.
Declaration
public string InstalledVersion { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
IsRequired
Whether this dependency is required for the component to function. Optional dependencies enhance functionality but aren't strictly necessary.
Declaration
public bool IsRequired { get; }
Property Value
| Type | Description |
|---|---|
| bool |
MinVersion
Minimum required version for the dependency. Null if any version is acceptable.
Declaration
public string MinVersion { get; }
Property Value
| Type | Description |
|---|---|
| string |
PackageID
Unique identifier for the package. For UPM packages, this is the package name (e.g., "com.unity.inputsystem"). For Asset Store packages, this can be a custom identifier.
Declaration
public string PackageID { get; }
Property Value
| Type | Description |
|---|---|
| string |
SourceType
The source type indicating where the package comes from.
Declaration
public DependencySourceType SourceType { get; }
Property Value
| Type | Description |
|---|---|
| DependencySourceType |
Status
Current installation status of the dependency. This is set by the dependency detector at runtime.
Declaration
public DependencyStatus Status { get; set; }
Property Value
| Type | Description |
|---|---|
| DependencyStatus |
Methods
CreateAssetStore(string, string, string, string, bool, string, string, string)
Creates a dependency info for an Asset Store package.
Declaration
public static ScyllaDependencyInfo CreateAssetStore(string packageID, string displayName, string assetStoreURL, string detectionTypeName, bool isRequired = true, string minVersion = null, string description = null, string documentationURL = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | packageID | Custom identifier for the package. |
| string | displayName | Display name for the package. |
| string | assetStoreURL | URL to the Asset Store page. |
| string | detectionTypeName | Fully qualified type name for detection. |
| bool | isRequired | Whether the dependency is required. |
| string | minVersion | Minimum version requirement. |
| string | description | Description of the dependency. |
| string | documentationURL | URL to documentation. |
Returns
| Type | Description |
|---|---|
| ScyllaDependencyInfo | A new ScyllaDependencyInfo configured for Asset Store. |
CreateScyllaModule(string, string, bool, string, string)
Creates a dependency info for a Scylla module.
Declaration
public static ScyllaDependencyInfo CreateScyllaModule(string moduleID, string displayName, bool isRequired = true, string minVersion = null, string description = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | moduleID | The Scylla module ID (e.g., ScyllaModuleID.UI). |
| string | displayName | Display name for the module. |
| bool | isRequired | Whether the dependency is required. |
| string | minVersion | Minimum version requirement. |
| string | description | Description of the dependency. |
Returns
| Type | Description |
|---|---|
| ScyllaDependencyInfo | A new ScyllaDependencyInfo configured for Scylla module. |
CreateThirdParty(string, string, string, string, bool, string, string, string)
Creates a dependency info for a third-party package.
Declaration
public static ScyllaDependencyInfo CreateThirdParty(string packageID, string displayName, string downloadURL, string detectionTypeName, bool isRequired = true, string minVersion = null, string description = null, string documentationURL = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | packageID | Custom identifier for the package. |
| string | displayName | Display name for the package. |
| string | downloadURL | URL to download the package. |
| string | detectionTypeName | Fully qualified type name for detection. |
| bool | isRequired | Whether the dependency is required. |
| string | minVersion | Minimum version requirement. |
| string | description | Description of the dependency. |
| string | documentationURL | URL to documentation. |
Returns
| Type | Description |
|---|---|
| ScyllaDependencyInfo | A new ScyllaDependencyInfo configured for third-party. |
CreateUPM(string, string, bool, string, string, string)
Creates a dependency info for a UPM package.
Declaration
public static ScyllaDependencyInfo CreateUPM(string packageID, string displayName, bool isRequired = true, string minVersion = null, string description = null, string documentationURL = null)
Parameters
| Type | Name | Description |
|---|---|---|
| string | packageID | The UPM package ID (e.g., "com.unity.inputsystem"). |
| string | displayName | Display name for the package. |
| bool | isRequired | Whether the dependency is required. |
| string | minVersion | Minimum version requirement. |
| string | description | Description of the dependency. |
| string | documentationURL | URL to documentation. |
Returns
| Type | Description |
|---|---|
| ScyllaDependencyInfo | A new ScyllaDependencyInfo configured for UPM. |
ToString()
Returns a concise human-readable representation of this dependency, including its display name, minimum version (if set), and whether it is required or optional.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| string | A string of the form |
Overrides
WithStatus(DependencyStatus, string)
Creates a shallow copy of this ScyllaDependencyInfo with Status and InstalledVersion replaced by the supplied values. All other fields remain identical to the original instance.
Declaration
public ScyllaDependencyInfo WithStatus(DependencyStatus status, string installedVersion = null)
Parameters
| Type | Name | Description |
|---|---|---|
| DependencyStatus | status | The new DependencyStatus value to apply. |
| string | installedVersion | The currently installed version string (e.g., |
Returns
| Type | Description |
|---|---|
| ScyllaDependencyInfo | A new ScyllaDependencyInfo instance with the updated status fields. |
Remarks
This factory method is the preferred way to update detection results because ScyllaDependencyInfo is treated as effectively immutable once constructed
- only Status and InstalledVersion are meant to change after initial construction.