gpt4 book ai didi

unity3d - 如何在非 GUI 元素中使用 "9-sliced"图像类型?

转载 作者:行者123 更新时间:2023-12-04 17:34:21 27 4
gpt4 key购买 nike

在我的游戏中,我在四边形上使用简单的纹理。我可以看到 Unity GUI 允许我们通过将“图像类型”选项设置为 来切片图像。切片 .

我想对我在四边形中使用的其他纹理做同样的事情。

简单来说,当纹理本身被缩放时,我不希望我的纹理的边缘被缩放。

谢谢。

最佳答案

看起来你必须自己生成网格,不像听起来那么难。网格必须如下所示:

9 slice on a quad

每个纹理网格由顶点(图片上的红点)定义,并且(在这种情况下)每个顶点有两个参数:

  • 一个 Vector3与位置。只有 xy在这里使用,因为四边形是平坦的(因此,z = 0)。
  • 一个 Vector2使用 UV,这就是将 Material 放置在网格上的方式。这是纹理坐标:uv .

  • 为了配置这个网格,我添加了参数:
    b - 边框 - 游戏对象的边框有多大(以 3d 单位表示)
    w , h - 用于游戏对象的宽度和高度(以 3d 为单位)
    m - 图像中的边距有多大( float 0f 到 0.5f)

    如何在 Unity3d 中执行此操作:
  • 创建一个游戏对象,添加一个 MeshRenderer用你想要的 Material 和一个空的 MeshFilter .
  • 添加创建网格的脚本。看 Unity3d docs for Mesh , first example .

  • 请注意,对于 unity3d,您必须使用三角形创建它,而不是四边形(因此对于每个四边形制作两个三角形)。

    关于unity3d - 如何在非 GUI 元素中使用 "9-sliced"图像类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516185/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com