Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
一个关于世界空间UI的问题
Everness发起了问答2017-07-20
3
回复
291
浏览

老师您好,我现在使用UGUI想做出一个效果,但是遇到了问题。

大概的效果就是,我有一条很长的隧道模型,然后我的摄像机在观察这个隧道的时候,会有一个提示UI,这个UI只有一个功能就是显示这个隧道的名称。然后我希望的是这个UI显示在我的摄像机看到的地方,也就是摄像机发射射线后碰到隧道的位置。

然后就是我遇到的问题了。如果只是以上面的方式呈现UI的话就会产生一个问题:当摄像机看到距离近的地面时UI会比较大比较清楚,而当摄像机看向远处隧道的地面时UI就会很小。有没有什么方法能让这个UI的显示大小恒定呢?

谢谢老师!

所有回复
  • siki 2017-07-20

    从射线撞到的点,还有相机的点,设置一个射线, 你在射线上截取固定的距离

    dir*length 这样恒定的吧ui放在这个合适的位置就可以了

    • Everness 2017-07-21

      您说的这第二个自己设置的射线是什么我没弄懂……还有就是ui您说的是用3D世界UI吗?还是传统贴在屏幕上的UI?因为我又想了下是否用传统UI比较好,就是把观察撞击点的位置转化为屏幕坐标系的坐标,但是之后如何操作我还没想明白,是否需要和UI的坐标系统也进行转换?

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-07-21

    观察撞击点的位置转化为屏幕坐标系的坐标  使用2d的 UI就是你说的传统ui

    按照上述方法做就可以了

    RectTransformUtility.ScreenPointToLocalPointInRectangle

    这个可以吧一个屏幕坐标转换为一个canvas下的坐标,我在背包系统中有使用这个 

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!