首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之给UI添加Mesh形状(一百二十)
2020
10-28

Unity3D研究院之给UI添加Mesh形状(一百二十)

美术希望在3D UI中显示自定义的网格,比如显示一个带弧形的UI。纯3D确实是可以做的,但是涉及到UI事件或者裁切就无法统一。

由于默认的UI是矩形,UI的显示与相应区域就是RectTransform的size,如果我们使用自定义Mesh的UI那么显示区域就要单独调整,比如单独设置显示的旋转、缩放、平移。

如下图所示,显示区域和响应区域是不一样的。

Unity3D研究院之给UI添加Mesh形状(一百二十) - 雨松MOMO程序研究院 - 1

如下图所示,MeshImage就是我封装的UI组件,这时候调整overridePostion、 overrideRotation 、overrideScale 来修改3D模型的显示区域。

Unity3D研究院之给UI添加Mesh形状(一百二十) - 雨松MOMO程序研究院 - 2

 

而修改RectTransform则修改它的整体响应区域。

 

原理就是将Mesh的顶点信息取出来,并且组合到UI顶点中,配合3D摄像机整体的透视关系就都出来了。

 

Unity3D研究院之给UI添加Mesh形状(一百二十) - 雨松MOMO程序研究院 - 3

还有一点默认UI的shader是不写深度的,如果模型有厚度就要写深度了,自己改下shader就行。

Unity3D研究院之给UI添加Mesh形状(一百二十) - 雨松MOMO程序研究院 - 4

 

最后欢迎大家一起讨论。

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

留下一个回复

你的email不会被公开。