So the last couple of days I've had a lot of success helping a friend port his Flash based platformer over to Unity, where we believe we can get it to run better. However, I kinda feel like I'm cheating the system right now, because I'm using a rigidbody (2d of course, since it's a 2d game) to basically get around having to program my own gravity but I'm not using it for any of the other movement (like for jumping, walking, force when the character punches, etc I just manually change the velocity). This works great for almost everything, but I wanted to add in some special kinds of platforms and environments- like sticky platforms, bouncy pads, slippery ice -and I realize I backed myself into a corner because a lot of these things I could have done with friction and different physics settings... if my rigidbody even cared about it now.
I know I can work around this by just adding a couple more states to my character or something, but I'm just curious... how did some of you do it? How do you achieve these mechanics?