Table of Contents

Settings

Saneject settings control editor behavior for injection, inspector presentation, logging, and code generation.

The Settings window has two tabs:

  • User Settings: personal settings stored on your machine.
  • Project Settings: shared settings stored in the Unity project.

Open the Settings window

Use the Unity main menu:

  • Saneject/Settings

This opens the Saneject Settings editor window.

User settings vs project settings

Type ScopeScopeMonoBehaviour that declares bindings for a part of your hierarchy. Storage Shared with team
User Settings Current Unity user on current machine EditorPrefs keys with prefix SanejectSettings_ No
Project Settings Entire Unity project ProjectSettings/Saneject/ProjectSettings.json Yes, if the file is version controlled

Important behavior:

  • Settings are editable only in Edit Mode.
  • Outside the Unity Editor, settings access falls back to default values.
  • Reset actions show a confirmation dialog before applying changes.

User settings

User settings are stored locally on your machine using EditorPrefs.

User settings

Ask Before Injection

All of these default to true, which shows a confirmation dialog before injection runsInjection runOne execution of the injection pipeline for a chosen selection, context walk filter, and active set of targets..

Setting What it controls
Scene Ask before injecting the current scene.
Prefab Asset Ask before injecting the current prefab assetPrefab assetReusable prefab definition in the Project window..
Selected Scene Hierarchies Ask before injecting selected scene hierarchies.
Batch Injection Ask before batch injectionBatch injectionRunning injection across multiple selected scene and prefab assets in one operation. runs.

These toggles affect injection commands and batch commands described in Injection toolbar & context menus and Batch injection.

Inspector

All of these default to true.

Setting What it controls
Show Injected Fields & Properties Shows members marked with [Inject] and [field: Inject] in inspectors.
Show Help Boxes Shows explanatory Saneject help boxes in inspectors.

Play Mode Logging (Editor Only)

All of these default to true.

Setting What it controls
Log On Proxy Instance Resolve Logs when a runtime proxyRuntime proxyScriptableObject placeholder asset (RuntimeProxy<TComponent>) injected into interface members at editor time and swapped to the real instance during scope startup. resolves its runtime instance.
Log On Global Scope Register & Unregister Logs global registrationGlobal registrationEntry added to GlobalScope at runtime, keyed by the component's concrete type and owned by the caller that registered it. lifecycle events in GlobalScope.

Editor Logging

All of these default to true.

Setting What it controls
Clear Logs On Injection Clears the Unity Console before an injection runInjection runOne execution of the injection pipeline for a chosen selection, context walk filter, and active set of targets. starts.
Log Injection Summary Writes end-of-run summary logs.
Log Unused Bindings Warns when bindingsBindingInstruction declared in a Scope that tells Saneject what to resolve, how to inject it, and where to search. were declared but not used in a run.
Log Unused Runtime Proxies On Domain Reload On domain reload, scans for runtime proxyRuntime proxyScriptableObject placeholder asset (RuntimeProxy<TComponent>) injected into interface members at editor time and swapped to the real instance during scope startup. assets and scripts that are not referenced by any scopeScopeMonoBehaviour that declares bindings for a part of your hierarchy. bindingBindingInstruction declared in a Scope that tells Saneject what to resolve, how to inject it, and where to search. and logs findings.

For logging semantics and output shape, see Logging & validation.

Project settings

Project settings are stored in the Unity project at ProjectSettings/Saneject/ProjectSettings.json and are version controlled if the project is under source control, which means that these settings are shared with team members.

Project settings

Context Isolation

Setting Default What it controls
Use Context Isolation false Enables strict contextContextSerialization boundary Saneject uses during injection to decide scope traversal and candidate eligibility. boundaries during resolution. When enabled, scene and prefab-instance dependencies resolve only inside the same contextContextSerialization boundary Saneject uses during injection to decide scope traversal and candidate eligibility.. Prefab assetsPrefab assetReusable prefab definition in the Project window. are always context-isolated.

For details on contextContextSerialization boundary Saneject uses during injection to decide scope traversal and candidate eligibility. behavior, see Context.

Scope File Generation

Setting Default What it controls
Generate Scope Namespace From Folder true When creating a new scopeScopeMonoBehaviour that declares bindings for a part of your hierarchy. from Assets/Saneject/Create New Scope, generates a namespace based on the scopeScopeMonoBehaviour that declares bindings for a part of your hierarchy. file's folder path.

Proxy Generation

Setting Default What it controls
Generate Proxy Scripts On Domain Reload true Automatically generates missing runtime proxyRuntime proxyScriptableObject placeholder asset (RuntimeProxy<TComponent>) injected into interface members at editor time and swapped to the real instance during scope startup. scripts on Unity domain reload.
Output Folder Assets/SanejectGenerated/RuntimeProxies Target folder for auto-generated runtime proxyRuntime proxyScriptableObject placeholder asset (RuntimeProxy<TComponent>) injected into interface members at editor time and swapped to the real instance during scope startup. scripts and assets.

Output Folder notes:

  • The folder picker accepts only folders under the current project's Assets directory.
  • If the picker selects a folder outside Assets, Saneject logs a warning and keeps the current value.
  • Typed values are sanitized to forward slashes and invalid path characters are removed.

For runtime proxyRuntime proxyScriptableObject placeholder asset (RuntimeProxy<TComponent>) injected into interface members at editor time and swapped to the real instance during scope startup. behavior, see Runtime proxy.

Reset settings to defaults

The Settings window includes two reset actions:

  • Use Default User Settings: clears Saneject user keys from EditorPrefs.
  • Use Default Project Settings: rewrites Saneject project settingsProject settingsSaneject settings shared at project scope, stored in ProjectSettings/Saneject/ProjectSettings.json and available from Saneject/Settings -> Project Settings. to defaults in ProjectSettings/Saneject/ProjectSettings.json.

Use project reset carefully because it affects all contributors who use the project settingsProject settingsSaneject settings shared at project scope, stored in ProjectSettings/Saneject/ProjectSettings.json and available from Saneject/Settings -> Project Settings. file.