void FindMorphTransforms() { if (this.targetMesh != null) { if (targetMesh.sharedMesh.blendShapeCount == 0) { UnityEngine.Debug.LogError("Couldn't find characters blend shapes."); } else { for (int i = 0; i < targetMesh.sharedMesh.blendShapeCount; i++) { string name = targetMesh.sharedMesh.GetBlendShapeName(i); string[] namePartition = name.Split('.'); name = namePartition[namePartition.Length - 1]; //Do not track this blendshape. if (name != "BaseHeadGeo" && name != "BaseHead") { MorphTransform morphTransform = new MorphTransform(name, targetMesh, i); if (this.animationTransforms.ContainsKey(name)) { this.animationTransforms[name] = morphTransform; } else { this.animationTransforms.Add(name, morphTransform); } } else { targetMesh.SetBlendShapeWeight(i, 100f); //Activate character head } } } } }
public override void Bind(TransformBase animationTransform) { this.morphTransform = animationTransform as MorphTransform; }