NewPartsRendererGameObject() public static method

public static NewPartsRendererGameObject ( Transform parent, string name ) : SkeletonPartsRenderer
parent UnityEngine.Transform
name string
return SkeletonPartsRenderer
Example #1
0
        /// <summary>Add a child SkeletonPartsRenderer GameObject to this SkeletonRenderSeparator.</summary>
        public SkeletonPartsRenderer AddPartsRenderer(int sortingOrderIncrement = DefaultSortingOrderIncrement, string name = null)
        {
            int sortingLayerID = 0;
            int sortingOrder   = 0;

            if (partsRenderers.Count > 0)
            {
                var previous             = partsRenderers[partsRenderers.Count - 1];
                var previousMeshRenderer = previous.MeshRenderer;
                sortingLayerID = previousMeshRenderer.sortingLayerID;
                sortingOrder   = previousMeshRenderer.sortingOrder + sortingOrderIncrement;
            }

            if (string.IsNullOrEmpty(name))
            {
                name = partsRenderers.Count.ToString();
            }

            var spr = SkeletonPartsRenderer.NewPartsRendererGameObject(skeletonRenderer.transform, name);

            partsRenderers.Add(spr);

            var mr = spr.MeshRenderer;

            mr.sortingLayerID = sortingLayerID;
            mr.sortingOrder   = sortingOrder;

            return(spr);
        }
        /// <summary>Adds a SkeletonRenderSeparator and child SkeletonPartsRenderer GameObjects to a given SkeletonRenderer.</summary>
        /// <returns>The to skeleton renderer.</returns>
        /// <param name="skeletonRenderer">The target SkeletonRenderer or SkeletonAnimation.</param>
        /// <param name="sortingLayerID">Sorting layer to be used for the parts renderers.</param>
        /// <param name="extraPartsRenderers">Number of additional SkeletonPartsRenderers on top of the ones determined by counting the number of separator slots.</param>
        /// <param name="sortingOrderIncrement">The integer to increment the sorting order per SkeletonPartsRenderer to separate them.</param>
        /// <param name="baseSortingOrder">The sorting order value of the first SkeletonPartsRenderer.</param>
        /// <param name="addMinimumPartsRenderers">If set to <c>true</c>, a minimum number of SkeletonPartsRenderer GameObjects (determined by separatorSlots.Count + 1) will be added.</param>
        public static SkeletonRenderSeparator AddToSkeletonRenderer(SkeletonRenderer skeletonRenderer, int sortingLayerID = 0, int extraPartsRenderers = 0, int sortingOrderIncrement = DefaultSortingOrderIncrement, int baseSortingOrder = 0, bool addMinimumPartsRenderers = true)
        {
            if (skeletonRenderer == null)
            {
                Debug.Log("Tried to add SkeletonRenderSeparator to a null SkeletonRenderer reference.");
                return(null);
            }

            var srs = skeletonRenderer.gameObject.AddComponent <SkeletonRenderSeparator>();

            srs.skeletonRenderer = skeletonRenderer;

            skeletonRenderer.Initialize(false);
            int count = extraPartsRenderers;

            if (addMinimumPartsRenderers)
            {
                count = extraPartsRenderers + skeletonRenderer.separatorSlots.Count + 1;
            }

            var skeletonRendererTransform = skeletonRenderer.transform;
            var componentRenderers        = srs.partsRenderers;

            for (int i = 0; i < count; i++)
            {
                var spr = SkeletonPartsRenderer.NewPartsRendererGameObject(skeletonRendererTransform, i.ToString());
                var mr  = spr.MeshRenderer;
                mr.sortingLayerID = sortingLayerID;
                mr.sortingOrder   = baseSortingOrder + (i * sortingOrderIncrement);
                componentRenderers.Add(spr);
            }

            return(srs);
        }
Example #3
0
        public static SkeletonRenderSeparator AddToSkeletonRenderer(Spine.Unity.SkeletonRenderer skeletonRenderer, int sortingLayerID = 0, int extraPartsRenderers = 0, int sortingOrderIncrement = 5, int baseSortingOrder = 0, bool addMinimumPartsRenderers = true)
        {
            if (skeletonRenderer == null)
            {
                Debug.Log("Tried to add SkeletonRenderSeparator to a null SkeletonRenderer reference.");
                return(null);
            }
            SkeletonRenderSeparator separator = skeletonRenderer.gameObject.AddComponent <SkeletonRenderSeparator>();

            separator.skeletonRenderer = skeletonRenderer;
            skeletonRenderer.Initialize(false);
            int num = extraPartsRenderers;

            if (addMinimumPartsRenderers)
            {
                num = (extraPartsRenderers + skeletonRenderer.separatorSlots.Count) + 1;
            }
            Transform parent = skeletonRenderer.transform;
            List <SkeletonPartsRenderer> partsRenderers = separator.partsRenderers;

            for (int i = 0; i < num; i++)
            {
                SkeletonPartsRenderer item         = SkeletonPartsRenderer.NewPartsRendererGameObject(parent, i.ToString());
                MeshRenderer          meshRenderer = item.MeshRenderer;
                meshRenderer.sortingLayerID = sortingLayerID;
                meshRenderer.sortingOrder   = baseSortingOrder + (i * sortingOrderIncrement);
                partsRenderers.Add(item);
            }
            return(separator);
        }
