Пример #1
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.CompareTag("Tile"))
     {
         MyTileProperties tileProps = collision.gameObject.GetComponent <MyTileProperties>();
         if (tileProps)
         {
             GetComponent <Renderer>().material.SetColor("_Color", collision.gameObject.GetComponent <Renderer>().material.color);
             GameManager.instance.ModifyScore(tileProps.deltaScore);
             GameManager.instance.ModifyHealth(tileProps.deltaHealth);
             tileProps.LightUp();
             Destroy(tileProps);
         }
     }
 }
Пример #2
0
    void SetupTilesProperties()
    {
        int sum    = 0;
        int length = tileKinds.Length;

        foreach (TileKind tileKind in tileKinds)
        {
            sum += tileKind.probabilityRating;
        }

        int[] intervals = new int[length + 1];
        int   counter   = 0;

        intervals[0] = 0;

        for (int i = 1; i < length + 1; i++)
        {
            counter     += tileKinds[i - 1].probabilityRating;
            intervals[i] = counter;
        }

        foreach (GameObject tile in tiles)
        {
            float randomPick = sum * Random.value;
            for (int i = 0; i < length; i++)
            {
                if (randomPick >= intervals[i] && randomPick <= intervals[i + 1])
                {
                    TileKind         tileKind         = tileKinds[i];
                    MyTileProperties propertiesScript = tile.AddComponent <MyTileProperties>();
                    tileScripts[i] = propertiesScript;
                    propertiesScript.InitProperties(tileKind.color, tileKind.scoreChange, tileKind.healthChange, player);
                    break;
                }
            }
        }
    }