Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Camera.ViewportToScreenPoint

Switch to Manual
ViewportToScreenPoint(position: Vector3): Vector3;
Vector3 ViewportToScreenPoint(Vector3 position);
def ViewportToScreenPoint(position as Vector3) as Vector3

Description

Transforms position from viewport space into screen space.

Viewport space is normalized and relative to the camera. The bottom-left of the camera is (0,0); the top-right is (1,1). The z position is in world units from the camera.

Screenspace is defined in pixels. The bottom-left of the screen is (0,0); the right-top is (pixelWidth,pixelHeight). The z position is in world units from the camera.

	// Draw an image based on normalized view coordinates
	// rather than pixel positions.
	var bottomPanel: Texture2D;

	function VPToScreenPtExample() {
		var origin = Camera.main.ViewportToScreenPoint(new Vector3(0.25, 0.1, 0));
		var extent = Camera.main.ViewportToScreenPoint(new Vector3(0.5, 0.2, 0));
		
		GUI.DrawTexture(new Rect(origin.x, origin.y, extent.x, extent.y), bottomPanel);
	}
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Texture2D bottomPanel;
    void VPToScreenPtExample() {
        Vector3 origin = Camera.main.ViewportToScreenPoint(new Vector3(0.25F, 0.1F, 0));
        Vector3 extent = Camera.main.ViewportToScreenPoint(new Vector3(0.5F, 0.2F, 0));
        GUI.DrawTexture(new Rect(origin.x, origin.y, extent.x, extent.y), bottomPanel);
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public bottomPanel as Texture2D

	def VPToScreenPtExample() as void:
		origin as Vector3 = Camera.main.ViewportToScreenPoint(Vector3(0.25F, 0.1F, 0))
		extent as Vector3 = Camera.main.ViewportToScreenPoint(Vector3(0.5F, 0.2F, 0))
		GUI.DrawTexture(Rect(origin.x, origin.y, extent.x, extent.y), bottomPanel)