public AnimationState(SkinnedMesh m) { this.Mesh = m; foreach (var node in m.skeleton) { var name = node.Name; skeletonNodeDict[name] = node; skeletonNodeList.Add(node); BlendNodes[name] = new PoseBlendNode(node); } }
public void PlayAnimation(AnimationClip anim, float transitionTime) { Animation = anim; foreach (var node in skeletonNodeList) { var name = node.Name; AnimationNodeChannel channel; anim.Channels.TryGetValue(name, out channel); BlendNode newBlendNode = null; if (channel == null) { newBlendNode = new PoseBlendNode(node); } else { newBlendNode = new AnimationBlendNode(channel); } newBlendNode.FadingOut = BlendNodes[name]; newBlendNode.TotalTransitionTime = transitionTime; BlendNodes[name] = newBlendNode; } }