Highlight Plus 2 delivers a highly optimized, feature-rich selection and outline system engineered specifically for Unity. Built on optimized hand-written custom HLSL shaders rather than heavy Shader Graph containers, the asset operates with minimal runtime CPU/GPU overhead across the Universal Render Pipeline (URP), High Definition Render Pipeline (HDRP), and the legacy Built-in Render Pipeline.
The architecture relies on a hybrid execution model. Depending on the target hardware and effect configurations, it utilizes object-space mesh expansion, stencil-buffer masking, or dedicated depth/screen-space post-processing passes. In URP and HDRP, it integrates cleanly via dedicated Scriptable Render Features (or ScriptableRendererPass injections), eliminating the need to alter standard camera stack behaviors or break existing geometry rendering passes.
ZTest Greater) to display target silhouettes when occluded by environmental colliders.Outline effects can quickly saturate fill-rate limits and increase draw calls if implemented incorrectly. Highlight Plus 2 minimizes performance overhead through strict depth-buffer checks and render-texture downsampling options.
On mobile architectures utilizing Tile-Based Deferred Rendering (TBDR) GPUs (e.g., Apple Silicon, ARM Mali, Adreno), full-screen blits and frame-buffer fetch operations incur severe bandwidth penalties. Highlight Plus 2 mitigates overdraw by providing downscaled glow buffers (Quarter-Resolution and Half-Resolution rendering modes) and allowing developers to force pure stencil-based object extrusions on low-spec hardware profiles.
CameraDepthTexture or custom depth prepass textures, ing expensive per-pixel raymarching.The central point of interaction for developers is the HighlightEffect component. This component can be attached dynamically to individual GameObjects, managed globally via HighlightManager, or controlled programmatically via C# scripts. Rather than creating unique material instances that disrupt draw call batching, Highlight Plus 2 utilizes per-draw dynamic shader properties and internal MaterialPropertyBlock buffers where applicable.
The following C# script demonstrates how to dynamically attach, configure, and toggle highlight effects on interactive objects at runtime:
using UnityEngine;
using HighlightPlus;
[RequireComponent(typeof(Collider))]
public class InteractiveObjectHandler : MonoBehaviour
{
[Header("Highlight Style Configurations")]
[SerializeField] private Color hoverOutlineColor = Color.yellow;
[SerializeField] private Color selectionOutlineColor = Color.cyan;
[SerializeField] private float defaultOutlineWidth = 0.35f;
private HighlightEffect highlightComponent;
private bool isSelected = false;
private void Awake()
{
// Get existing HighlightEffect or attach a new instance dynamically
highlightComponent = GetComponent<HighlightEffect>();
if (highlightComponent == null)
{
highlightComponent = gameObject.AddComponent<HighlightEffect>();
}
// Initialize component parameters via script
highlightComponent.outlineColor = hoverOutlineColor;
highlightComponent.outlineWidth = defaultOutlineWidth;
highlightComponent.glow = 0.5f;
highlightComponent.seeThrough = SeeThroughMode.WhenOccluded;
highlightComponent.seeThroughIntensity = 0.75f;
// Ensure effect starts in a disabled state
highlightComponent.highlighted = false;
}
private void OnMouseEnter()
{
if (isSelected) return;
highlightComponent.outlineColor = hoverOutlineColor;
highlightComponent.highlighted = true;
}
private void OnMouseExit()
{
if (isSelected) return;
highlightComponent.highlighted = false;
}
public void SetSelectionState(bool selected)
{
isSelected = selected;
if (isSelected)
{
highlightComponent.outlineColor = selectionOutlineColor;
highlightComponent.highlighted = true;
// Trigger a temporary pulse effect on selection
highlightComponent.HitFX(Color.white, 0.4f);
}
else
{
highlightComponent.highlighted = false;
}
}
}
| Category | VFX / Shaders |
|---|---|
| Latest Version | v34.4.1 (7 tracked releases) |
| File Size | 30.64 MB |
| Added to Platform | February 5, 2026 |
| Views | 16 views |
| Downloads | 7 downloads |
| Favourites | 2 favourites |
| Official Store | Buy Original License on Unity Asset Store → |
| Issue with Package? | Report Broken Link → |