实现背景
在一些即时战略RPG中,玩家可以点击地图上的某些点移动角色,但是一张地图中的点击区域是有限的。
在cocos中如果给一张精灵图添加Button组件,那么其透明区域也是可以被点击到的,为了解决这个问题,本篇文章将用于记录如何实现不规则区域(多边形图形)的点击
实现方案
- 需要先给精灵图的节点添加碰撞体的组件
根据官方文档 点击Editing可以直接编辑多边形区域
- 实现点击区域的脚本
获得鼠标点击的位置以及多边形的points属性的具体代码如下:
clickBtn(event: EventTouch, customEventData: string) {
let node: Node = event.target;
let pol = node.getComponent(PolygonCollider2D);
if (pol) {
let location = event.getUILocation();
let checkPoint = node.getComponent(UITransform).convertToNodeSpaceAR(v3(location<