Exemplo n.º 1
0
        void SetLevel(LevelBehaviour level, int dir)
        {
            if (level != currentLevel)
            {
                return;
            }

            progressing = true;

            var levelIndex = Array.IndexOf(levels, level);

            if ((levelIndex == 0 & dir < 0) || (levelIndex == levels.Length - 1 && dir > 0))
            {
                currentLevel.TransitToIdentity(transitionSpeed, TransitionCompleted);
            }
            else
            {
                var nextLevelIndex = dir < 0 ? levelIndex - 1 : levelIndex + 1;
                var nextLevel      = levels[nextLevelIndex];

                currentLevel.TransitTo(nextLevel, transitionSpeed, TransitionCompleted);

                currentLevel = nextLevel;
            }
        }
Exemplo n.º 2
0
        // Use this for initialization
        void Start()
        {
            levels = transform.GetComponentsInChildren <LevelBehaviour>();
            LevelBehaviour preview = levels[0];

            foreach (var level in levels.Skip(1))
            {
                level.SetRotatorFor(preview);
                preview = level;
            }
            currentLevel = levels[0];
            currentLevel.SetPlatform(platform.transform);
        }
Exemplo n.º 3
0
 public void SignalLevel(LevelBehaviour level, int dir)
 {
     if (progressing)
     {
         queredLevel = level;
         queredDir   = dir;
         return;
     }
     else
     {
         SetLevel(level, dir);
     }
 }
Exemplo n.º 4
0
 void Update()
 {
     if (!progressing && locks == 0)
     {
         if (queredLevel != null)
         {
             SetLevel(queredLevel, queredDir);
             queredLevel = null;
         }
         else
         {
             if (Time.fixedTime - completedTime > pauseDuration)
             {
                 SetLevel(currentLevel, -1);
             }
         }
     }
 }
Exemplo n.º 5
0
 Quaternion GetGoalLocalRotation(LevelBehaviour level)
 {
     return(WorldToLocalRotation(Quaternion.LookRotation(level.rotator.position - rotator.position)));
 }
Exemplo n.º 6
0
        public void TransitTo(LevelBehaviour level, float speedDegrees, Action completedCallback)
        {
            endPoint = GetGoalLocalRotation(level);

            TransitTo(endPoint, speedDegrees, completedCallback);
        }
Exemplo n.º 7
0
 public void SetRotatorFor(LevelBehaviour level)
 {
     rotator.localRotation = GetGoalLocalRotation(level);
 }