Example #1
0
 public AlignObjectsEditOperation(Box alignBox, AlignAxis axis, AlignDirection direction, TransformFlags transformFlags)
 {
     _alignBox       = alignBox;
     _axis           = axis;
     _direction      = direction;
     _transformFlags = transformFlags;
 }
 public AlignObjectsEditOperation(Box alignBox, AlignAxis axis, AlignDirection direction, TransformFlags transformFlags)
 {
     _alignBox = alignBox;
     _axis = axis;
     _direction = direction;
     _transformFlags = transformFlags;
 }
Example #3
0
    public static void Align(AlignAxis _axis, AlignMode _mode)
    {
        if (!Selection.activeTransform)
        {
            return;
        }

        switch (_axis)
        {
        case AlignAxis.x:
            selected = Selection.transforms.OrderBy(tr => tr.position.x).ToArray();
            break;

        case AlignAxis.y:
            selected = Selection.transforms.OrderBy(tr => tr.position.y).ToArray();
            break;

        case AlignAxis.z:
            selected = Selection.transforms.OrderBy(tr => tr.position.z).ToArray();
            break;
        }

        Vector3 targetPos = Vector3.zero;

        switch (_mode)
        {
        case AlignMode.min:
            targetPos = selected[0].position;
            break;

        case AlignMode.max:
            targetPos = selected[selected.Length - 1].position;
            break;
        }

        Undo.RecordObjects(Selection.transforms, "Align " + _mode.ToString().ToUpper() + " by " + _axis.ToString().ToUpper());

        foreach (var trans in selected)
        {
            switch (_axis)
            {
            case AlignAxis.x:
                trans.position = new Vector3(targetPos.x, trans.position.y, trans.position.z);
                break;

            case AlignAxis.y:
                trans.position = new Vector3(trans.position.x, targetPos.y, trans.position.z);
                break;

            case AlignAxis.z:
                trans.position = new Vector3(trans.position.x, trans.position.y, targetPos.z);
                break;
            }
        }
    }
Example #4
0
    public static void AlignAverage(AlignAxis _axis)
    {
        if (!Selection.activeTransform)
        {
            return;
        }
        selected = Selection.transforms;
        float total = 0;

        foreach (var trans in selected)
        {
            switch (_axis)
            {
            case AlignAxis.x:
                total += trans.position.x;
                break;

            case AlignAxis.y:
                total += trans.position.y;
                break;

            case AlignAxis.z:
                total += trans.position.z;
                break;
            }
        }
        float avg = total / selected.Length;

        Undo.RecordObjects(Selection.transforms, "Align Average by " + _axis.ToString().ToUpper());
        foreach (var trans in selected)
        {
            switch (_axis)
            {
            case AlignAxis.x:
                trans.position = new Vector3(avg, trans.position.y, trans.position.z);
                break;

            case AlignAxis.y:
                trans.position = new Vector3(trans.position.x, avg, trans.position.z);
                break;

            case AlignAxis.z:
                trans.position = new Vector3(trans.position.x, trans.position.y, avg);
                break;
            }
        }
    }
Example #5
0
        public static Vector3 GetTransfomAxis(Transform t, AlignAxis axis, bool invert)
        {
            float mod = 1;

            if (invert)
            {
                mod = -1;
            }

            if (axis == AlignAxis.X)
            {
                return(t.right * mod);
            }
            else if (axis == AlignAxis.Y)
            {
                return(t.up * mod);
            }
            else if (axis == AlignAxis.Z)
            {
                return(t.forward * mod);
            }

            return(Vector3.up);
        }