NGUI 多边形碰撞体自动调节

Babybus-u3d技术交流-NGUI 多边形碰撞体自动调节

在NGUI的控件中添加PolygonCollider2D啥也看不见,因为默认是按照缩放的大小生成的,所以点很小很密集基本看不见。如图所示

NGUI 多边形碰撞体自动调节_第1张图片
1.png
NGUI 多边形碰撞体自动调节_第2张图片
2.png
NGUI 多边形碰撞体自动调节_第3张图片
3.png

自动调节大小后就可以随性所欲编辑了。

NGUI 多边形碰撞体自动调节_第4张图片
4.png

ps:改为调试模式。

NGUI 多边形碰撞体自动调节_第5张图片
5.png
NGUI 多边形碰撞体自动调节_第6张图片
6.png

因为使用的是2d碰撞体,所以还需要对UICamera设置事件类型为2D 模式。

NGUI 多边形碰撞体自动调节_第7张图片
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() != 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();

 
        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;

    }
}

你可能感兴趣的:(NGUI 多边形碰撞体自动调节)