# worldToCameraMatrix

> Matrix that transforms from world to camera space.

## Definition

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

```csharp
public Matrix4x4 worldToCameraMatrix { get; set; }
```

### Remarks

This matrix is often referred to as "view matrix" in graphics literature.

Use this to calculate the Camera space position of GameObjects or to provide a custom Camera's location that is not based on the transform.

Note that camera space matches OpenGL convention: camera's forward is the negative Z axis. This is different from Unity's convention, where forward is the positive Z axis.

If you change this matrix, the camera no longer updates its rendering based on its [Transform](/engine/6000.6/script-reference/unityengine/transform.md). This lasts until you call [Camera.ResetWorldToCameraMatrix](/engine/6000.6/script-reference/unityengine/camera/resetworldtocameramatrix.md).

```csharp
// Offsets camera's rendering from the transform's position.
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public Vector3 offset = new Vector3(0, 1, 0);
    Camera cam;

    void Start()
    {
        cam = GetComponent<Camera>();
    }

    void LateUpdate()
    {
        Vector3 camoffset = new Vector3(-offset.x, -offset.y, offset.z);
        Matrix4x4 m = Matrix4x4.TRS(camoffset, Quaternion.identity, new Vector3(1, 1, -1));
        cam.worldToCameraMatrix = m * transform.worldToLocalMatrix;
    }
}
```

Additional Resources: [Matrix4x4.LookAt](/engine/6000.6/script-reference/unityengine/matrix4x4/lookat.md), [CommandBuffer.SetViewMatrix](/engine/6000.6/script-reference/unityengine/rendering/commandbuffer/setviewmatrix.md).
