0
点赞
收藏
分享

微信扫一扫

Unity UGUI Image 点击事件忽略空白像素区域

晒大太阳了 2024-05-04 阅读 10

我们会遇到图片不是方形的不规则图片。这个时候我们希望只有点击到图像内容本身才算点击,点击空白区域则不算点击。而UGUI对图片的处理是整个图片都会算作点击区域,这样不能满足于我们的使用需求了。

首先我们需要把图片本身的Read/Write 选项打开

然后代码中我们需要去改变Image组件的alphaHitTestMinimumThreshold的阈值

代码如下

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CustomAlphaHitTest : MonoBehaviour
{
    public List<Image> imageComponents;
    public float alphaThreshold = 0.5f;
    void Start()
    {
        for (int i = 0; i < imageComponents.Count; i++)
        {
            imageComponents[i].alphaHitTestMinimumThreshold = alphaThreshold;
        }
    }
}

总结:

如果将 alphaHitTestMinimumThreshold 设置为 0.5,那么只有点击不透明度(Alpha 值)大于或等于 0.5 的像素时,点击事件才会被触发。换句话说,只有点击图像上不透明度较高的部分时,点击事件才会被认为有效。

这意味着对于透明度小于 0.5 的像素,点击事件将被忽略,而对于透明度大于等于 0.5 的像素,点击事件才会被处理。

举报

相关推荐

0 条评论