Example #4
0
        public static SkeletonRenderSeparator AddToSkeletonRenderer(SkeletonRenderer skeletonRenderer, int sortingLayerID = 0, int extraPartsRenderers = 0, int sortingOrderIncrement = 5, int baseSortingOrder = 0, bool addMinimumPartsRenderers = true)
        {
            if (skeletonRenderer == null)
            {
                return(null);
            }
            SkeletonRenderSeparator skeletonRenderSeparator = skeletonRenderer.gameObject.AddComponent <SkeletonRenderSeparator>();

            skeletonRenderSeparator.skeletonRenderer = skeletonRenderer;
            skeletonRenderer.Initialize(overwrite: false);
            int num = extraPartsRenderers;

            if (addMinimumPartsRenderers)
            {
                num = extraPartsRenderers + skeletonRenderer.separatorSlots.Count + 1;
            }
            Transform transform = skeletonRenderer.transform;
            List <SkeletonPartsRenderer> list = skeletonRenderSeparator.partsRenderers;

            for (int i = 0; i < num; i++)
            {
                SkeletonPartsRenderer skeletonPartsRenderer = SkeletonPartsRenderer.NewPartsRendererGameObject(transform, i.ToString());
                MeshRenderer          meshRenderer          = skeletonPartsRenderer.MeshRenderer;
                meshRenderer.sortingLayerID = sortingLayerID;
                meshRenderer.sortingOrder   = baseSortingOrder + i * sortingOrderIncrement;
                list.Add(skeletonPartsRenderer);
            }
            return(skeletonRenderSeparator);
        }
Example #5
0
        /// <summary>Adds a SkeletonRenderSeparator and child SkeletonPartsRenderer GameObjects to a given SkeletonRenderer.</summary>
        /// <returns>The to skeleton renderer.</returns>
        /// <param name="skeletonRenderer">The target SkeletonRenderer or SkeletonAnimation.</param>
        /// <param name="sortingLayerID">Sorting layer to be used for the parts renderers.</param>
        /// <param name="extraPartsRenderers">Number of additional SkeletonPartsRenderers on top of the ones determined by counting the number of separator slots.</param>
        /// <param name="sortingOrderIncrement">The integer to increment the sorting order per SkeletonPartsRenderer to separate them.</param>
        /// <param name="baseSortingOrder">The sorting order value of the first SkeletonPartsRenderer.</param>
        /// <param name="addMinimumPartsRenderers">If set to <c>true</c>, a minimum number of SkeletonPartsRenderer GameObjects (determined by separatorSlots.Count + 1) will be added.</param>
        public static SkeletonRenderSeparator AddToSkeletonRenderer(SkeletonRenderer skeletonRenderer, int sortingLayerID = 0, int extraPartsRenderers = 0, int sortingOrderIncrement = DefaultSortingOrderIncrement, int baseSortingOrder = 0, bool addMinimumPartsRenderers = true)
        {
            if (skeletonRenderer == null)
            {
                Debug.Log("Tried to add SkeletonRenderSeparator to a null SkeletonRenderer reference.");
                return(null);
            }

            var srs = skeletonRenderer.gameObject.AddComponent <SkeletonRenderSeparator>();

            srs.skeletonRenderer = skeletonRenderer;

            skeletonRenderer.Initialize(false);
            int count = extraPartsRenderers;

            if (addMinimumPartsRenderers)
            {
                count = extraPartsRenderers + skeletonRenderer.separatorSlots.Count + 1;
            }

            var skeletonRendererTransform = skeletonRenderer.transform;
            var componentRenderers        = srs.partsRenderers;

            for (int i = 0; i < count; i++)
            {
                var spr = SkeletonPartsRenderer.NewPartsRendererGameObject(skeletonRendererTransform, i.ToString());
                var mr  = spr.MeshRenderer;
                mr.sortingLayerID = sortingLayerID;
                mr.sortingOrder   = baseSortingOrder + (i * sortingOrderIncrement);
                componentRenderers.Add(spr);
            }

            srs.OnEnable();

                        #if UNITY_EDITOR
            // Make sure editor updates properly in edit mode.
            if (!Application.isPlaying)
            {
                skeletonRenderer.enabled = false;
                skeletonRenderer.enabled = true;
                skeletonRenderer.LateUpdate();
            }
                        #endif

            return(srs);
        }
        public void AddPartsRenderer(int count)
        {
            var  componentRenderers = component.partsRenderers;
            bool emptyFound         = componentRenderers.Contains(null);

            if (emptyFound)
            {
                bool userClearEntries = EditorUtility.DisplayDialog("Empty entries found", "Null entries found. Do you want to remove null entries before adding the new renderer? ", "Clear Empty Entries", "Don't Clear");
                if (userClearEntries)
                {
                    componentRenderers.RemoveAll(x => x == null);
                }
            }

            Undo.RegisterCompleteObjectUndo(component, "Add Parts Renderers");
            for (int i = 0; i < count; i++)
            {
                int index = componentRenderers.Count;
                var smr   = SkeletonPartsRenderer.NewPartsRendererGameObject(component.transform, index.ToString());
                Undo.RegisterCreatedObjectUndo(smr.gameObject, "New Parts Renderer GameObject.");
                componentRenderers.Add(smr);

                // increment renderer sorting order.
                if (index == 0)
                {
                    continue;
                }
                var prev = componentRenderers[index - 1]; if (prev == null)
                {
                    continue;
                }

                var prevMeshRenderer    = prev.GetComponent <MeshRenderer>();
                var currentMeshRenderer = smr.GetComponent <MeshRenderer>();
                if (prevMeshRenderer == null || currentMeshRenderer == null)
                {
                    continue;
                }

                int prevSortingLayer = prevMeshRenderer.sortingLayerID;
                int prevSortingOrder = prevMeshRenderer.sortingOrder;
                currentMeshRenderer.sortingLayerID = prevSortingLayer;
                currentMeshRenderer.sortingOrder   = prevSortingOrder + SkeletonRenderSeparator.DefaultSortingOrderIncrement;
            }
        }
