The [WInLineEditor] attribute embeds the inspector for object references (ScriptableObjects, Materials, Components, Textures, etc.) directly below the field. No more clicking through to edit configuration; everything stays in view.
Render preview area (if target editor supports it)
previewHeight
64
Height of preview area when enabled
enableScrolling
true
Wrap inspector body in scroll view
minInspectorWidth
520
Width threshold for horizontal scrollbar (0 = disabled)
When an object is assigned, the header omits a field label that is empty or contains only whitespace, including control characters and Unicode spaces. Nonblank labels keep their exact spacing, and object names stay unchanged. When no object is assigned, the original field label is preserved.
usingUnityEngine;usingWallstopStudios.UnityHelpers.Core.Attributes;publicsealedclassAbilityConfig:ScriptableObject{}publicclassWInLineEditorAnimation:MonoBehaviour{// Animation applies to foldout modes only[WInLineEditor(WInLineEditorMode.FoldoutCollapsed)]// AnimatedpublicAbilityConfiganimatedFoldout;[WInLineEditor(WInLineEditorMode.AlwaysExpanded)]// No animationpublicAbilityConfignoAnimation;}
Visual Reference
Smooth expand/collapse animation with configurable speed
[WGroup("Visual Settings")][WInLineEditor]publicMaterialmaterial;// In group[WInLineEditor][WGroupEnd]// texture IS included, then group closespublicTexture2Dtexture;// In group (last field)[WGroup("Audio Settings")][WInLineEditor][WGroupEnd]// clip IS included, then group closespublicAudioClipclip;// In group (last field)
publicsealedclassFixedConfiguration:ScriptableObject{}// When the reference shouldn't change, hide the picker[WInLineEditor(drawObjectField: false)]publicFixedConfigurationconfig;
usingUnityEngine;usingWallstopStudios.UnityHelpers.Core.Attributes;[CreateAssetMenu(menuName = "Game/Ability Config")]publicclassAbilityConfig:ScriptableObject{publicstringdisplayName;publicSpriteicon;publicfloatcooldown=1f;publicfloatdamage=10f;publicGameObjecteffectPrefab;}publicclassCharacterAbilities:MonoBehaviour{[WGroup("Primary Abilities")][WInLineEditor(WInLineEditorMode.FoldoutExpanded)]publicAbilityConfigprimaryAttack;// In group[WInLineEditor(WInLineEditorMode.FoldoutCollapsed)][WGroupEnd]// secondaryAttack IS included, then closespublicAbilityConfigsecondaryAttack;// In group (last field)[WGroup("Ultimate")][WInLineEditor(WInLineEditorMode.FoldoutCollapsed, inspectorHeight: 250f)][WGroupEnd]// ultimate IS included, then closespublicAbilityConfigultimate;// In group (last field)}