美文网首页
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