# PublishTransform()

> Applies the Rigidbody.position and Rigidbody.rotation of the Rigidbody to the corresponding Transform component.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.6/script-reference/unityengine.md)
* **Assembly:** UnityEngine.PhysicsModule

```csharp
public void PublishTransform()
```

### Remarks

This is more efficient than setting [Transform.position](/engine/6000.6/script-reference/unityengine/transform/position.md) and [Transform.rotation](/engine/6000.6/script-reference/unityengine/transform/rotation.md) manually.

Note: This method doesn't update the child Transforms. It should be called from the topmost Transform, down the hierarchy.

```csharp
using UnityEngine;

public class PositionTracker : MonoBehaviour
{
    private PhysicsScene m_SomeScene;
    private Rigidbody m_Rigidbody;

    public void SimulateTrajectory(float totalTime)
    {
        m_SomeScene.RunSimulationStages(0f, SimulationStage.PrepareSimulation);

        for (int i = 0; i < totalTime / Time.fixedDeltaTime; i++)
            m_SomeScene.RunSimulationStages(Time.fixedDeltaTime, SimulationStage.RunSimulation);

        // Transform of the m_Rigidbody is still like it was at the start of the method
        m_Rigidbody.PublishTransform();
        // Transform of the m_Rigidbody is now up to date and can be accessed to see where the body ended up after simulating for "totalTime" seconds
    }
}
```

Simulate a [PhysicsScene](/engine/6000.6/script-reference/unityengine/physicsscene.md) with a [Rigidbody](/engine/6000.6/script-reference/unityengine/rigidbody.md) and use [Rigidbody.PublishTransform](/engine/6000.6/script-reference/unityengine/rigidbody/publishtransform.md) to read the information from the physics system to the [Transform](/engine/6000.6/script-reference/unityengine/transform.md) component.
