Skip to content

t1k:unity:rendering:animation-vfx

FieldValue
Modulerendering
Version3.1.7
Effortmedium
Tools

Keywords: animation, unity, VFX, visual effects

/t1k:unity:rendering:animation-vfx

  • Setting up Animator controllers and state machines
  • Creating UI animations and tween sequences
  • Optimizing particle systems for mobile
  • Integrating Spine or 2D skeletal animation
  • VFX pooling and lifecycle management
TaskReference
Animator, blend trees, layers, masksAnimator System
Tween sequences, easing, asyncDOTween Patterns
Particle systems, mobile VFX, GPU particlesParticles & VFX

Note: Shader Graph patterns → see unity-shader-graph skill. Camera/post-processing → see unity-urp skill.

  1. LitMotion for this project — DOTS-AI uses LitMotion; DOTween patterns apply to MonoBehaviour-only projects
  2. Animator for skeletal — Character animation, complex state machines
  3. Kill tweens on destroy — Always transform.DOKill() / LitMotion dispose in OnDestroy
  4. Particle budgets — Max 50 particles/system, max 5 active systems on low-end
  5. Pool particle systems — Never Instantiate/Destroy VFX at runtime

DOTween Service (MonoBehaviour projects only)

Section titled “DOTween Service (MonoBehaviour projects only)”
public sealed class TweenService
{
public Sequence FadeInPanel(CanvasGroup group, float duration = 0.3f)
{
group.alpha = 0f;
group.gameObject.SetActive(true);
return DOTween.Sequence()
.Append(group.DOFade(1f, duration).SetEase(Ease.OutQuad))
.Join(group.transform.DOScale(1f, duration).From(0.9f));
}
}
public sealed class VfxPool : IDisposable
{
readonly Dictionary<string, ObjectPool<ParticleSystem>> _pools = new();
public ParticleSystem Play(string vfxId, Vector3 position)
{
var ps = _pools[vfxId].Get();
ps.transform.position = position;
ps.Play();
return ps;
}
}
  • Animator state hash vs string: Animator.Play("StateName") allocates; use Animator.Play(Animator.StringToHash("StateName")) and cache the hash
  • Particle prewarm on mobile: ParticleSystem.Prewarm simulates the full system on enable — causes frame spikes on low-end devices. Disable prewarm and let particles build naturally
  • VFX Graph requires compute shaders: VFX Graph does not work on devices without compute shader support (older Android, WebGL). Fall back to ParticleSystem for broad compatibility
  • unity-shader-graph — Shader Graph, material effects, SRP Batcher
  • unity-vfx-graph — GPU particle VFX Graph
  • litmotion — LitMotion tweening (this project’s tween library)
  • unity-mobile-ui — UI animations, transitions
  • unity-game-patterns — Object pooling for VFX