Inspector Settings
Main Settings
Render Mode
Type: Enum (VertexExpansion / MetricScale)
Determines how the outline is rendered.
- VertexExpansion: Expands along vertex normals. Best for characters.
- MetricScale: Scales uniformly in world space. Best for cubes.
Outline Width
Type: float (0-0.3)
Default: 0.05
The thickness of the outline effect. Range: 0 (no outline) to 0.3 (very thick).
Enable On Start
Type: bool
Default: true
If true, the outline will be visible when the scene starts. If false, you must call Show() via script to make it visible.
Color Style
Use Gradient
Type: bool
Default: false
Enables gradient coloring from top to bottom. If false, uses solid color from “Color Top”.
Color Top
Type: Color
Default: Yellow (RGBA: 1, 0.92, 0.016, 1)
- When gradient is enabled: Color at the top of the object
- When gradient is disabled: The solid outline color
Color Bottom
Type: Color
Default: Red (RGBA: 1, 0, 0, 1)
Color at the bottom of the object (only used when gradient is enabled).
Animation
Pulse Width
Type: bool
Default: false
Enables pulsing animation that varies the outline width over time. Creates a breathing or heartbeat effect.
Pulse Speed
Type: float
Range: 0.1 to 10
Default: 2
Speed of the pulse animation. Higher values = faster pulsing. Only used when “Pulse Width” is enabled.
Scroll Gradient
Type: bool
Default: false
Scrolls the gradient colors vertically over time. Creates a moving rainbow or energy effect. Requires “Use Gradient” to be enabled to be visible.
Scroll Speed
Type: float
Range: 0.1 to 5
Default: 0.5
Speed of the gradient scrolling effect. Only used when “Scroll Gradient” is enabled.
Compatibility Notes
2D Objects (SpriteRenderer)
- Uses a specialized 2D shader that scales the sprite
- Works with any sprite, including sprite sheets
- Outline width is applied as a scale multiplier
3D Objects (MeshRenderer / SkinnedMeshRenderer)
- Uses a dual-pass rendering approach
- Renders the outline first, then the original object
- Compatible with any material and shader
Material Property Blocks
- The system uses Material Property Blocks to avoid creating material instances
- Original materials are never modified
- Safe to use with shared materials across multiple objects