I need to create a UI that remains in one place while the user is able to interact with the 3D model.

0 votes
asked Jun 15, 2018 by Chief (16 points)
edited Jun 15, 2018 by Chief
I am creating a project that will have a static UI on the left and the 3D models will be on the right.  My problem is that so far all the 2d objects I create are tracked and move as the glasses move.  I read the recommendations to create a Canvas and set it to Worldspace and while everything is readable -- I need it to not move.  I need the UI to remain in one place.  This will be a horizontal layout with text and information for the user to read and click on.  The assets I have are primarily images.  I need to be able to create a panel on the left side that holds text and buttons.  Also, I should add I am building this project in Unity 2017 and C#.
commented Jun 15, 2018 by Chief (16 points)
I talked with a very helpful support person and he explained to me that anything I place in the scene will be tracked because of how zCore works.  Can anyone help me think of a way around this?  This is for a training project so it is a very important part of the scene for the text to remain static and in one place.  Thanks for any help you all can give me!

1 Answer

0 votes
answered Jun 15, 2018 by AlexShorey (267 points)

Hi Chief,

Its certainly possible to have a UI statically placed relative to the display. The easiest way is to have your worldspace canvas locked to zcore's viewport plane. Its a representation of where the physical display is located in virtual space. The camera frustums pivot on this plane and because of this, any objects locked to it will have the effect of sitting still on the display glass, like a typical UI.

Here's a simple script that should help you get what you're looking for when attached to a world space UI canvas.


Alex S.

commented Jun 15, 2018 by Chief (16 points)
Thank you, Alex!  You saved the day!