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

    Sarkahn

    Joined:
    Jan 9, 2013
    Posts:
    383
    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

    AbdulAlgharbi

    Unity Technologies

    Joined:
    Jul 27, 2018
    Posts:
    258
unityunity