public void AddInstanceNotify(CGfxNotify notify, EngineNS.Macross.MacrossGetter <CGfxNotify> macrossGetter) { AnimationClip?.ClipInstance.Notifies.Add(notify); if (NofityPairs.ContainsKey(notify.ID)) { NofityPairs[notify.ID] = macrossGetter; } else { NofityPairs.Add(notify.ID, macrossGetter); } }
public void CreateAnimationInstanceMacross(EngineNS.GamePlay.Actor.GActor actor) { EngineNS.Macross.MacrossGetter <EngineNS.GamePlay.Component.GAnimationInstance> macrossGetter = new EngineNS.Macross.MacrossGetter <EngineNS.GamePlay.Component.GAnimationInstance>(); macrossGetter.Name = RName.GetRName("Animation/amc_robot.macross"); var animationCom = macrossGetter.Get(); animationCom.Init(); actor.AddComponent(animationCom); var meshComp = actor.GetComponent <EngineNS.GamePlay.Component.GMutiMeshComponent>(); foreach (var subMesh in meshComp.Meshes) { var skinModifier = subMesh.Value.MdfQueue.FindModifier <EngineNS.Graphics.Mesh.CGfxSkinModifier>(); if (animationCom.AnimationPose != null) { skinModifier.AnimationPose = animationCom.AnimationPose; } } }