Exemple #1
0
    public void Init()
    {
        _gems = new GemController[_itemsInRow, _itemsInRow];

        float prefabSize = _gemPrefab.GetComponent <Renderer>().bounds.size.x;

        for (int i = 0; i < _itemsInRow; i++)
        {
            for (int j = 0; j < _itemsInRow; j++)
            {
                if (i == _itemsInRow - 1 && j == _itemsInRow - 1)
                {
                    _blankPos   = new IntVector2(i, j);
                    _gems[i, j] = GemController.BlankGem();
                    continue;
                }
                GemController gem = Instantiate(_gemPrefab);
                gem.transform.parent        = transform;
                gem.transform.localRotation = new Quaternion(0, 0, 0, 0);
                gem.transform.localScale    = Vector3.one * prefabSize;


                float x = (j - _itemsInRow * 0.5f + 0.5f) * prefabSize;
                //FIXME not elegant, but works as aspected. God forgive me
                Vector3 newPos = new Vector3(
                    (j - _itemsInRow * 0.5f + 0.5f) * prefabSize * _gemsOffset,
                    _gemPrefab.transform.localPosition.y,
                    ((_itemsInRow - i - 1) - _itemsInRow * 0.5f + 0.5f) * prefabSize * _gemsOffset);

                gem.transform.localPosition = newPos;
                gem.Init(i * _itemsInRow + (j) + 1, prefabSize * _gemsOffset);
                _gems[j, i] = gem;
            }
        }
        Shuffle();

        //LogArray();
    }