FairyGUI中创建遮罩

在做UI的时候我们经常会用到遮罩.在UGUI中我们通过Mask组件来实现,FairyGUI中也有同样的功能.


下面让我们在FairyGUI编辑器中创建一个List组件,并导入到Unity中显示,没有添加任何遮罩,List的遮挡区域是一个方形.

这里写图片描述


现在我们为List添加一个遮罩来限制List的显示区域和触摸区域.首先导入一张带Alpha通道的不规则图片在FairyGUI编辑器中.

这里写图片描述

然后选中我们的遮罩图,并在编辑器右边的信息界面中勾选中[将我作为组件的遮罩].

这里写图片描述

再次导入Unity中看看效果.

这里写图片描述

现在可以看到List的显示区域和触摸区域已经被遮挡了.


通过观察可以发现FairyGUI遮罩的原理与UGUI中Mask组件一样.是使用透明通道来实现遮罩.Alpha值为0的地方将不会显示.同样可以使用这种方式制作头像遮罩等等.

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FairyGUI 是一款强大的 UI 编辑器和 UI 框架,其遮罩功能可以让我们在 UI 实现一些非常有趣的效果。在 FairyGUI ,我们可以使用自定义图形作为遮罩,这篇文章将会介绍如何实现自定义遮罩。 1. 创建自定义遮罩 首先,在 FairyGUI 编辑器创建一个 UI 节点,并将其属性的 Mask Type 设置为 Image,这将使该节点成为一个遮罩层。然后,为该节点添加一个 Image 组件,并将其作为遮罩的图像。 接下来,我们需要编写脚本来指定遮罩的形状。我们可以创建一个自定义脚本,继承自 FairyGUI 的 IMask 接口,并实现其的一个方法:OnPopulateMesh。在这个方法,我们需要创建一个 Mesh 对象,并设置其顶点和三角形,以定义遮罩的形状。 下面是一个简单的例子: ```csharp using UnityEngine; using FairyGUI; public class CustomMask : MonoBehaviour, IMask { public void OnPopulateMesh(VertexHelper vertexHelper) { Mesh mesh = new Mesh(); Vector3[] vertices = new Vector3[4]; int[] triangles = new int[6]; float width = 200f; float height = 100f; vertices[0] = new Vector3(0f, 0f); vertices[1] = new Vector3(0f, height); vertices[2] = new Vector3(width, height); vertices[3] = new Vector3(width, 0f); triangles[0] = 0; triangles[1] = 1; triangles[2] = 2; triangles[3] = 0; triangles[4] = 2; triangles[5] = 3; mesh.vertices = vertices; mesh.triangles = triangles; vertexHelper.AddUIVertexStream(new List<UIVertex>(), mesh); } } ``` 在这个例子,我们创建了一个矩形的遮罩,并将其顶点和三角形添加到了 Mesh 对象。然后,我们使用 VertexHelper 对象将这个 Mesh 对象传递给遮罩层,以便在 UI 显示出来。 2. 将自定义脚本添加到遮罩层 在脚本编写完成后,我们需要将其添加到遮罩。在 FairyGUI 编辑器,我们可以选择遮罩层节点,并在属性的 Mask 选择 Custom Mask。然后,在 Custom Mask 选择我们刚才编写的自定义脚本。 3. 测试效果 现在,我们可以在场景测试我们的自定义遮罩了。我们可以在遮罩层的子节点添加一些 UI 元素,并在运行时观察遮罩的效果。如果一切正常,我们应该能够看到 UI 元素被遮罩的效果。 总结 FairyGUI 的自定义遮罩功能非常强大,可以让我们在 UI 实现各种有趣的效果。通过编写自定义脚本,我们可以创建各种形状的遮罩,并将其应用到 UI 。希望这篇文章能够帮助你理解 FairyGUI 的自定义遮罩功能,以及如何使用它来实现自己的 UI 效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值