# Unity Vfx Graph

> Unity Visual Effect Graph skill for GPU particle systems, procedural effects, and high-performance visual effects.

- Skill: `a5c-ai/unity-vfx-graph` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add a5c-ai/unity-vfx-graph`
- Raw SKILL.md: https://api.skillmd.com/api/skills/a5c-ai/unity-vfx-graph/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: a5c-ai (https://skillmd.com/u/a5c-ai)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/a5c-ai/unity-vfx-graph

---


# Unity VFX Graph Skill

Visual Effect Graph development for GPU-accelerated particle systems in Unity.

## Overview

This skill provides capabilities for creating high-performance visual effects using Unity's Visual Effect Graph, leveraging GPU compute for millions of particles.

## Capabilities

### Particle Systems
- Create GPU particle systems
- Configure spawn, initialize, update, output contexts
- Handle particle attributes
- Implement particle collision

### Procedural Effects
- Use noise and turbulence
- Implement SDF-based effects
- Create mesh sampling effects
- Build camera-based interactions

### Visual Authoring
- Design effects in VFX Graph editor
- Create subgraphs for reuse
- Implement property sheets
- Build event-driven effects

### Integration
- Connect to C# scripts
- Handle events and parameters
- Integrate with Timeline
- Manage performance budgets

## Prerequisites

- Unity 2021.3+ with VFX Graph package
- SRP (URP or HDRP) project
- Compute shader capable hardware

## Usage Patterns

### Spawning Particles from Code

```csharp
public class VFXController : MonoBehaviour
{
    [SerializeField] private VisualEffect vfx;

    void Start()
    {
        // Set properties
        vfx.SetFloat("SpawnRate", 100f);
        vfx.SetVector3("EmitterPosition", transform.position);
    }

    public void TriggerBurst()
    {
        // Send event
        vfx.SendEvent("OnBurst");
    }
}
```

### Property Binding

```csharp
// Expose VFX properties via C# bindings
vfx.SetInt("ParticleCount", 1000);
vfx.SetGradient("ColorOverLife", gradient);
vfx.SetTexture("ParticleTexture", texture);
```

## Best Practices

1. Use subgraphs for reusable components
2. Profile GPU performance
3. Set particle count limits
4. Use LOD for distant effects
5. Optimize texture sampling

## References

- [VFX Graph Documentation](https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@latest)

