对于项目中UI设计是非规则图像时,并且需要在不规则图片上能够响应触发事件,使用常规的boxCollider很难达到设计需求。
解决方法:
1、为不规则图片添加Polygon Collider 2D组件。
2、通过使用Editor Collider调整使得碰撞检测区域与图片规则形状相吻合。
3、添加事件脚本完成交互功能,代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ClickEvent : MonoBehaviour {
private PolygonCollider2D polygonCollider2D;
// Use this for initialization
void Start () {
polygonCollider2D = GetComponent<PolygonCollider2D>();
}
// Update is called once per frame
void Update () {
//鼠标点击响应
if (Input.GetMouseButtonDown(0))
{
if (polygonCollider2D.OverlapPoint(Input.mousePosition))
{
Debug.Log(gameObject.name);
//todo你的点击事件逻辑
}
}
//触屏点击响应
if (Input.touchCount == 1)
{
if (Input.touches[0].phase == TouchPhase.Began)
{
if (polygonCollider2D.OverlapPoint(Input.touches[0].position))
{
Debug.Log(gameObject.name);
//todo你的点击事件逻辑
}
}
}
}
}