Search Unity

  1. Unity 2020.2 has been released.
    Dismiss Notice
  2. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    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