示例#1
0
        public override void PresentStep(int index, PresentationViewController presentationViewController)
        {
            SCNTransaction.Begin();

            switch (index)
            {
            case 0:
                // Set the slide's title and subtitle and add some text
                TextManager.SetTitle("Skinning");

                TextManager.AddBulletAtLevel("Animate characters", 0);
                TextManager.AddBulletAtLevel("Deform geometries with a skeleton", 0);
                TextManager.AddBulletAtLevel("Joints and bones", 0);

                // Animate the character
                CharacterNode.AddAnimation(IdleAnimationGroup, new NSString("idleAnimation"));

                // The character is hidden. Wait a little longer before showing it
                // otherwise it may slow down the transition from the previous slide
                var delayInSeconds = 1.5;
                var popTime        = new DispatchTime(DispatchTime.Now, (long)(delayInSeconds * Utils.NSEC_PER_SEC));
                DispatchQueue.MainQueue.DispatchAfter(popTime, () => {
                    SCNTransaction.Begin();
                    SCNTransaction.AnimationDuration = 0;
                    CharacterNode.Hidden             = false;
                    CharacterNode.Opacity            = 0;
                    SCNTransaction.Commit();

                    SCNTransaction.Begin();
                    SCNTransaction.AnimationDuration       = 1.5;
                    SCNTransaction.AnimationTimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseIn);
                    CharacterNode.Opacity = 1;
                    SCNTransaction.Commit();
                });
                break;

            case 1:
                SCNTransaction.AnimationDuration = 1.5f;
                //TODO SetShowsBones (true);
                break;

            case 2:
                CharacterNode.AddAnimation(AnimationGroup1, new NSString("animation"));
                break;

            case 3:
                SCNTransaction.AnimationDuration = 1.5f;
                //TODO SetShowsBones (false);
                break;

            case 4:
                CharacterNode.AddAnimation(AnimationGroup1, new NSString("animation"));
                break;
            }
            SCNTransaction.Commit();
        }