# ScreenPointToRay

> Returns a ray going from camera through a screen point.

## Definition

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

## ScreenPointToRay(Vector3, MonoOrStereoscopicEye)

Returns a ray going from camera through a screen point.

```csharp
public Ray ScreenPointToRay(Vector3 pos, Camera.MonoOrStereoscopicEye eye)
```

### Parameters

**** (\[Vector3]\(/engine/6000.6/script-reference/unityengine/vector3)): A 3D point, with the x and y coordinates containing a 2D screen space point in pixels. The lower left pixel of the screen is (0,0). The upper right pixel of the screen is (screen width in pixels - 1, screen height in pixels - 1). Unity ignores the z coordinate.**** (\[MonoOrStereoscopicEye]\(/engine/6000.6/script-reference/unityengine/camera/monoorstereoscopiceye)): Optional argument that can be used to specify which eye transform to use. Default is Mono.

### Returns

| Type                                                      | Description |
| --------------------------------------------------------- | ----------- |
| [Ray](/engine/6000.6/script-reference/unityengine/ray.md) |             |

### Remarks

Resulting ray is in world space, starting on the near plane of the camera and going through position's (x,y) pixel coordinates on the screen.

### Examples

```csharp
//Attach this script to your Camera
//This draws a line in the Scene view going through a point 200 pixels from the lower-left corner of the screen
//To see this, enter Play Mode and switch to the <b>Scene</b> tab. Zoom into your Camera's position.
using UnityEngine;
using System.Collections;

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


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

    void Update()
    {
        Ray ray = cam.ScreenPointToRay(pos);
        Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
    }
}
```

## ScreenPointToRay(Vector3)

Returns a ray going from camera through a screen point.

```csharp
public Ray ScreenPointToRay(Vector3 pos)
```

### Parameters

**** (\[Vector3]\(/engine/6000.6/script-reference/unityengine/vector3)): A 3D point, with the x and y coordinates containing a 2D screen space point in pixels. The lower left pixel of the screen is (0,0). The upper right pixel of the screen is (screen width in pixels - 1, screen height in pixels - 1). Unity ignores the z coordinate.

### Returns

| Type                                                      | Description |
| --------------------------------------------------------- | ----------- |
| [Ray](/engine/6000.6/script-reference/unityengine/ray.md) |             |

### Remarks

Resulting ray is in world space, starting on the near plane of the camera and going through position's (x,y) pixel coordinates on the screen.

### Examples

```csharp
//Attach this script to your Camera
//This draws a line in the Scene view going through a point 200 pixels from the lower-left corner of the screen
//To see this, enter Play Mode and switch to the <b>Scene</b> tab. Zoom into your Camera's position.
using UnityEngine;
using System.Collections;

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


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

    void Update()
    {
        Ray ray = cam.ScreenPointToRay(pos);
        Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
    }
}
```
