JuiceBox is a visual animation system that uses a drag and drop interface to animate any game object.This ships with MEC free. If you have MEC Pro just re-import it after importing this package (or uncheck the MEC folder.)JuiceBox is a node-based object movement manager (OMM) that lets you build multi-step, multi-property animation sequences entirely in a visual graph editor. No Animator controllers, no animation clips, no timeline tracks, and no boilerplate code. Drop a single component on a GameObject, open the graph, and start connecting nodes.More than a tweening library. Most OMMs only offer tweening, which is a technique that was invented over fifty years ago to create animation for film. Tweens are fast and simple but they were designed for a medium where every frame is predetermined. Applied to a live game environment they have real limitations. First, tweening is inherently a 2D technique: you can tween along any single axis or arbitrary line in 3D space, but moving through full 3D space requires hacking multiple tweens together. Second, a tween's start point, end point, and duration must all be known up front. If any of those change while the tween is running (because the player moved, a target shifted, or gameplay interrupted it) the motion breaks down or looks wrong.JuiceBox solves this with three distinct effect types that cover a wider range of game motion.Tweens handle the classic case: interpolate from A to B over a fixed duration with a chosen easing curve. They run fast and look great when you know both endpoints ahead of time. They're best used for UI transitions, camera cuts, scripted sequences, or to move pieces of static geometry (for example, pressing a button on the wall as part of a scripted action.)Advances chase a target using velocity and second-order spring physics. The target can move freely in any direction and the effect follows smoothly, with tunable frequency, damping ratio, and air resistance. No axis restrictions, no fixed endpoints, no predetermined duration. The motion just converges naturally. This is what you want for anything that tracks a moving object: a health bar filling to an unknown value, a camera following a player, an enemy homing toward its target.Swings use spring dynamics for oscillating, bouncy motion like recoil, wobble, overshoot, or anything that should feel physically alive.Chain any combination of these into a single sequence. For example, tween a panel into position, then advance-track the cursor, then swing back to rest.Visual editor, scriptable where you need it. The graph editor is your primary workspace. You add effects to a filmstrip, drag to reorder, connect hook nodes and value nodes, and tune every parameter inline, but the graph doesn't box you in. Any node slot can be wired to a method on your own scripts through the delegate picker, which scans your project and lists every compatible function automatically. Use the graph for sequencing and timing, and drop into code only where your game logic demands it. i.e. a custom easing function, a hook that plays a sound on completion, or a ModifyEffectState callback that pauses an effect until a gameplay condition is met. You never have to choose between visual editing and scripted control; they compose freely within the same sequence.Works with any property on any object. JuiceBox operates on float, Vector2, Vector3, Vector4, and Quaternion values. Point it at a Transform, a RectTransform, a Material, a custom MonoBehaviour, anything with a getter and setter. The delegate picker scans your project and shows every compatible method, including instance methods, static functions, and methods on objects referenced through the scene hierarchy. Built-in helpers cover common cases like RectTransform edges, dimensions, and rotation, plus world and local position/scale plane setters.Lifecycle hooks and runtime control. Every effect has OnStart and OnDone callbacks you can wire to any method. The ModifyEffectState hook gives frame-by-frame control: pause, keep alive past its end condition, terminate, abort without triggering OnDone, or restart. Value nodes let you pass typed data (float, int, string, Vector2, Vector3, Quaternion, Rect) into hook callbacks so your logic receives context, not just a notification.Shared sequence library. Name a sequence and every component using that name stays in sync. Edit once, propagate everywhere. Automatic backup snapshots protect against accidental changes, and a restore window lets you roll back to any previous version. Once built sequences can be exported and reused on different objects.Designed for speed. The runtime uses unboxed math, type-switch dispatch, and zero allocations per frame. No virtual calls in the hot path, no garbage. The graph editor is built for fast iteration: Open it, move nodes, hit Play, and see results immediately.Ideal for UI animations, gameplay juice, procedural motion, and anything that needs to feel responsive and alive.




