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 example : 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
class example(MonoBehaviour):
public bottomPanel as Texture2D
def VPToScreenPtExample():
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)