Babybus-u3d技术交流-NGUI 多边形碰撞体自动调节
在NGUI的控件中添加PolygonCollider2D啥也看不见,因为默认是按照缩放的大小生成的,所以点很小很密集基本看不见。如图所示
1.png
2.png
3.png
自动调节大小后就可以随性所欲编辑了。
4.png
ps:改为调试模式。
5.png
6.png
因为使用的是2d碰撞体,所以还需要对UICamera设置事件类型为2D 模式。
7.png
PolygonCollider2DContextMenu.cs
using UnityEngine;
using System.Collections;
using UnityEditor;
public class PolygonCollider2DContextMenu
{
[MenuItem("CONTEXT/PolygonCollider2D/Auto Adjust To Match", true)]
static bool AutoAdjustToMatchValidation(MenuCommand menuCommand)
{
return (menuCommand.context as PolygonCollider2D).GetComponent<UIWiget>() != null;
}
[MenuItem("CONTEXT/PolygonCollider2D/Auto Adjust To Match")]
static void AutoAdjustToMatch(MenuCommand menuCommand)
{
Undo.RecordObject(menuCommand.context, "AutoAdjustToMatch");
var polygonCollider2D = menuCommand.context as PolygonCollider2D;
var w = polygonCollider2D.GetComponent<UIWidget>();
Vector2[] points = new Vector2[4];
points[0] = new Vector2(-w.width/2, -w.height/2);
points[1] = new Vector2(w.width/2, -w.height/2);
points[2] = new Vector2(w.width/2, w.height/2);
points[3] = new Vector2(-w.width/2, w.height/2);
polygonCollider2D.points = points;
}
}