Hover Menu on Skybox in Unity

心已入冬 提交于 2019-12-20 03:59:06

问题


I have a question about a VR/AR-interaction I would like to create.

I want to have an image that acts as a skybox to give an aerial perspective on a landscape and allow users to hover over a part of the image to show a small panel with a description of the object they are looking at.

For example, if I have a skybox of a cityscape and wanted to allow users to hover over a building and have a popup interaction displaying the name of the building, what would be the best strategy to do this?

I have the skybox created but have run into perspective issues when trying to add a button over a specific object.

Is this possible with this approach or would I need a textured landscape?


回答1:


We usually use billboards (images that always face the camera) to create hotspots on top of either cubic or spherical skyboxes. This is illustrated here in our cardboard demo app

Often to place items like info text or popups, I just:

  • parent the content to an empty GameObject
  • offset the content to the desired distance (along the z axis)
  • rotate the parent to position the content where it needs to appear

On GearVR, since the user/camera is always in the center the above is like having a billboard.

The hotspots/buttons have a collider attached and you can shoot a ray, on Late Update, with the camera position & rotation to determine if the user is hovering (looking at) a given hotpot. Two helpful classes to get you started are Camera ScreenPointToRay and Physics.RayCast

To do precise cutouts of content in a skybox (like highlighting a specific building) we usually use a cubemap based skybox and do the masking/post-processing in Photoshop. Then we layer the images top of the corresponding background skybox panel in unity and turn them on/off as needed. To simplify lining things up in Unity, I usually use a "custom skybox" which is basically 6 quads facing in.

hth.



来源:https://stackoverflow.com/questions/44766211/hover-menu-on-skybox-in-unity

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!