UGUI中不规则形状按钮的碰撞检测

在制作功能时,偶尔会遇到使用不规则的按钮,碰撞检测当然也要做到与按钮的形状一致,但是我们的图片都是矩形的,所以需要我们单独设置与按钮形状一致的碰撞检测区域。

使用的组件:Button,Polygon Collider 2D,UguiImagePlus(继承Image)

UguiImagePlus.cs (Image扩展类)

using UnityEngine;
using UnityEngine.UI;

public class UguiImagePlus : Image
{
    //声明多边形碰撞器组件
    private PolygonCollider2D mCollider;

    protected override void Awake()
    {
        base.Awake();
        mCollider = GetComponent<PolygonCollider2D>();
    }

    public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
    {
        //判断触摸是否在圈出的多边形区域内
        var inside = mCollider.OverlapPoint(screenPoint);
        return inside;
    }
}

创建一个Button删除Image组件,添加UguiImagePlus,拖动图片设置。

image.png

添加Polygon Collider 2D组件,然后设置不规则的区域。

编辑说明

经过以上设置,你已经制作一个与图片像素区域一致的碰撞检测区域了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容