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