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"); } }
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; } } }