美文网首页
7、实现不规则响应区域

7、实现不规则响应区域

作者: GameObjectLgy | 来源:发表于2020-10-12 21:12 被阅读0次
Unity自身提供的方案

1、将图片设置为可读写(影响性能,增加内存占用)


image.png

2、设置图片的透明度点击级别,默认是0,设置成0.1表示透明度低于0.1的区域点击不响应。
GetComponent<Image>().alphaHitTestMinimumThreshold = 0.1f;

自定义方案

1、添加Polvgon Colider 2D组件,创建可点击区域。
2、添加button组件
3、添加实现代码

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

public class CustomImage : Image
{
    private PolygonCollider2D _polygon;

    private PolygonCollider2D Polygon
    {
        get
        {
            if (_polygon == null)
                _polygon = GetComponent<PolygonCollider2D>();

            return _polygon;
        }   
    }


    public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
    {
        Vector3 point;
        RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, screenPoint, eventCamera, out point);
        return Polygon.OverlapPoint(point);
    }
}

利用这个思路可以做哪找物品的小游戏。

相关文章

网友评论

      本文标题:7、实现不规则响应区域

      本文链接:https://www.haomeiwen.com/subject/mcieuktx.html