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); } } }
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; } } } }