在制作功能時(shí),偶爾會遇到使用不規(guī)則的按鈕缘眶,碰撞檢測當(dāng)然也要做到與按鈕的形狀一致,但是我們的圖片都是矩形的髓废,所以需要我們單獨(dú)設(shè)置與按鈕形狀一致的碰撞檢測區(qū)域巷懈。
使用的組件:Button,Polygon Collider 2D慌洪,UguiImagePlus(繼承Image)
UguiImagePlus.cs (Image擴(kuò)展類)
using UnityEngine;
using UnityEngine.UI;
public class UguiImagePlus : Image
{
//聲明多邊形碰撞器組件
private PolygonCollider2D mCollider;
protected override void Awake()
{
base.Awake();
mCollider = GetComponent<PolygonCollider2D>();
}
public override bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera)
{
//判斷觸摸是否在圈出的多邊形區(qū)域內(nèi)
var inside = mCollider.OverlapPoint(screenPoint);
return inside;
}
}
創(chuàng)建一個(gè)Button刪除Image組件顶燕,添加UguiImagePlus,拖動圖片設(shè)置冈爹。
image.png
添加Polygon Collider 2D組件涌攻,然后設(shè)置不規(guī)則的區(qū)域。
編輯說明
經(jīng)過以上設(shè)置频伤,你已經(jīng)制作一個(gè)與圖片像素區(qū)域一致的碰撞檢測區(qū)域了恳谎。