IScriptableObject

Marker interface mirroring UnityEngine.ScriptableObject. Extends IUnityObject to identify asset-based types within the Paragon interface hierarchy. Currently defines no additional members — it exists to provide a type-safe branch point separating asset objects from scene objects (IComponent branch).

Definition

Namespace: Paragon Assembly: Paragon.dll

public interface IScriptableObject : IUnityObject

Extends: IUnityObject

Remarks

IScriptableObject serves as a branching point in the interface hierarchy. While IComponentIBehaviourIMonoBehaviour represents the scene-object branch, IScriptableObject represents the asset-object branch. Both share IUnityObject as their common root.

Despite being empty, this interface is critical for the Scriptable Factory system:

IUnityObject
├── IComponent → IBehaviour → IMonoBehaviour → IParagonBehaviour
└── IScriptableObject → IScriptableFactory → INetworkScriptableFactory

The IScriptableFactory interface extends IScriptableObject, which means any factory is guaranteed to have the IUnityObject members (GetInstanceID(), name, etc.) while also being identifiable as a ScriptableObject-based type.

Implementation Requirements

circle-info

You do not need to implement this interface explicitly. Any class deriving from UnityEngine.ScriptableObject (including ParagonScriptableObject and all factory types) already satisfies this interface since IScriptableObject only contains members inherited from IUnityObject, which ScriptableObject provides.

Key Consumers

Consumer
How It Uses IScriptableObject

Extends IScriptableObject — all factories are ScriptableObject-based

Inherits through IScriptableFactory — network factories are also ScriptableObject-based

ParagonScriptableObject

Base class for all Paragon ScriptableObjects — implicitly satisfies this interface

See Also

Last updated