Ejemplo n.º 1
0
    private void InitializeGrid(Shader shader, int width, int height, Gem gemPrefab, int gemSize, int spaceBetweenGems)
    {
        Vector2 gemShift = new Vector2((gemSize + spaceBetweenGems) * (width - 1) / 2f, (gemSize + spaceBetweenGems) * (height - 1) / 2f);

        GameObject bottom = new GameObject("Bottom");

        bottom.transform.SetParent(transform, false);
        bottom.transform.localPosition = new Vector3(0f, -(gemShift.y + gemSize / 2f), 0f);
        top = -bottom.transform.localPosition.y;

        BoxCollider bottomCollider = bottom.AddComponent <BoxCollider>();

        bottomCollider.size = new Vector3(gemShift.x * 2f + gemSize, 0f, gemSize);

        for (int x = 0; x < width; x++)
        {
            for (int y = 0; y < height; y++)
            {
                Gem gemObj = Instantiate(gemPrefab, new Vector3((gemSize + spaceBetweenGems) * x, (gemSize + spaceBetweenGems) * y, 0f), Quaternion.identity);
                gemObj.transform.SetParent(transform, false);
                gemObj.transform.localPosition -= new Vector3(gemShift.x, gemShift.y, 0f);

                gemObj.Init(this, gemSize, shader);
                gemObj.CreateMarkers(spaceBetweenGems);

                gems.Add(gemObj);
            }
        }
    }