方法一:直接使用編輯器來做
using UnityEngine;
using UnityEditor;
using System.Collections;
/// <summary>
/// 在給不規則sprite添加boxCollider的時候,box的藍色邊框不顯示,要是規則的物體添加會box的藍色邊框會很好的顯示出來,
/// 意味着box很好的裹住了物體,不規則的物體添加box時用的是Polygoncollider,但是沒有很好的裹住物體,原來是NGUI默認創建的貼圖和精靈的scale 都是1, 而所有的Collider都是根據GameObject的scale去算的。所以它太小了
/// ,小到了你的眼睛都完全看不到。為了方便編輯還是寫一條簡單的腳本來創建Polygon Collider2D。
/// </summary>
public class AddPolygonCollider2D_Demo : Editor
{
[MenuItem("NGUI/Attach/PolygonCollider2D")]
public static void AddPolugonCollider2D()
{
if(Selection.activeGameObject != null)
{
foreach(GameObject go in Selection.gameObjects)
{
UIWidget widget = go.GetComponent<UIWidget>();
if(widget != null)
{
PolygonCollider2D polygoncllider = go.GetComponent<PolygonCollider2D>();
if(polygoncllider == null)
{
polygoncllider = go.AddComponent<PolygonCollider2D>();
}
Vector2[] vectors = new Vector2[4];
int widthHalf = (widget.width >> 1) + 20;
int heightHalf = (widget.height >> 1) + 20;
vectors[0] = new Vector2(-widthHalf, -heightHalf);
vectors[1] = new Vector2(widthHalf, -heightHalf);
vectors[2] = new Vector2(widthHalf, -heightHalf);
vectors[3] = new Vector2(-widthHalf, -heightHalf);
polygoncllider.points = vectors;
}
}
}
}
}
代碼寫完之后使用,點擊shift和鼠標左鍵進行編輯collider的范圍
方法二:
直接在物體的inspects面板進行修改,首先添加polygoncollider來,然后在面板中點擊右上角的小圖標,選擇debug,進行如編輯
提示:
但是NGUI現在的代碼是不支持PolygonCollider2D的。原因是NGUI用的是3D射線,而PolygonCollider用的是2D射線,射線是需要每一幀Update都要去判斷的。