public void SetColor(GameObject p) { bool cansetcolor = true; if (operater == null) { operater = FindObjectOfType <MagicCubeOperate> (); } MagicColor curcolor = operater.EditColor; if (cubecolor.ContainsKey (p)) { foreach (GameObject g in cubecolor.Keys) { if (g != p) { if (!cubecolor [g].Equals (MagicColor.None)) { if (cubecolor [g] == curcolor) { cansetcolor = false; break; } int index = (int)curcolor; if (index >= 3 && (int)cubecolor [g] == index - 3) { cansetcolor = false; break; } else if (index < 3 && (int)cubecolor [g] == index + 3) { cansetcolor = false; break; } } } } if (cansetcolor) { p.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [curcolor]; cubecolor [p] = curcolor; } } }
public void SetEditColor() { SingleBox[] boxes = FindObjectsOfType <SingleBox> (); foreach (SingleBox b in boxes) { b.InitColor(); } // 设置编辑颜色的初始颜色 MagicCubeOperate opetarer = FindObjectOfType <MagicCubeOperate> (); SingleBoxPiece[] pieces = FindObjectsOfType <SingleBoxPiece> (); foreach (SingleBoxPiece p in pieces) { if (Mathf.Abs(p.transform.position.x) < 1.25f && Mathf.Abs(p.transform.position.y) < 1.25f && Mathf.Abs(p.transform.position.z) < 1.25f) { p.GetComponent <MeshRenderer> ().material.color = new Color(0f, 0f, 0f, 0.5f); p.enabled = false; } else { SingleBox sb = p.GetComponentInParent <SingleBox> (); if (sb.myStyle.Equals(CubeStyle.Face)) { if (p.transform.position.x >= 1.25f) { opetarer.PickColor(MagicColor.Green); sb.SetColor(p.gameObject); } else if (p.transform.position.x <= -1.25f) { opetarer.PickColor(MagicColor.Blue); sb.SetColor(p.gameObject); } else if (p.transform.position.y >= 1.25f) { opetarer.PickColor(MagicColor.Yellow); sb.SetColor(p.gameObject); } else if (p.transform.position.y <= -1.25f) { opetarer.PickColor(MagicColor.White); sb.SetColor(p.gameObject); } else if (p.transform.position.z <= -1.25f) { opetarer.PickColor(MagicColor.Red); sb.SetColor(p.gameObject); } else if (p.transform.position.z >= 1.25f) { opetarer.PickColor(MagicColor.Orange); sb.SetColor(p.gameObject); } } } } }
public void SetColor(GameObject p) { bool cansetcolor = true; if (operater == null) { operater = FindObjectOfType <MagicCubeOperate> (); } MagicColor curcolor = operater.EditColor; if (cubecolor.ContainsKey(p)) { foreach (GameObject g in cubecolor.Keys) { if (g != p) { if (!cubecolor [g].Equals(MagicColor.None)) { if (cubecolor [g] == curcolor) { cansetcolor = false; break; } int index = (int)curcolor; if (index >= 3 && (int)cubecolor [g] == index - 3) { cansetcolor = false; break; } else if (index < 3 && (int)cubecolor [g] == index + 3) { cansetcolor = false; break; } } } } if (cansetcolor) { p.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [curcolor]; cubecolor [p] = curcolor; } } }
void Start() { operater = FindObjectOfType <MagicCubeOperate> (); }
void Start() { AdjustPos (); operater = FindObjectOfType <MagicCubeOperate> (); }
void Start() { AdjustPos(); operater = FindObjectOfType <MagicCubeOperate> (); }