Reusable level definition, ordered sequence navigation, and editor validation tools for Unity projects.
Use this package when a project needs a small ScriptableObject-based level list, predictable next-level navigation, Build Settings checks, and replaceable scene loading without bringing in a larger progression framework.
LevelDefinitionassets for stable level IDs, display names, scene references, and optional reference images.LevelSequenceassets for ordering levels and choosing an optional build start level.LevelSequenceNavigatorandLevelSequenceNavigatorBehaviourfor runtime navigation.- Replaceable scene loading through
ILevelSceneLoader. - Inspector validation for duplicate IDs, null entries, missing scene paths, and Build Settings drift.
- Explicit Build Settings sync from the
LevelSequenceinspector. - Optional build prompt and strict build blocking through Project Settings.
- Reference image capture from the active game camera.
- Minimal
Basic Level Flowsample underSamples~.
Install from Git URL in Unity Package Manager:
- Open
Window > Package Manager. - Click
+and chooseAdd package from git URL.... - Enter:
https://github.com/AweGuider/com.awedev.level-sequence.git
For a tagged release, append the tag:
https://github.com/AweGuider/com.awedev.level-sequence.git#v0.1.2
- Create one
LevelDefinitionasset per scene fromAssets > Create > AweDev > Level Sequence > Level Definition. - Assign a stable level ID, display name, and scene asset on each
LevelDefinition. - Create a
LevelSequenceasset and order the levels. - Add
LevelSequenceNavigatorBehaviourto a scene and assign theLevelSequence. - Open the
LevelSequenceasset and clickSync Build Settings. - Call
MoveToNextLevel,SetLevel, orSetLevelByIdfrom UI, triggers, or code.
Import Basic Level Flow from Package Manager to get a small menu scene, two level scenes, trigger scripts, and sample LevelDefinition / LevelSequence assets.
After importing the sample:
- Open
LS_Sample_LevelSequence. - Click
Sync Build Settingsin the inspector. - Open
Sample Menu. - Enter Play Mode and use the buttons or colored trigger zones to move through the sample flow.
The sample uses built-in Unity text components and does not require TextMesh Pro.
UnitySceneLoader is the default loader. It loads by scene name, so the target scenes must be enabled in Build Settings.
using AweDev.LevelSequence;
using UnityEngine;
public sealed class NextLevelButton : MonoBehaviour
{
[SerializeField] private LevelSequenceNavigatorBehaviour _navigator;
public void LoadNextLevel()
{
_navigator.MoveToNextLevel();
}
}Host projects can replace scene loading by implementing ILevelSceneLoader for addressables, loading screens, fades, additive scenes, save gates, or tests.
See Documentation~/level-sequence.md for the full workflow, Project Settings, Build Settings validation, reference image capture, custom scene loaders, troubleshooting, and extension points.
UnitySceneLoaderrequires level scenes to be enabled in Build Settings.- Build Settings sync mutates Build Settings only when explicitly invoked.
- Build blocking and build-sync prompts are opt-in editor tools.
- Project Settings configure editor tooling; runtime navigation uses the
LevelSequenceassigned in scene components or code. - Reference image capture is editor-only and writes PNG files under the host project's
Assetsfolder. - Addressables and custom transition flows require a custom
ILevelSceneLoader.
MIT. See LICENSE.md.