|
using System.Collections.Generic; |
|
using UnityEngine; |
|
|
|
public class Match3TileSelector : MonoBehaviour |
|
{ |
|
public GameObject emptyTile; |
|
public GameObject[] tileTypes = new GameObject[0]; |
|
public Material[] materialTypes = new Material[0]; |
|
|
|
private Dictionary<int, MeshRenderer> tileDict = new Dictionary<int, MeshRenderer>(); |
|
|
|
|
|
void Awake() |
|
{ |
|
for (int i = 0; i < tileTypes.Length; i++) |
|
{ |
|
tileDict.Add(i, tileTypes[i].GetComponent<MeshRenderer>()); |
|
} |
|
|
|
SetActiveTile(0, 0); |
|
} |
|
|
|
public void AllTilesOff() |
|
{ |
|
foreach (var item in tileTypes) |
|
{ |
|
item.SetActive(false); |
|
} |
|
} |
|
|
|
public void SetActiveTile(int typeIndex, int matIndex) |
|
{ |
|
if (matIndex == -1) |
|
{ |
|
AllTilesOff(); |
|
emptyTile.SetActive(true); |
|
} |
|
else |
|
{ |
|
emptyTile.SetActive(false); |
|
for (int i = 0; i < tileTypes.Length; i++) |
|
{ |
|
if (i == typeIndex) |
|
{ |
|
tileTypes[i].SetActive(true); |
|
tileDict[i].sharedMaterial = materialTypes[matIndex]; |
|
} |
|
else |
|
{ |
|
tileTypes[i].SetActive(false); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|