In my 8+ years building Unity games, I have seen dozens of pulse, radar, and sonar scan shaders. Most developers start by trying to render expanded mesh spheres or modifying individual object shaders to support a global wave parameter. That approach quickly becomes a maintenance nightmare when managing hundreds of unique material instances across environments and characters. World Scan FX solves this architectural headache by relying on a post-processing depth-reconstruction approach.
Instead of touching individual materials on your static props or rigged characters, this asset uses a custom pass that reads Unity's _CameraDepthTexture to reconstruct world-space positions on the fly. By calculating the distance between a designated scan origin and the reconstructed world coordinate of every pixel currently on screen, it highlights terrain geometry, low-poly props, and dynamic characters using a single, unified render feature. Honestly, this depth-based approach is the cleanest way to execute radar sweeps, detective-mode visuals, or sci-fi grid highlights without dirtying your material library.
Under the hood, World Scan FX provides a balance between raw performance and visual fidelity. Here is the technical breakdown of how the shaders and rendering features operate inside Unity's modern pipelines:
The core shader pass samples the camera depth buffer and multiplies the screen-space UV coordinates by the inverse view-projection matrix. This yields the exact 3D world position for every visible surface fragment. By comparing this reconstructed vector to an origin position (such as your player's current transform), the shader renders sharp scan lines, glowing grid overlays, and trailing energy falloffs directly over your scene.
The asset hooks cleanly into the Universal Render Pipeline via a lightweight ScriptableRendererFeature. This allows the effect to inject after opaque rendering finishes, meaning it operates smoothly with both forward and deferred rendering paths without breaking draw call batching or requiring custom depth pre-pass overrides.
Because this package operates on screen-space depth rather than individual mesh setups, it fits into almost any visual style—from highly detailed realistic scenes to low-poly indie titles.
Setting up World Scan FX inside a Universal Render Pipeline project takes less than five minutes. Here is how to configure your render pipeline and trigger a pulse from C#.
Ensure that your active URP Asset has Depth Texture enabled in the inspector. Then, select your Universal Renderer Data asset, click Add Renderer Feature, and select WorldScanRenderFeature.
Create a script to pass your player's position and trigger parameters to the renderer feature or shader material. Here is a practical controller script I use in production to drive the sweep over time:
using UnityEngine;
public class WorldScanController : MonoBehaviour
{
[SerializeField] private Material scanMaterial;
[SerializeField] private float scanSpeed = 15.0f;
[SerializeField] private float maxScanDistance = 50.0f;
private float currentRadius = 0f;
private bool isScanning = false;
private static readonly int ScanOriginProperty = Shader.PropertyToID("_ScanOrigin");
private static readonly int ScanRadiusProperty = Shader.PropertyToID("_ScanRadius");
public void TriggerScan(Vector3 originPoint)
{
scanMaterial.SetVector(ScanOriginProperty, originPoint);
currentRadius = 0f;
isScanning = true;
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.F) && !isScanning)
{
TriggerScan(transform.position);
}
if (isScanning)
{
currentRadius += Time.deltaTime * scanSpeed;
scanMaterial.SetFloat(ScanRadiusProperty, currentRadius);
if (currentRadius >= maxScanDistance)
{
isScanning = false;
scanMaterial.SetFloat(ScanRadiusProperty, 0f);
}
}
}
}
In my experience, no visual asset is completely perfect for every scenario. Here is my honest breakdown of where this package excels and where you need to be cautious.
| Category | VFX / Shaders |
|---|---|
| Latest Version | v2.2 (2 tracked releases) |
| File Size | 68.82 MB |
| Added to Platform | February 7, 2026 |
| Views | 5 views |
| Downloads | 2 downloads |
| Favourites | 0 favourites |
| Official Store | Buy Original License on Unity Asset Store → |
| Issue with Package? | Report Broken Link → |