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);
     }
 }
Esempio n. 2
0
        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;
                }
            }
        }