Skip to content

Instantly share code, notes, and snippets.

@unitycoder
Created February 20, 2016 15:13
Show Gist options
  • Save unitycoder/b41fdd724f999e6ead53 to your computer and use it in GitHub Desktop.
Save unitycoder/b41fdd724f999e6ead53 to your computer and use it in GitHub Desktop.
Get UI ScreenPosition & WorldPosition in separate Camera & Canvas
// Scene setup:
// CanvasCamera (canvasCam) with ScreenSpace-Camera UI canvas & elements (in different position from main camera)
// MainCamera (mainCam)
// UI image (obj) inside the CanvasCamera canvas
var originalScreenPos = canvasCam.WorldToScreenPoint(obj.position);
var worldPosInMainCamera = mainCam.ScreenToWorldPoint(p1);
var rayDirection = (worldPosInMainCamera-mainCam.transform.position);
Debug.DrawRay(mainCam.transform.position, rayDirection * 999, Color.red);
RaycastHit hit;
if (Physics.Raycast(mainCam.transform.position, rayDirection, out hit, Mathf.Infinity, layerMask))
{
Debug.Log("Hits object:" + hit.transform.name);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment