Example #1
0
        public void LoadLevel(int levelNum)
        {
            loadedLevelNum = levelNum - 1;
            Level level = levels[loadedLevelNum];

            CS.SetCoordinateSystem(level.Width, level.Height, level.MarginHorizontal);
            GUIManager.instance.LoadLevel();
            GameManager gameManager = GameManager.instance;

            gameManager.SwipeScreen.UpdateSize();
            gameManager.Background.sprite = level.Background;
            foreach (var elem in elementsPool)
            {
                elem.SetActive(false);
            }
            GameObject element;
            int        elementsPoolNum = 0;

            Element[,] elements = new Element[level.Height, level.Width];
            for (int i = 0; i < level.Height; i++)
            {
                for (int j = 0; j < level.Width; j++)
                {
                    int id = level.Width * i + j;
                    if (level.ElementsID[id] == -1)
                    {
                        continue;
                    }

                    element = GetElement(elementsPoolNum++);
                    element.SetActive(true);
                    element.transform.localScale    = Vector2.one * CS.ElementScale;
                    element.transform.localPosition = CS.GetPosition(i, j);
                    SpriteRenderer sprRend = element.GetComponent <SpriteRenderer>();
                    sprRend.sortingOrder = CS.GetSortingOrder(i, j);
                    Animator animator = element.GetComponent <Animator>();
                    animator.runtimeAnimatorController = gameManager.Elements[level.ElementsID[id]].Controller;
                    animator.SetFloat("Random", Random.Range(0f, 1f));
                    elements[i, j] = new Element(level.ElementsID[id], element.transform, sprRend);
                }
            }
            game.GetElements(elements);
        }