static void ContextCreateSpriteMesh(MenuCommand menuCommand)
        {
            GameObject     spriteRendererGO = Selection.activeGameObject;
            SpriteRenderer spriteRenderer   = null;
            SpriteMesh     spriteMesh       = null;

            int sortingLayerID = 0;
            int sortingOrder   = 0;

            if (spriteRendererGO)
            {
                spriteRenderer = spriteRendererGO.GetComponent <SpriteRenderer>();
            }

            if (spriteRenderer &&
                spriteRenderer.sprite)
            {
                sortingLayerID = spriteRenderer.sortingLayerID;
                sortingOrder   = spriteRenderer.sortingOrder;

                SpriteMesh overrideSpriteMesh = SpriteMeshPostprocessor.GetSpriteMeshFromSprite(spriteRenderer.sprite);

                if (overrideSpriteMesh)
                {
                    spriteMesh = overrideSpriteMesh;
                }
                else
                {
                    spriteMesh = SpriteMeshUtils.CreateSpriteMesh(spriteRenderer.sprite);
                }
            }

            if (spriteMesh)
            {
                Undo.SetCurrentGroupName("create SpriteMeshInstance");
                Undo.DestroyObjectImmediate(spriteRenderer);
                SpriteMeshInstance spriteMeshInstance =
                    SpriteMeshUtils.CreateSpriteMeshInstance(spriteMesh, spriteRendererGO, true);

                spriteMeshInstance.sortingLayerID = sortingLayerID;
                spriteMeshInstance.sortingOrder   = sortingOrder;

                Selection.activeGameObject = spriteRendererGO;
            }
            else
            {
                Debug.Log("Select a SpriteRenderer with a Sprite to convert to SpriteMesh");
            }
        }
Exemple #2
0
        static void CreateInstance()
        {
            instance = SpriteMeshUtils.CreateSpriteMeshInstance(spriteMesh, false);

            if (instance)
            {
                s_InstanceBones = instance.bones;

                instance.transform.parent = parentTransform;

                if (parentTransform)
                {
                    instance.transform.localPosition = Vector3.zero;
                }
            }
        }