Unity animation is great to control state that is dependent of animation flow. But only floats (and Vector2,3,4, Color, Quaternion) and boolean variables can be modified through animations. For anything else we have to use events, which aren't as nice-looking and practical, specially when we start having lots of them. For integer variables we can roughly turn them as floats, but for example I felt the need of having a string that changes often during animation, and I can't record the changes through editing it in the inspector for the desired keyframes. My only option is using a lot of event calls. I understand that an AnimationCurve for such property wouldn't make much sense (neither for bools do, but bools are animatable), but it would be very handy if we could change it on the fly using the animation system. Speaking of that, another need I felt was to call events with Vector3 parameters, for example to add force to a rigidbody at certain keyframes. Since it's not possible, I had to create 3 events (one for x, one for y and one for z), contributing once more for events hell. It would be great if we could use custom animatable properties and event parameters as long as they are serializable.