private void DestroyHierarchy(TransformCache root) { Debug.Assert(root != null); var children = root.children; foreach (var child in children) { DestroyHierarchy(child); } skinningCache.Destroy(root); }
public void SetBoneParent(BoneCache newParent, BoneCache bone) { TransformCache parent = newParent; if (newParent == null) { parent = bone.skeleton; } skinningCache.RestoreBindPose(); bone.SetParent(parent, true); bone.SetDefaultPose(); }
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; } }
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(); }
new public void SetParent(TransformCache newParent) { SetParent(newParent, true); }