Hi. In Unity FixedUpdate() function I call next code: Code (CSharp): public void Move(float x, float z) { Vector3 targetPosition = new Vector3(x, transform.position.y, z); foreach (Transform child in transform) { if(child.rigidbody != null ) { Quaternion targetRotation = Quaternion.LookRotation(targetPosition - child.transform.position); child.rigidbody.MoveRotation( Quaternion.Slerp(child.transform.rotation, targetRotation, Time.deltaTime * 10f) ); // NOT WORK } } rigidbody.MovePosition( Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * moveSpeed) ); } When I change child.rigidbody.MoveRotation to child.transform.rotation: Code (CSharp): child.transform.rotation =Quaternion.Slerp(child.transform.rotation, targetRotation,Time.deltaTime *10f); everything works as I espect, but as I know its very bad practice to use "transform.rotation =" for rigidbody. Parent and all its child has "IsKinematic = true"; Can you help me ? What`s wrong with child.rigidbody.MoveRotation ?
Do the child objects really need to have rigidbodies at all? Maybe you could describe what type of object you are simulating here - from the code it looks like you might be pointing wheels or guns or something but it isn't clear exactly what effect you want to create.