/// <summary> /// Applies the vertexData to the deform mesh. /// </summary> protected void ApplyVertexDataToTarget(NormalsCalculationMode normalsCalculation, float smoothingAngle) { VertexDataUtil.ApplyVertexData(vertexData, deformMesh); UpdateNormals(normalsCalculation, smoothingAngle); deformMesh.RecalculateBounds(); }
/// <summary> /// Applies the vertexData to the deform mesh. /// </summary> protected void ApplyVertexDataToTarget(NormalsCalculationMode normalsCalculation) { VertexDataUtil.ApplyVertexData(vertexData, deformMesh); if (meshCollider != null) { meshCollider.inflateMesh = true; meshCollider.sharedMesh = deformMesh; } UpdateNormals(normalsCalculation); deformMesh.RecalculateBounds(); }
/// <summary> /// Sets the position of each vertex to it's base position. /// </summary> protected void ResetVertexData() { VertexDataUtil.ResetVertexData(vertexData); }
/// <summary> /// Sets vertexData to the vertexData of the original mesh. /// </summary> public void RecreateVertexData() { vertexData = VertexDataUtil.GetVertexData(originalMesh); }
protected override void DeformVertexData() { // I'm not threading savvy, but I have a hunch that using all these locks isn't the ideal solution. lock (vertexData) { lock (deformers) { RemoveNullDeformers(); for (var deformerIndex = 0; deformerIndex < deformers.Count; deformerIndex++) { lock (deformers[deformerIndex]) { if (deformers[deformerIndex].update) { vertexData = deformers[deformerIndex].Modify(vertexData, SyncedTransform, VertexDataUtil.GetBounds(vertexData)); } } } } } NotifyPostModify(); }
protected override void DeformVertexData() { lock (vertexData) { lock (deformers) { RemoveNullDeformers(); for (var deformerIndex = 0; deformerIndex < deformers.Count; deformerIndex++) { lock (deformers[deformerIndex]) { if (deformers[deformerIndex].update) { vertexData = deformers[deformerIndex].Modify(vertexData, SyncedTransform, VertexDataUtil.GetBounds(vertexData)); } } } } } NotifyPostModify(); }