Skip to content

Simple & Lightweight solution for managing configuration assets in Unity projects

License

Notifications You must be signed in to change notification settings

caneva20/ConfigAssets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Config Assets

Simple & Lightweight solution for managing configuration assets in Unity projects

Install

  1. Install Editor Coroutines from Unity's package manager

    com.unity.editorcoroutines

    You can access the package manager by going to Window > Package Manager at the top bar in Unity

  2. Download & import the latest config-assets.unitypackage from here or the releases page.

Usage

First create a partial class and add the Config attribute to it

[Config]
public partial class MyConfig {
    // Your fields & attributes
}

Then add as many fields as you need, note that it must be Serializable by Unity for it to save. Anything that is valid for a ScriptableObject is valid here as well.

[Config]
public partial class MyConfig {
    [SerializeField] private string _myString;
    [SerializeField] private bool _myBool = true;

    //This also works
    public int myInt;
}

Your class is now accessible through a direct static access.
To use it just call YOUR_CLASS_NAME.YOUR_FIELD

int valueFromConfig = MyConfig.myInt;

  • Whenever you get back to Unity, a new .asset file will be created for your configuration and it will be added to Preloaded assets under the player settings.
  • You can access your configuration through Unity's Project Settings under Edit>Project Settings... in the toolbar, and then selecting the desired configuration under the Config assets section.

Customization

The [Config] attribute has some properties to allow you to customize you configuration a bit:

Attribute Description Default
DisplayName The name used under Project Settings null (Will use the type name)
EnableProvider Whether or not to generate a SettingsProvider true
Scope The scope used by the SettingsProvider SettingsScope.Project
Keywords The keywords used by the SettingsProvider none/empty
GenerateSingleton Whether or not to generate the .Instance property true