v1.0.0-rc.8
Pre-release
Pre-release
·
468 commits
to main
since this release
First release. Unity 6000.0, assemblies Aspid.FastTools / Aspid.FastTools.Editor, prebuilt Roslyn DLLs Aspid.FastTools.Generators / Aspid.FastTools.Analyzers. Every inspector feature works in both IMGUI and UI Toolkit.
Added
Serializable Type System
SerializableType/SerializableType<T>—[Serializable]wrapper overSystem.Type, lazy resolution, implicit conversion toType,Type-taking constructor,AssemblyQualifiedName.SerializableMonoScript/SerializableMonoScript<T>— the same, referenced through the script asset so renames and moves do not break it; the player serializes the name alone.SerializableTypeBaseandISerializableTypefor polymorphic access to any wrapper.[TypeSelector]— a hierarchical type picker onstring,SerializableType/SerializableMonoScriptand[SerializeReference]fields, and on arrays / lists of them. Base-type constraints,Allow(TypeAllow),Required, member references in string arguments (Type,string,SerializableType, arrays of these, resolved live).[TypeSelectorDisplay]—Name,Group,Tooltip,Icon,Hiddenfor a type's row in the picker.ComponentTypeSelector— swaps a siblingComponentin place through a type dropdown.TypeSelectorWindowwith a publicShow(...)API: namespace tree, search, keyboard navigation, Favorites and Recent,TypeSelectorFilter(Predicate,AdditionalTypes,HideNoneOption).TypeField/InspectorTypeFieldUI Toolkit elements behind the drawers.
SerializeReference Selector
- Type dropdown on
[SerializeReference]fields, nested references included (8 levels deep); custom drawers and[Header]/[Space]/[Tooltip]are honored. - Open generic implementations: arguments inferred from the field's type arguments and interfaces, otherwise collected on a second picker page.
- Data carry-over on type switch, Copy / Paste, multi-object editing, duplicate de-aliasing.
- Shared-reference notices with Make unique, color-coded groups and member navigation.
- Drag a
MonoScriptto assign, named templates, Link to Existing, picker-backed list+, Create New Script…, Find Usages.
Missing-reference repair
- Inline Fix on a missing type, keeping the stored data; works for saved assets, Prefab Mode and scene objects.
- Smart Fix ranks the likely replacement (
[MovedFrom], same name elsewhere, casing, field-shape match). [MovedFrom]renames are shown as pending migrations with one-click Migrate all, never as violations.- Breakage notification after a script rename / delete or reimport; delete guard for scripts used as managed references; YAML diff preview before every bulk rewrite.
Workbench window (Tools → Aspid 🐍 → FastTools)
- Welcome — samples with install markers; auto-opens once per package version.
- Asset References — the asset's whole
[SerializeReference]graph from YAML withMISSING/SHAREDbadges, inline Fix, Clear for orphans, Open Source Prefab. - Project References —
Scan ProjectoverAssets/, Fix all per type with Undo, Smart Fix, Migrate all, Required violations. - Settings — all package settings with shared / per-user scope stripes and per-scope reset.
- Keyboard navigation, legends, row context menus on every tab.
- Project-wide usage index,
sr:Quick Search provider. - Build / CI gate:
IPreprocessBuildWithReportplus headlessSerializeReferenceCiGate.RunCheckwith-srGateReport,-srGateRequired,-srGateWarnOnly,-srGateFail; severityOff/Warn/Failand excluded folders in the committedProjectSettings/SerializeReferenceSharedSettings.asset.
Settings
- Project Settings → Aspid.FastTools → SerializeReference — auto de-alias, breakage detection, gate severity, excluded folders.
- Preferences → Aspid.FastTools — mirror of the Settings tab: References, Type Selector (Favorites, Recent capacity), Welcome, theme.
Analyzer diagnostics
AFT0001(error) —[TypeSelector]on an unsupported field.AFT0002(warning) —Allowon a managed reference is ignored.AFT0003(warning) — base type shares no concrete type with the field.AFT0004(error) —[SerializeReference]on aUnityEngine.Objecttype.AFT0005(warning) — no concrete serializable type satisfies the constraints.AFT0006(error) — string argument is neither a member nor a type name.AFT0007(error) — referenced member cannot supply base types.AFT0008(warning) — non-identifier string is not a valid type name.
ProfilerMarkers
this.Marker()— aProfilerMarkerunique to the call site.ProfilerMarkersGenerator— emits one marker field per call site; supports lambdas, local functions,.WithName(...)and$"..."names; compiled out withoutENABLE_PROFILER.
EnumValues
EnumValues<TValue>— serializable enum-keyed dictionary with a default value and[Flags]support.EnumValues<TEnum, TValue>— typed variant, boxing-free lookups, struct enumerator.- Drawers with inline editing and Populate Missing Enum Members.
VisualElement fluent extensions
- Fluent API on
VisualElement: layout, style, borders, colors, transitions, callbacks, USS, child management with*Ifvariants, style presets. - Helpers for
Button,BaseField<T>(SetLabelfor 29 types),Focusable,Foldout,HelpBox,Image,IMGUIContainer,IMixedValueSupport,INotifyValueChanged,IStyle,ICustomStyle, list views,Manipulators,ProgressBar,Slider,TextElement,CallbackEventHandler. - Editor:
BindTo/UnbindFrom,BindPropertyTo,SetBindingPath,SetLabelforPropertyField,AddOpenScriptCommand,GetOwnerWindow. Aspid.FastTools.VisualElements.Math—SetValue/ValueChangedforUnity.Mathematicstypes, compiled only withcom.unity.mathematics.
SerializedProperty extensions
- Typed
Set*/Set*AndApplysetters,Update,ApplyModifiedProperties,Persistent, path helpers,GetPropertyType/GetFieldInfo/GetDeclaringInstance.
Editor helpers
GetScriptName()/GetScriptNameWithIndex().- Open-script command that handles interfaces in differently named files and nested types.
InspectorNotice/InspectorNoticeGUIand the brandedAspid*UI Toolkit components.
Samples
- Types, SerializeReferences, EnumValues, ProfilerMarkers, EditorTools — one working scene (or window) each with a
README.md.
Documentation and tooling
- English and Russian docs in
Documentation/, published at https://vpdpersonal.github.io/Aspid.FastTools/. aspid-fasttoolsClaude Code plugin in Aspid.Claude.Plugins.upm/upm/<version>for stable releases,upm-previewfor prereleases.- EditMode tests for the YAML editor and the CI-gate scan.