分享一个项目中用的着的小功能(Unity不规则图形点击)

在使用UGUI组件时,`通常会遇到一下不规则图形点击。如图

现有的UGUI Button时间没办法处理重叠部分的点击事件。所以查了下资料,利用Polygon Collider2D检测实现重叠部分的点击效果。实现效果如下

实现方式如下

1.创建的Button按钮Image不勾选RaycastTarget

2. 在Button按钮下创建空物体Click,并添加脚本PolygonClick.cs。空物体的大小要大于不规则图形的大小。通过PolygonCollider2D 的Edit Collider编辑自己需要的不规则多边形点击区域。然后就完事了

核心脚本PolygonClick.cs代码如下,比较简单,也都写了注释。不规则点击的事件就完事了,比较简单的一个功能,给需要的童鞋一个参考。路过的且用的着的童鞋麻烦给个赞,多谢。

using UnityEngine;
using UnityEngine.UI;[RequireComponent(typeof(PolygonCollider2D))]
public class PolygonClick : Image
{private new Collider2D collider;protected override void Start(){var c2d = GetComponent<Collider2D>();if (c2d != null)collider = c2d;base.Start();}public override bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera){if (!raycastTarget)return false;if (collider != null){var worldPoint = Vector3.zero;//将屏幕空间点转换为世界空间中给定RectTransform平面上的位置//返回值:如果RectTransform的平面被击中,则返回true,而不管这个点是否在矩形内。var isInside = RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform,sp,eventCamera,out worldPoint);if (isInside)isInside = collider.OverlapPoint(worldPoint);   //判断是否在多边形包围区域内return isInside;}else{return base.IsRaycastLocationValid(sp, eventCamera);}}
}

Unity 不规则图形点击相关推荐

  1. Unity使用bounds绘制不规则图形边框

    Unity使用bounds绘制不规则图形边框 for (int i = 0; i < screenList.Count; i++) { if (screenList[i].activeSelf ...

  2. canvas绘制不规则图形,点击获取当前图形索引

    canvas给不规则图形添加点击事件 有这么一个需求,把传过来的四个坐标,连成一个图形(可能是规则的,也可能是不规则的),点击某个图形,显示当前这个图形的信息 //数据格式 dataList: {lo ...

  3. 使用CSS 3创建不规则图形

    2019独角兽企业重金招聘Python工程师标准>>> 前言 CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中.本篇文章的目的是为大家开启它的冰山一角.我希望这篇文章 ...

  4. 不规则图形数格子的方法_【微课堂】人教版五年级数学(上)6.5不规则图形的面积图文精讲+教学视频+同步练习...

    小学生精选资料库,家有小学生都在关注 更多资料.微课堂,请至文末 人教教材同步微课堂(包括视频微课.教材同步.图文讲解.同步练习等),可以在课堂之外帮助同学们学习.欢迎转发给更多的同学哦~~ 电子课本 ...

  5. 不规则图形数格子的方法_北师大版五年级数学上册数学6.1组合图形的面积微课堂、同步练习、图文解读...

    点击上方蓝字关注我们! 电子教材 点击图片,查看大图 ▼▼▼ 微课堂 知识点 知识点:了解组合图形:有几个简单的图形拼出来的图形,我们把它们叫做组合图形. 计算组合图形的面积的方法是多种多样的.一般运 ...

  6. CocosCreator实现不规则的点击区域监听

    CocosCreator实现不规则的点击区域监听 开发一个农场小游戏,用常规的点击区域,会产生点击区域重叠问题.(展示的图片是已经调整为cc.PolygonCollider方法之后) 查询网上的方法, ...

  7. Android开发之不规则图形按钮响应

    这是我在网上找了不少资料后,总结下来的简单不规则图形按钮制作方法. 如果我们想在安卓开发时设计漂亮的按钮,很可能会用到图片按钮,但是图片按钮响应区域是长方形的,比如下图 如果里面的月亮和云彩是用图片按 ...

  8. Cocos Creator实现不规则区域点击

    问题背景 在CocosCreator中,点击图片透明区域依然触发节点的点击事件.但在web开发中,可以使用Inkscape.SvgPathEditor等矢量图编辑器转为SVG,或者直接从figma中导 ...

  9. WPF入门(三)-几何图形之不规则图形(PathGeometry) (2)

    WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 原文:WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 上一节我们介绍了PathG ...

最新文章

  1. iOS开发笔记-两种单例模式的写法
  2. CS9:转载:怎样配置Win Radius 当使用Cisco交换机时
  3. 常见的CSS属性和值CascadingStyleSheets
  4. 5G为中企业解决业务上的五个挑战—Vecloud
  5. 51Nod 蜥蜴和地下室(搜索)
  6. python练习题-day8
  7. JavaFX官方教程(九)之转换
  8. linux常用指令(持续更新)
  9. 因“5毛钱”惹众怒的丰巢:我错了,下次还敢
  10. DataX不支持Mysql8.x
  11. Js屏蔽键盘输入的某些字符,用以部分代替正则表达式
  12. STL 容器迭代器失效总结(超级详细)
  13. 等价类划分测试—身份证
  14. 计算机软考软件设计师知识点:软件可行性研究报告
  15. 电工和电气工程师的区别
  16. iOS使用电脑Safari浏览器查看真机h5网页元素
  17. 怎么屏蔽还有照片_【文末福利】在朋友圈发男神照片忘了屏蔽父母,麻麻的回应亮了…...
  18. 接口加密(TokenSpringCloud项目中进行token认证)
  19. 微信公众号支付 使用基于thinkphp 使用微信官网的sdk
  20. python海龟漂亮图案代码大全_带有海龟图案的Python花

热门文章

  1. XPlay2.0 播放器项目实战-05
  2. java 百千万亿转换_一二三四五六七八九十百千万亿
  3. nobone-sync ......js后watched一次后自动终止的原因
  4. 类似QQ点赞的动画效果
  5. oracle 并行参数设置
  6. ReactNative 热更新,集成CodePush
  7. 知道 Redis-Cluster 么?说说其中可能不可用的情况
  8. SOAMANAGER 打不开浏览器
  9. 使用git 第一次上传项目到gitee
  10. 苹果商店应用审核指南(2014年中文翻译版)