Skip to main content

SGD Settings

class SoftKitty.SGD_Settings : ScriptableObject

This is the core data object of the system, handling system-wide configuration settings.

You can create this object via the context menu in any Project folder: Create → SoftKitty → Data Objects → General Settings Data

You can access the settings interface in: Project Settings → SoftKitty


Properties

public static SGD_Settings Instance

readonly

Returns the singleton instance assigned in ProjectSettings > SoftKitty > Data Settings. Access this to get global system setting.


public static bool isRuntime

readonly

Returns whether the system is currently in runtime mode (true or false). Useful for checking if the game is running or if you’re in the editor.


public LayerMask GroundLayer

The ground LayerMask in the General Settings, GroundLayer is used to identify ground, walls, roofs, and terrain in the project.

Example:

LayerMask _mask = SGD_Settings.Instance.GroundLayer; //Get
SGD_Settings.Instance.GroundLayer = mMask; //Set

public AssetLoader CustomLoader

The custom AssetLoader in the General Settings, custom AssetLoader is used to load resources from Asset Bundles or Unity Addressables..

Example:

AssetLoader _loader = SGD_Settings.Instance.CustomLoader; //Get
SGD_Settings.Instance.CustomLoader = mLoader; //Set

public float VolumeMultiplier

The global volume multiplier for sounds played by SoftKitty packages.(0F~1F)

Example:

float _volumeMultiplier = SGD_Settings.Instance.VolumeMultiplier; //Get
SGD_Settings.Instance.VolumeMultiplier = 0.5F; //Set

public int AudioPriority

The audio priority for sounds played by SoftKitty packages. Lower values indicate higher priority.(0~256)

Example:

int _audioPriority = SGD_Settings.Instance.AudioPriority; //Get
SGD_Settings.Instance.AudioPriority = 100; //Set

Methods

public T GetData<T>() where T : DataObject

Retrieves DataObject like EntityManagerObject, AttributeObject, and OverTimeEffectObject. These objects are defined in : ProjectSettings > SoftKitty > Data Settings > Data

Example:

EntityManagerObject _entityManager = SGD_Settings.Instance.GetData<EntityManagerObject>();
AttributeObject _attributeSetting = SGD_Settings.Instance.GetData<AttributeObject>();
OverTimeEffectObject _overTimeEffectSetting = SGD_Settings.Instance.GetData<OverTimeEffectObject>();

public void RefreshDatabase()

Refresh the sub-data objects like EntityManager, Attributes, and OverTimeEffects. This is required if you manually assigned them via script to the database.