美文网首页Unity技术分享Unity教程合集
NGUI 多边形碰撞体自动调节

NGUI 多边形碰撞体自动调节

作者: Babybus_Unity | 来源:发表于2015-12-17 15:52 被阅读672次

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;

    }
}

相关文章

网友评论

    本文标题:NGUI 多边形碰撞体自动调节

    本文链接:https://www.haomeiwen.com/subject/khdphttx.html