Board.cs
Код: Выделить всё
void Start() {
for (int a = GridHeight; a > 0; a--) {
for (int b = 0; b < GridWidth; b++) {
g = Instantiate(gemprefab, new Vector3(b, a, 0), Quaternion.identity) as GameObject;
g.name = g.GetInstanceID().ToString();
g.transform.parent = gameObject.transform;
//LastGem=g.GetComponent();
gemComponent = g.GetComponent();
gems.Add(gemComponent);
gems1.Add(gemComponent);
if(a == 1 && b == 3)
{
gemComponent.cube.renderer.enabled = false;
}
}
}
//gems.Sort ();
//gems1.Sort ();
gameObject.transform.position = new Vector3(-2.5f, -2.5f, 0);
ChangePosition();
WinOrLose();
}
public void ChangePosition() {
for (int i = 0; i < gems.Count; i++) {
Vector3 temp = gems[i].transform.position;
randomIndex = Random.Range(0, gems.Count);
gems[i].transform.position = gems[randomIndex].transform.position;
gems[randomIndex].transform.position = temp;
}
}
public void SwapGem(Gem gem1) {
gem1start = gem1.transform.position;
gem1end = gemComponent.transform.position;
if (gemComponent.IsNeighbourWith (gem1)) {
gem2start = gem1end;
gem2end = gem1start;
gem1.transform.position = gem2start;
gemComponent.transform.position = gem2end;
}
}
public void WinOrLose() {
gems1.Sort ();
for (int i = 0; i < gems.Count; i++) {
for (int j = 0; j < gems.Count; j++) {
if (gems[i].GetInstanceID() == gems1[j].GetInstanceID()) {
print("match);
}
}
}
}
Код: Выделить всё
public void OnMouseDown() {
if (!GameObject.Find("board").GetComponent().isSwapping) {
GameObject.Find("board").GetComponent().SwapGem (this);
}
GameObject.Find("board").GetComponent().WinOrLose();
}
Подробнее здесь: https://stackoverflow.com/questions/238 ... -of-clones