Example #7
0
        public void AddPartsRenderer(int sortingOrderIncrement = 5)
        {
            int sortingLayerID = 0;
            int num2           = 0;

            if (this.partsRenderers.Count > 0)
            {
                SkeletonPartsRenderer renderer  = this.partsRenderers[this.partsRenderers.Count - 1];
                MeshRenderer          renderer2 = renderer.MeshRenderer;
                sortingLayerID = renderer2.sortingLayerID;
                num2           = renderer2.sortingOrder + sortingOrderIncrement;
            }
            SkeletonPartsRenderer item = SkeletonPartsRenderer.NewPartsRendererGameObject(this.skeletonRenderer.transform, this.partsRenderers.Count.ToString());

            this.partsRenderers.Add(item);
            MeshRenderer meshRenderer = item.MeshRenderer;

            meshRenderer.sortingLayerID = sortingLayerID;
            meshRenderer.sortingOrder   = num2;
        }
Example #8
0
        public void AddPartsRenderer(int sortingOrderIncrement = 5)
        {
            int sortingLayerID = 0;
            int sortingOrder   = 0;

            if (partsRenderers.Count > 0)
            {
                SkeletonPartsRenderer skeletonPartsRenderer = partsRenderers[partsRenderers.Count - 1];
                MeshRenderer          meshRenderer          = skeletonPartsRenderer.MeshRenderer;
                sortingLayerID = meshRenderer.sortingLayerID;
                sortingOrder   = meshRenderer.sortingOrder + sortingOrderIncrement;
            }
            SkeletonPartsRenderer skeletonPartsRenderer2 = SkeletonPartsRenderer.NewPartsRendererGameObject(skeletonRenderer.transform, partsRenderers.Count.ToString());

            partsRenderers.Add(skeletonPartsRenderer2);
            MeshRenderer meshRenderer2 = skeletonPartsRenderer2.MeshRenderer;

            meshRenderer2.sortingLayerID = sortingLayerID;
            meshRenderer2.sortingOrder   = sortingOrder;
        }
        /// <summary>Add a child SkeletonPartsRenderer GameObject to this SkeletonRenderSeparator.</summary>
        public void AddPartsRenderer(int sortingOrderIncrement = DefaultSortingOrderIncrement)
        {
            int sortingLayerID = 0;
            int sortingOrder   = 0;

            if (partsRenderers.Count > 0)
            {
                var previous             = partsRenderers[partsRenderers.Count - 1];
                var previousMeshRenderer = previous.MeshRenderer;
                sortingLayerID = previousMeshRenderer.sortingLayerID;
                sortingOrder   = previousMeshRenderer.sortingOrder + sortingOrderIncrement;
            }

            var spr = SkeletonPartsRenderer.NewPartsRendererGameObject(skeletonRenderer.transform, partsRenderers.Count.ToString());

            partsRenderers.Add(spr);

            var mr = spr.MeshRenderer;

            mr.sortingLayerID = sortingLayerID;
            mr.sortingOrder   = sortingOrder;
        }