Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

ScreenToWorld.ScreenSpaceToWorldSpace - how to use it?

Discussion in 'Project Tiny' started by Sarkahn, Nov 27, 2020.

  1. Sarkahn


    Jan 9, 2013
    Hello, I'm trying to set a position to a corner of the camera's viewport. According to the source file the first parameter is in pixels:
    Code (CSharp):
    1.         // screenPos is in pixels. Note that this is pixels, not points. So for platforms where pixels != points, this need to be adjusted first.
    2.         // depth is normalized -1..1, where -1 is near and 1 far
    3.         public float3 ScreenSpaceToWorldSpace(float2 screenPos, float normalizedZ, ScreenToWorldId id)
    I was expecting that if I pass (0,0) to this function it would return a world point at the bottom left corner of the camera's viewport, and passing the size of the viewport in pixels would give you the top right, but that doesn't seem to be the case.

    Code (CSharp):
    1. // Returns (-1,-1), regardless of camera position          
    2. var p = s2w.ScreenSpaceToWorldSpace(new float2(0,0), 10, ScreenToWorldId.MainCamera);
    How can I convert from a camera/viewport position to world space?
  2. AbdulAlgharbi


    Unity Technologies

    Jul 27, 2018