private void DestroyHierarchy(TransformCache root)
        {
            Debug.Assert(root != null);

            var children = root.children;

            foreach (var child in children)
            {
                DestroyHierarchy(child);
            }

            skinningCache.Destroy(root);
        }
Beispiel #2
0
        public void SetBoneParent(BoneCache newParent, BoneCache bone)
        {
            TransformCache parent = newParent;

            if (newParent == null)
            {
                parent = bone.skeleton;
            }

            skinningCache.RestoreBindPose();
            bone.SetParent(parent, true);
            bone.SetDefaultPose();
        }
Beispiel #3
0
        new public void SetParent(TransformCache newParent, bool worldPositionStays)
        {
            if (parentBone != null && parentBone.chainedChild == this)
            {
                parentBone.chainedChild = null;
            }

            base.SetParent(newParent, worldPositionStays);

            if (parentBone != null && parentBone.chainedChild == null && (parentBone.endPosition - position).sqrMagnitude < 0.001f)
            {
                parentBone.chainedChild = this;
            }
        }
Beispiel #4
0
        public void SetBoneParent(BoneCache newParent, BoneCache bone, int insertAtIndex)
        {
            TransformCache parent = newParent;

            if (newParent == null)
                parent = bone.skeleton;

            skinningCache.RestoreBindPose();
            bone.SetParent(parent, true);

            if (insertAtIndex == -1)
                insertAtIndex = parent.ChildCount;

            bone.siblingIndex = insertAtIndex;
            bone.SetDefaultPose();
        }
Beispiel #5
0
 new public void SetParent(TransformCache newParent)
 {
     SetParent(newParent, true);
 }