Key Value Database

Basically a serialized functionality with an additions. With minimal scripting, you can add some useful inspector buttons to automatically fill the dictionary. Very useful for large dictionaries like item database.

Example from Hero Manager

Key Value Database

csharp
using CupkekGames.Core; using CupkekGames.Luna; using UnityEngine; namespace CupkekGames.HeroManager { public class ItemDatabaseIngredient : KeyValueDatabaseMonoSO<string, IngredientSO> { public InventoryItemDefinition GetItemDefinition(string key) { if (string.IsNullOrEmpty(key)) { Debug.Log("Null key"); return null; } if (!ContainsKey(key)) { Debug.Log("Ingredient doesnt exist: " + key); return null; } return GetValue(key).ItemDefinition; } } }
csharp
#if UNITY_EDITOR using CupkekGames.Core.Editor; using UnityEditor; namespace CupkekGames.HeroManager.Editor { [CustomEditor(typeof(ItemDatabaseIngredient))] public class ItemDatabaseIngredientEditor : KeyValueDatabaseMonoSOEditor<string, IngredientSO> { public override string GetKeyFromFileName(string name) { return name; } } } #endif

Settings

Theme

Light

Contrast

Material

Dark

Dim

Material Dark

System

Sidebar(Light & Contrast only)

Light
Dark

Font Family

DM Sans

Wix

Inclusive Sans

AR One Sans

Direction

LTR
RTL