Preset Management
This document explains how Hardline style presets are created, stored, and used by both artists and gameplay systems.
A preset is a single asset type:
SSHStyleAsset
It represents a complete snapshot of the visual world:
- Environment lighting
- Skybox
- Outlines
Presets are how looks are authored, saved, shared, and driven at runtime.
They are the bridge between art direction and gameplay control.
Conceptual Flow
The intended workflow is:
- An artist or designer builds a look using the
SSHStyleManagerinspector - That look is saved into an SSHStyleAsset
- Gameplay systems load or blend those presets through the API
Presets do not animate.
They are static snapshots designed to be blended, interpolated, or switched by runtime systems.
What a Preset Contains
An SSHStyleAsset stores:
- All Environment values
- All Skybox values
- All Outline values
It does not store:
- Animation
- Curves
- Time-of-day logic
- Light objects
- Scene data
It is purely style state.
When applied, it overwrites the active style inside the SSHStyleManager.
Designer Workflow (Inspector)
This is how artists and designers work with presets.
Building a Look
In the scene:
- Select the
SSHStyleManager - Use the following panels to tune the look:
- Environment
- Skybox
- Outlines
Every change updates the entire scene immediately.
This is where you art-direct:
- Time of day
- Mood
- Weather
- Palette
- Graphic sharpness
Saving a Preset
When the look is correct:
In the SSHStyleManager Inspector:
Core → Save Preset
You will be prompted to create a new SSHStyleAsset.
This captures:
- Current Environment
- Current Skybox
- Current Outlines
as a reusable style snapshot.
Presets are just assets.
They can be versioned, duplicated, renamed, and stored like any other Unity asset.
Loading a Preset
In the SSHStyleManager Inspector:
Core → Load Preset
Select any SSHStyleAsset.
The scene will immediately update to that look.
This is identical to calling the Preset API at runtime.
Developer Workflow (API)
Presets are applied through:
SSHStyleManager.API.Preset
Applying a Preset at Runtime
The core function is:
API.Preset.Apply(SSHStyleAsset)
This replaces the entire style state of the scene.
It updates:
- Environment
- Skybox
- Outlines
- All shaders
in one operation.
This is how:
- Time of day
- Weather
- Biomes
- Interior / exterior
- Mood systems
are implemented.
Accessing a Preset in Code
An SSHStyleAsset is a normal Unity ScriptableObject.
You reference it like any other asset.
Example pattern:
public SSHStyleAsset dayStyle;
public SSHStyleAsset nightStyle;
These fields can be assigned in the inspector.
Applying It Through the API
At runtime:
var api = SSHStyleManager.API;
if (api == null) return;
api.Preset.Apply(dayStyle);
This pushes the preset into the active style system.
Everything in the scene updates instantly.
Blending Presets
Presets are not meant to be switched only.
They are designed to be:
- Read
- Interpolated
- Reapplied
The demo’s day/night system:
- Reads multiple
SSHStyleAssetvalues - Interpolates between them
- Writes the blended result into the style system through the API
This allows:
- Smooth sunrise and sunset
- Weather transitions
- Biome fades
Presets are the data.
Your scripts provide the animation.
Multiple Presets in a Project
A typical project will have presets like:
- Day
- Night
- Sunset
- Foggy
- Interior
- Cave
- BossFight
These are all just SSHStyleAsset files.
They can be:
- Loaded manually in the editor
- Driven by timeline
- Blended by gameplay systems
- Assigned per scene
There is no limit to how many presets you create.
Summary
Presets are the style currency of Hardline.
- Artists create looks in the inspector
- Those looks are saved as
SSHStyleAsset - Developers apply and blend them using
API.Presetor seperate API calls.