Loading store…
Gita Assets

Gatling - Projectile & Ballistics System

Gatling - Projectile & Ballistics System · Unity 插件 · Preview 1

Asset description

💬 Join the AnkleBreaker Community! 💬 Got a question, feedback, or a feature you'd love to see?👥 Discord: 👉 💥 Every Projectile, In One System 💥 Shooters, action games and physics sandboxes all need the same thing: spawn, simulate and pool projectiles, resolve hits, and present muzzle, impact and explosion FX - usually rebuilt from scratch on every project. Gatling ships that whole stack as ScriptableObject-authored, damage-agnostic content. You author weapons, projectiles, impact behaviours and surface materials as assets, drop one rig in the scene, and fire - from a component, from three lines of code, or from your own netcode. Everything runs on a central fixed-step simulation with swept, anti-tunnelling collision, so a round never passes through a wall because the frame was long. It never applies damage. An impact is an event on a bus carrying the physical context - speed, energy, angle, surface, damage multiplier - and your game decides what a hit means. There is no health component to inherit from and no assumption about your gameplay. And going online later is not a rewrite. This package is networking-agnostic by design: it carries no networking dependency at all, so a solo project never sees a line of networking code - but it does carry the seams a netcode needs. Server-authoritative multiplayer is the separate AnkleBreaker Gatling FishNet module, which drives these exact same assets. It is not included here, and no assembly in this package references FishNet. 🎯 Real Ballistics, Out of the Box 🎯 Ballistic zeroing - you configure a hit distance, never an angle. Set a weapon to zero at 50 m and the solver finds the launch angle for you, in 2D or 3D, and it holds at any simulation step rate. Four modes (Absolute, Adjustable, Adaptive, None), plus a high-arc solver for mortars and catapults and a quantised solution cache so it stays cheap. In third person the muzzle sits off to the side of a centred crosshair - the shot still converges on what you aimed at. Hitscan and travel time in one pipeline. The same weapon asset can resolve instantly up close and simulate beyond. Hitscan fast-forwards the real trajectory through the same maths, so a tracer draws the arc the shot flew instead of the straight chord between its ends. Impact behaviours you compose, not code. Stop, Stick, Bounce, Ricochet, Explode, Penetrate - ordered, shareable rule assets, gated by surface layer, impact speed, energy and grazing angle, and falling through to the next rule when one cannot apply. The same round skips off a plate it grazes and drills the plate it meets square, because the gate is the angle and not the prop. Penetration that reads the wall. Surface materials carry an entry threshold, a flat and a per-metre speed loss, a maximum penetrable thickness and an exit floor. Thickness is measured on the collider's own shape, so a round travelling along a beam is not mistaken for a round going through it. AP ammunition becomes a data change - unlimited material types, at zero Unity-layer cost. Wind that bends the shot after it leaves the muzzle. Author it as a preset, a scene component, a Unity WindZone with no integration code to write, or a box or sphere volume for a wind that only exists somewhere. It is a pure function of the simulation clock - no state, no random - so a gust is reproducible, and it runs across the job system: Burst-compiled when Burst is installed, ordinary C# jobs when it is not. 2D and 3D, not 3D with a 2D mode. One SimulationSpace toggle switches the gravity source and the collision backend. Zeroing, penetration, ricochet, wind, tracers, pooling - every feature works in both dimensions, with dedicated 2D side-view and 2D top-down samples. 🧩 Core Building Blocks 🧩 ProjectileSimulationManager - one deterministic, fixed-step, data-oriented sim per scene, tunable from 10 to 240 Hz. ScriptableObject content - weapons, projectiles, impact rules and surface materials are assets, shareable and diffable, and the same assets drive solo and networked play. ProjectileEmitter - a no-code component for turrets, traps and AI: set a fire point, fire from UnityEvents or animation events, preview the arc with a Scene View gizmo before you press Play. Static zero-alloc event bus - fire requests in; fired, impact, expired, bounced, penetrated, exploded, stuck, out-of-range and removed out. Every hit reports object, point, normal, velocity and kinetic energy. No singleton to reference. 🚀 Why Gatling? 🚀 Damage-agnostic - it reports the physics of every hit and never imposes a damage model, so it drops into any combat system. Three fidelity modes - pure deterministic, hybrid PhysX handover on impact, or full Rigidbody, chosen per projectile. Impact marks that ride targets - decals, stuck arrows and planted bodies follow the platform, vehicle or player they hit, and transfer onto ragdolls and wrecks at their exact world pose. Built to scale - pooled from end to end, with no steady-state allocation. Measured on the shipped stress bench: about 10 800 live simulated projectiles at 60 fps, and about 2 500 once every one of them owns a GameObject - which is exactly what the distance and frustum culling, the far LOD band and the GameObject-free instanced tracer are there for. Profiler-honest - Gatling.Step, Gatling.Visuals and Gatling.Wind markers, plus zeroing-cache hit-rate counters, so a busy frame is attributed rather than guessed at. Headless-ready - Mute Audio, Mute Visuals and Mute Effects run the package with no presentation at all: a dedicated server fires, sweeps and lands the same shots without instantiating a single visual. 🛠 In the Editor 🛠 Configuration window - weapons, projectiles and surface materials in one place, with a live trajectory preview. An empty Default Projectile slot creates and assigns a definition in one click. Test Fire - fires the asset you are tuning down a graduated range, in 3D, 2D side view or 2D top down, past a station of the four penetrable materials at that layout's own ballistic scale. Documentation window - 41 pages across four tabs (Get Started, Manual, Scripting, Reference), searchable, with a guided tour and one-click links into the windows, menu items and assets each page describes. Examples window - browse every sample scene and open it. Themed inspectors for every Gatling component and asset, and a dependencies installer that never installs anything without an explicit click. 📦 What Is in the Box 📦 The whole Projectile system presented above. 13 sample scenes - three showcase halls (3D, 2D side view, 2D top down), a bullet-hell arena, a staged battlefield, the 3D / 2D / third-person ranges, penetration, thrown objects, traps and turrets, wind, and a stress bench. Pooled native effects and audio - muzzle, impact and explosion slots driving ParticleSystem prefabs (or VFX Graph assets when that package is installed), and fire, flight-loop, impact and explosion audio on pooled sources with a voice budget. Switch them off per definition and drive FMOD or Wwise from the same events instead. AI Skill to allow agents to understand and use that package easily (need a Unity MCP) Full C# source. No DLLs. 🛠️ We also offer other quality & productivity tools for Maps, Cinematic Cameras, Manager Initialization, Radial Menu and more. Unity Version: 6000.0.41f1 (Unity 6.0 LTS) and newer Git: required to install our free dependencies in one click - Unity's Package Manager fetches them from a Git URL and runs Git to do it. Without Git you install them by hand instead. Required Dependencies: AnkleBreaker Core and AnkleBreaker Utils Inspector - both free. The Dependencies Installer opens on import and installs both in one click, never on your behalf. Until they are present Gatling's assemblies are left out of the compilation rather than failing, so the project imports with zero errors. Optional Dependencies: AnkleBreaker Managers Loader (Gatling's managers boot through it when present and on their own when not), Burst (the wind and sweep jobs are Burst-compiled when installed and run as ordinary C# jobs when not), VFX Graph (effect slots then accept VisualEffect prefabs as well as ParticleSystems, detected automatically). Render Pipelines: The runtime is pipeline-independent - its code draws through your own materials and standard ParticleSystems, and ships no shaders or materials of its own; the two unlit shaders and every material in the package are sample and starter content. The sample environment art is authored for Built-in; in a URP or HDRP project Gatling offers to convert it on import, or run Tools > AnkleBreaker > Gatling > Material Converter > Convert Sample Materials yourself. Your own materials are never touched. On HDRP the sample EFFECT shaders are not covered (they declare no LightMode tag, which HDRP ignores): props and environment convert and render, sample impacts, trails and marks do not - assign your own effect prefabs to the same slots. Scripting Backend: Mono / IL2CPP Platforms: All platforms supported by Unity Physics: 2D and 3D collision backends behind ICollisionBackend, selected by one SimulationSpace toggle. Swept anti-tunnelling collision, batched as one parallel job per step. Input: Runs under any Active Input Handling setting - legacy Input Manager, Input System package, or both. No hard dependency on the Input System. Namespaces: AnkleBreaker.Gatling - one using covers the whole runtime API - alongside AnkleBreaker.Gatling.Managers, .InputSystem, .Examples and .TestRange, and AnkleBreaker.Gatling.Editor with its editor sub-namespaces. Zeroing Modes: 4 - Absolute, Adjustable, Adaptive, None, plus a high-arc lobbed solver and a quantised solution cache Impact Behaviours: 6 - Stop, Stick, Bounce, Ricochet, Explode, Penetrate. Ordered rule assets, gated by surface layer, impact speed, energy and grazing angle, falling through to the next rule when one cannot apply. Penetration: Per-material entry threshold, flat and per-metre speed loss, maximum penetrable thickness and exit floor. Thickness is read from the collider's own shape. Simulation Fidelity: 3 modes - Deterministic, Handover-on-impact (pooled kinematic body handed to the physics engine when it lands), Full Rigidbody Simulation Rate: 10-240 Hz - the zeroing guarantee holds at any rate Wind: Four authoring routes (preset asset, scene component, Unity WindZone, box or sphere volume), a pure function of the simulation clock so a gust is reproducible, position-dependent sources on the job system, capped at 8 local sources and said out loud rather than billed silently Performance: Measured on the shipped stress bench - about 10 800 live simulated projectiles at 60 fps, about 2 500 when each one owns a GameObject visual. Pooling throughout (projectiles, visuals, Rigidbody bodies, effects, audio sources, tracers), distance and frustum culling with hysteresis, a far LOD band, and a GameObject-free instanced tracer mode. Gatling.Step, Gatling.Visuals and Gatling.Wind Profiler markers. Editor Windows: Configuration (Weapons / Projectiles / Surfaces) with a live trajectory preview and a Test Fire bar that sends the asset you are tuning down a graduated range in 3D, 2D side view or 2D top down, Documentation (41 pages, four tabs, searchable, guided tour), Examples, Welcome, Dependencies Installer, Material Converter Sample Content: 13 sample scenes plus a Test Range, an optional Managers Loader sample tier, 5 ready-made player rigs (FPS, TPS, FPS+TPS, 2D side view, 2D top down), 3D and 2D simulation rigs, and a starter weapon and projectile Unit Tests: 166 test files - EditMode throughout, plus one PlayMode fixture Source Code: Full C# source included. No DLLs. Networking: Not included. This package carries no networking dependency: no assembly references FishNet, there is no using and nothing to install - the module is named in the documentation and in the package keywords, and that is the whole of it. Damage: Not included, by design. Gatling reports impacts with their physical context; your game decides what they mean.

Gatling - Projectile & Ballistics System · Unity 插件 · Preview 3Gatling - Projectile & Ballistics System · Unity 插件 · Preview 4Gatling - Projectile & Ballistics System · Unity 插件 · Preview 5Gatling - Projectile & Ballistics System · Unity 插件 · Preview 6Gatling - Projectile & Ballistics System · Unity 插件 · Preview 7Gatling - Projectile & Ballistics System · Unity 插件 · Preview 8Gatling - Projectile & Ballistics System · Unity 插件 · Preview 9Gatling - Projectile & Ballistics System · Unity 插件 · Preview 10Gatling - Projectile & Ballistics System · Unity 插件 · Preview 11Gatling - Projectile & Ballistics System · Unity 插件 · Preview 12Gatling - Projectile & Ballistics System · Unity 插件 · Preview 13Gatling - Projectile & Ballistics System · Unity 插件 · Preview 14Gatling - Projectile & Ballistics System · Unity 插件 · Preview 15Gatling - Projectile & Ballistics System · Unity 插件 · Preview 16