public void BeginCombineMesh()
        {
            if (!this._isCanCombineMesh || _unityArmature.isUGUI)
            {
                return;
            }
            //
            this._verticeOffset = 0;
            this._subSlotCount  = 0;
            this.slotNames.Clear();

            //
            if (this.meshBuffers != null)
            {
                for (var i = 0; i < this.meshBuffers.Length; i++)
                {
                    var meshBuffer = this.meshBuffers[i];
                    meshBuffer.Dispose();
                }

                this.meshBuffers = null;
            }

            List <CombineMeshInfo> combineSlots = new List <CombineMeshInfo>();

            //
            this.CollectMesh(this._unityArmature.armature, combineSlots);

            //
            //先合并
            this.meshBuffers = new MeshBuffer[combineSlots.Count];
            for (var i = 0; i < combineSlots.Count; i++)
            {
                var combineSlot = combineSlots[i];
                //
                var        proxySlot  = combineSlot.proxySlot;
                MeshBuffer meshBuffer = new MeshBuffer();
                meshBuffer.name       = proxySlot._meshBuffer.name;
                meshBuffer.sharedMesh = MeshBuffer.GenerateMesh();
                meshBuffer.sharedMesh.Clear();

                meshBuffer.CombineMeshes(combineSlot.combines.ToArray());
                meshBuffer.vertexDirty = true;
                //
                proxySlot._meshFilter.sharedMesh = meshBuffer.sharedMesh;

                this.meshBuffers[i] = meshBuffer;

                //
                this._verticeOffset = 0;
                for (int j = 0; j < combineSlot.slots.Count; j++)
                {
                    var slot = combineSlot.slots[j];

                    slot._isCombineMesh      = true;
                    slot._sumMeshIndex       = i;
                    slot._verticeOrder       = j;
                    slot._verticeOffset      = this._verticeOffset;
                    slot._combineMesh        = this;
                    slot._meshBuffer.enabled = false;

                    if (slot._renderDisplay != null)
                    {
                        slot._renderDisplay.SetActive(false);
                        slot._renderDisplay.hideFlags = HideFlags.HideInHierarchy;

                        var transform = slot._renderDisplay.transform;

                        transform.localPosition    = new Vector3(0.0f, 0.0f, transform.localPosition.z);
                        transform.localEulerAngles = Vector3.zero;
                        transform.localScale       = Vector3.one;
                    }
                    //
                    slot._meshDirty      = true;
                    slot._transformDirty = true;
                    slot.Update(-1);

                    //
                    meshBuffer.combineSlots.Add(slot);

                    this.slotNames.Add(slot.name);

                    this._verticeOffset += slot._meshBuffer.vertexBuffers.Length;
                    this._subSlotCount++;
                }

                //被合并的显示
                if (proxySlot._renderDisplay != null)
                {
                    proxySlot._renderDisplay.SetActive(true);
                    proxySlot._renderDisplay.hideFlags = HideFlags.None;
                }
            }
        }