public override void Dispose() { base.Dispose(); if (matrices != null) matrices.Dispose(); instanceIDs = null; parentIDs = null; matrices = null; }
public override void Dispose() { base.Dispose(); if (header != null) header.Dispose(); if (subMeshes != null) subMeshes.Dispose(); if (vertices != null) vertices.Dispose(); if (uv != null) uv.Dispose(); if (uv1 != null) uv1.Dispose(); if (uv2 != null) uv2.Dispose(); if (uv3 != null) uv3.Dispose(); if (uv4 != null) uv4.Dispose(); if (bindPoses != null) bindPoses.Dispose(); if (bones != null) bones.Dispose(); if (boneWeights != null) boneWeights.Dispose(); header = null; subMeshes = null; triangles = null; vertices = null; uv = null; uv1 = null; uv2 = null; uv3 = null; uv4 = null; bindPoses = null; bones = null; boneWeights = null; }
public SBonesArray(Transform[] input, int rootID) { count = input.Length; instanceIDs = new int[count]; parentIDs = new int[count]; Matrix4x4[] worldMatrices = new Matrix4x4[count]; int iMax = input.Length; for (int i = 0; i < iMax; i++) { Transform bone = input[i]; int childID = bone.GetInstanceID(); instanceIDs[i] = childID; if (bone.parent != null) { int parentID = bone.parent.GetInstanceID(); if (parentID != rootID) { parentIDs[i] = parentID; } else { parentIDs[i] = -1; //Known root element } } else { parentIDs[i] = -1; //probible root element } worldMatrices[i] = bone.localToWorldMatrix; } //Debug.Log("test: " + test); matrices = new SMatrix4x4Array(worldMatrices); }