Beispiel #1
0
        void Update()
        {
            if (spriteDeformer == null)
            {
                return;
            }
            if (Application.isEditor && !Application.isPlaying)
            {
                FillPoints();
            }
            if (points.Count == 0)
            {
                return;
            }
            Vector2 rL = Vector2.zero;

            for (int i = 0; i < points.Count; i++)
            {
                SpritePoint p = points[i];
                rL += spriteDeformer.SpritePositionToLocal(p.spritePosition + p.offset2d);
            }
            rL /= (float)points.Count;
            rL += localOffset;
            Vector3 rG = spriteDeformer.transform.TransformPoint(rL);

            rG.z = transform.position.z;
            transform.position = rG;
        }
Beispiel #2
0
        private void recalculeteBounds()
        {
            if (Application.isPlaying)
            {
                return;
            }
            Bounds b = spriteDeformer.bounds;

            switch (spriteDeformer.editorProps.boundsEditorMode)
            {
            case SpriteDeformerEditorSaver.BoundsEditorMode.USER: break;

            case SpriteDeformerEditorSaver.BoundsEditorMode.CROPE:
                b.size = new Vector3(0, 0, 1);
                foreach (var item in spriteDeformer.points)
                {
                    foreach (var offset in item.offsets)
                    {
                        Vector3 v3 = spriteDeformer.SpritePositionToLocal((Vector3)item.spritePosition + offset);

                        b.Encapsulate((Vector3)v3);
                    }
                }
                break;

            case SpriteDeformerEditorSaver.BoundsEditorMode.Encapsulate:
                foreach (var item in spriteDeformer.points)
                {
                    foreach (var offset in item.offsets)
                    {
                        Vector3 v3 = spriteDeformer.SpritePositionToLocal((Vector3)item.spritePosition + offset);

                        b.Encapsulate((Vector3)v3);
                    }
                }
                break;

            default: break;
            }
            if (!Application.isPlaying)
            {
                spriteDeformer.bounds = b;
            }
        }