示例#1
0
    void OnDrawGizmos()
    {
        for (int i = 0; i < platformGroupPositions.Count; i++)
        {
            if (platformGroupPositions[i].showGizmoOutline)
            {
                Vector3 gizmoCenter  = Vector3.zero;
                Vector3 gizmoExtents = new Vector3(16, 16, 0);

                if (platformGroupPositions[i].enabledGameObject != null)
                {
                    for (int j = 0; j < platformGroupPositions[i].positions.Count; j++)
                    {
                        RectangleMeshBuildScript rectangleMeshBuildScript = platformGroupPositions[i].enabledGameObject.GetComponent <RectangleMeshBuildScript>();
                        if (rectangleMeshBuildScript != null)
                        {
                            switch (rectangleMeshBuildScript.anchor)
                            {
                            case TextAnchor.MiddleCenter:
                                gizmoCenter  = Vector3.zero;
                                gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2);
                                break;

                            case TextAnchor.LowerLeft:
                                gizmoCenter  = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2);
                                gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2);
                                break;

                            default:
                                throw new ArgumentException("rectangleMeshBuildScript anchor " + rectangleMeshBuildScript.anchor + " not supported.");
                            }
                        }
                        else
                        {
                            BoxCollider2D boxCollider2D = platformGroupPositions[i].enabledGameObject.GetComponent <BoxCollider2D>();
                            if (boxCollider2D != null)
                            {
                                gizmoCenter  = boxCollider2D.offset;
                                gizmoExtents = boxCollider2D.size / 2;
                            }
                        }

                        GizmoUtility.DrawBoundingBox(this.transform.TransformPoint(platformGroupPositions[i].positions[j] + gizmoCenter), gizmoExtents, platformGroupPositions[i].outlineGizmoColor);
                    }
                }
            }
        }
    }
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        RectangleMeshBuildScript myScript = (RectangleMeshBuildScript)target;

        myScript.SafeDeleteColliders();

        if (GUILayout.Button("Build Object"))
        {
            myScript.BuildObject();
        }
        if (GUILayout.Button("Create Prefab"))
        {
            myScript.CreatePrefab();
        }
    }
示例#3
0
    void OnDrawGizmos()
    {
        if (showGizmoOutline)
        {
            if (platformPrefab != null)
            {
                RectangleMeshBuildScript rectangleMeshBuildScript = platformPrefab.GetComponent <RectangleMeshBuildScript>();
                if (rectangleMeshBuildScript != null)
                {
                    switch (rectangleMeshBuildScript.anchor)
                    {
                    case TextAnchor.MiddleCenter:
                        _gizmoCenter  = Vector3.zero;
                        _gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2);
                        break;

                    case TextAnchor.LowerLeft:
                        _gizmoCenter  = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2);
                        _gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2);
                        break;

                    default:
                        throw new ArgumentException("rectangleMeshBuildScript anchor " + rectangleMeshBuildScript.anchor + " not supported.");
                    }
                }
                else
                {
                    BoxCollider2D boxCollider2D = platformPrefab.GetComponent <BoxCollider2D>();
                    if (boxCollider2D != null)
                    {
                        _gizmoCenter  = boxCollider2D.offset;
                        _gizmoExtents = boxCollider2D.bounds.extents;
                    }
                }
            }

            for (int i = 0; i < platformPositions.Count; i++)
            {
                GizmoUtility.DrawBoundingBox(this.transform.TransformPoint(platformPositions[i] + _gizmoCenter), _gizmoExtents, outlineGizmoColor);
            }
        }
    }