Getting Started
Overview
Universal Outline System is a flexible rendering solution for adding outlines and highlights to both 2D and 3D objects. It works without modifying your original shaders or materials, making it perfect for selection feedback, object highlights, and visual effects.
Requirements
- Unity 2021.3 or later
- Any Render Pipeline (Standard, URP, HDRP)
- Works with both 2D Sprites and 3D Meshes
Compatibility
Supported Renderers
✓ SpriteRenderer (2D sprites in world space)
✓ MeshRenderer (3D objects, static meshes)
✓ SkinnedMeshRenderer (3D animated characters)
Not Supported
✗ Canvas UI elements (Image, Text, Button, etc.)
✗ UI components using CanvasRenderer
✗ TextMeshPro UI components
IMPORTANT: This system is designed for world-space and screen-space camera objects. For Canvas UI outlines, use Unity’s built-in UI Outline component or TextMeshPro’s outline feature. See “05_Troubleshooting.txt” for details.
Installation
- Import the Universal Outline System package into your Unity project
- The package will be located at:
Assets/QuickSetup/UniversalOutlineSystem/
Basic Setup
Step 1: Add the Component
- Select any GameObject with a Renderer (SpriteRenderer, MeshRenderer, or SkinnedMeshRenderer) in the Hierarchy
- Click Add Component > Universal Outline > Universal Outline
Step 2: Configure the Outline
- In the Inspector, set your desired “Outline Width” (0-0.3)
- Choose your “Color Style” (solid color or gradient)
- Select the appropriate “Render Mode” for your object type
Step 3: Enable the Outline
- Check “Enable On Start” to show the outline when the scene starts
- Or use the runtime API to control visibility via script
Choosing the Right Render Mode
VertexExpansion
- Uses vertex normals to expand the outline
- Best for: Characters, organic shapes, complex meshes
- Provides smooth, natural-looking outlines
MetricScale
- Uses world-space scaling
- Best for: Cubes, primitives, simple geometric shapes
- More consistent outline width on flat surfaces
Testing
- Press Play
- The outline should appear around your object automatically
- Adjust the width, color, and animation settings in real-time
- Use the runtime controls in the Inspector while playing to test Show/Hide