// GDnD wiki example // Demonstrates: a feedback preset as a ScriptableObject asset. One asset per kind of moment // (Jump, Land, Light Hit, Heavy Hit), so designers tune feel in the Project window and can keep // several versions for A/B playtests without touching code. // Related pages: [[game-feel]], [[state-pattern]], [[unity-scriptableobjects]], [[vfx-shape-and-timing]] // Unity 6 (6000.x). No packages required. // // Setup: Create > Feel > Feedback Preset, then assign the assets to FeedbackPlayer's preset slots. // Changes made to an asset in Play mode are kept in the Editor, which is what you want when tuning. using UnityEngine; namespace GDnD.Patterns.Feedback { [CreateAssetMenu(menuName = "Feel/Feedback Preset")] public class FeedbackPreset : ScriptableObject { [Tooltip("Freeze time on impact. 0 = none. A few frames (0.03-0.1 s) suits most hits.")] [Range(0f, 0.3f)] public float hitStopSeconds = 0f; [Tooltip("Camera shake strength passed to the Shake event. 0 = none.")] [Range(0f, 3f)] public float shakeForce = 0f; [Tooltip("Optional particle burst spawned at the event position.")] public ParticleSystem particlesPrefab; [Tooltip("Optional one-shot sound.")] public AudioClip sound; } }