A)
if your “car” is run by physic you may able to do it by adding “joint” on the tire.
joint can be broken under certain amount of force (or distance)
so the force can be append on the car, before it break, to drag some else base on the movement.
B)
there is some other way like, set the “Car” transform.parent to the moving platform to do the trick.
since the parent movement also affect on child objects.
but I doubt if it help (test it ~).
C)
however my personal suggestion is complete wipe out physic (I’m also working on it.)
totally control the “Car” by script movement.
I was able to doing something like this by following code. (shallow)
To detect the platform movement & rotation different between fixedUpdate.
assume you cache it (e.g. m_PlatformData)
rotateDiff = Quaternion.FromToRotation(m_PlatformData.lastGroundRotation * Vector3.forward, ground.transform.rotation * Vector3.forward);
Vector3 from = m_PlatformData.lastAvatarPosition;
Vector3 to = ground.transform.TransformPoint(m_PlatformData.relatedPosition);
posDiff = to - from;
therefore, you can apply the additional movement based on the platform movement in your movement script.
e.g.
A) It uses a framework, adding things would mean tweaking a lot of other things
B) Your doubts are correct
C) That’s interesting what you’ve did there, but would be way too time consuming for my case
I got an answer on Stackoverflow for who’s interested
If you have an animation that rotates the plane, delete it.
Add a Rigidbody to the plane and lock the axes you don’t want rotated
Not stick, just act as it would under normal gravity. In reality that plane would rotate your car and even throw it off the plane if the rotation is fast enough. In reality that tube would turn your car around and at some point would flip your car over. That’s what the steps above do. I already have it implemented