Physics or Character Controller?

I’m about to start implementing some platforming and puzzle mechanics into the game I’ve been working on and I’m not very experienced with Unity’s physics system. The type of game mechanics I’m interested in implementing range from moving platforms, picking up and putting down objects, riding a falling platform. With these types of interactions do you recommend solving them via kinetic parenting solutions or using a physics solution?

I’m currently prototyping a type of platform that moves in the direction the player lands on the top surface. The idea is that they could ride the platform as it topples over in the direction they chose to land on. Using a character joint and constraints to mimic a ball and socket have proved the closest results but its very noisy (throws the player upward when odd angles are landed). I’m starting to wonder if it wouldn’t be easier to determine the area the player landed and apply movement in the same trajectory as the player is moving as opposed to relying on the weight of the player causing a force at its impact point.

Hoping someone with much more experience in Unity physics has some advice before I head too far down a path. Thanks!

I tried both ways and decided that CharacterController is a close system that you can’t change much. Physics gives you more freedom, but you can have some troubles. For example, if you have camera, following the character - you can see a tiny but annoying jitter. You can set Rigidbody Interpolation to Interpolate, but it’s work fine only in Unity 5. I think the best start will be to research this demo project

It has a really nice and simple PlayerController that you can implement for 3D platformer as well.