在我的游戏中,我在四边形上使用简单的纹理。我可以看到 Unity GUI 允许我们通过将“图像类型”选项设置为 来切片图像。切片 .
我想对我在四边形中使用的其他纹理做同样的事情。
简单来说,当纹理本身被缩放时,我不希望我的纹理的边缘被缩放。
谢谢。
最佳答案
看起来你必须自己生成网格,不像听起来那么难。网格必须如下所示:
每个纹理网格由顶点(图片上的红点)定义,并且(在这种情况下)每个顶点有两个参数:
Vector3
与位置。只有 x
和 y
在这里使用,因为四边形是平坦的(因此,z
= 0)。 Vector2
使用 UV,这就是将 Material 放置在网格上的方式。这是纹理坐标:u
和 v
. 为了配置这个网格,我添加了参数:
b
- 边框 - 游戏对象的边框有多大(以 3d 单位表示)w
, h
- 用于游戏对象的宽度和高度(以 3d 为单位)m
- 图像中的边距有多大( float 0f 到 0.5f)如何在 Unity3d 中执行此操作:
MeshRenderer
用你想要的 Material 和一个空的 MeshFilter
. Mesh
, first example . 请注意,对于 unity3d,您必须使用三角形创建它,而不是四边形(因此对于每个四边形制作两个三角形)。
关于unity3d - 如何在非 GUI 元素中使用 "9-sliced"图像类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516185/