public static void AddRotationAction(this SCNNode node, SCNActionTimingMode mode, double secs, bool loop = false)
        {
            SCNAction rotateAction = SCNAction.RotateBy(0, (float)Math.PI, 0, secs);

            rotateAction.TimingMode = mode;

            if (loop)
            {
                SCNAction indefiniteRotation = SCNAction.RepeatActionForever(rotateAction);
                node.RunAction(indefiniteRotation, "rotation");
            }
            else
            {
                node.RunAction(rotateAction, "rotation");
            }
        }
Пример #2
0
 public static void MoveTo(this SCNNode node, SCNNode target, double timeInSeconds, SCNActionTimingMode timingMode = SCNActionTimingMode.EaseOut)
 => node.RunAction(SCNAction.MoveTo(new SCNVector3(target.Position.X, target.Position.Y, target.Position.Z), timeInSeconds).Ease(timingMode));
Пример #3
0
 public static void RotateBy(this SCNNode node, float x, float y, float z, double timeInSeconds, SCNActionTimingMode timingMode = SCNActionTimingMode.EaseOut)
 => node.RunAction(SCNAction.RotateBy(x, y, z, timeInSeconds).Ease(timingMode));
Пример #4
0
        public static SCNAction Ease(this SCNAction action, SCNActionTimingMode mode)
        {
            action.TimingMode = mode;

            return(action);
        }