// Use this for initialization void Start() { int angle = transform.parent.parent.GetChild(1).GetComponent <roofcontrol>().numberslidervalue; roofsurcontrol r2 = transform.parent.GetComponent <roofsurcontrol>(); RidgeControl r1 = transform.parent.parent.GetChild(0).GetChild(0).GetChild(0).GetComponent <RidgeControl>(); int i = (r2.roofsurfacemanage.IndexOf(this.transform.gameObject)); Vector3 v1 = r1.ridgemanage[i].transform.GetChild(0).transform.position; Vector3 v2 = r1.ridgemanage[i].transform.GetChild(2).transform.position; // Vector3 v3 = r1.ridgemanage[i+1].transform.GetChild(2).transform.position; Vector3 v4 = r1.ridgemanage[0].transform.GetChild(2).transform.position; if (i == angle - 1) { pp.Set3Points(v1, v2, v4); } else if (i != angle - 1) { Vector3 v3 = r1.ridgemanage[i + 1].transform.GetChild(2).transform.position; pp.Set3Points(v1, v2, v3); } cutpoint(); }
void creat() { float x = transform.parent.parent.GetChild(1).GetComponent <roofcontrol>().twvalue; Vector3 xx = transform.parent.parent.GetChild(0).GetChild(0).GetChild(0).GetComponent <RidgeControl>().ridgemanage[0].transform.GetChild(2).transform.position - transform.parent.parent.GetChild(0).GetChild(0).GetChild(0).GetComponent <RidgeControl>().ridgemanage[1].transform.GetChild(2).transform.position; //tilelong = Vector3.Magnitude(xx / (x)); int ui = transform.parent.parent.GetChild(1).GetComponent <roofcontrol>().numberslidervalue; roofsurcontrol r2 = transform.parent.GetComponent <roofsurcontrol>(); circlecut1 cir = transform.GetComponent <circlecut1>(); midplanecut pla = transform.GetComponent <midplanecut>(); // cir.anchorpointlist GameObject neew = new GameObject(); neew.name = (this.name + "-tile"); neew.transform.parent = this.transform; for (int i = 0; i < pla.anchorpointlist.Count - 2; i++) { Vector3 ori = pla.anchorpointlist[i]; Vector3 letter = pla.anchorpointlist[i + 1]; Vector3 bottomline = new Vector3(ori.x - letter.x, 0, ori.z - letter.z); Vector3 slopeline = ori - letter; //Vector3.AngleBetween(bottomline, slopeline); float oo = Vector3.Angle(bottomline, slopeline); if (letter.y - ori.y < 0) { oo = -oo; } float zz = 0f; if (i == 0) { //GameObject haha = GameObject.Find("MIDroundtile-eave"); GameObject tile = Instantiate(haha, (ori + letter) / 2, Quaternion.identity) as GameObject; GameObject bon = Instantiate(bonbon2, (ori + letter) / 2, Quaternion.identity) as GameObject; tile.transform.parent = neew.transform; bon.transform.parent = neew.transform; int angle = r2.roofsurfacemanage.IndexOf(this.transform.gameObject); //int x = int.Parse(neew.transform.name.Substring(16, 1)); int y = i; /* * Vector3 zr = plane.sloslopR[x + 1, y] - plane.sloslopR[x, y]; * Vector3 zrp = new Vector3(plane.sloslopR[x + 1, y].x - plane.sloslopR[x, y].x, 0, plane.sloslopR[x + 1, y].z - plane.sloslopR[x, y].z); * zz = Vector3.Angle(zr, zrp); */ int j = angle; /* * tile.transform.GetChild(2).transform.Rotate(-6, 0, 0); * tile.transform.GetChild(4).transform.Rotate(-6, 0, 0); * */ tile.transform.Rotate(oo, (90 + (360 / ui) / 2) + (360 / ui) * (j), -zz); bon.transform.Rotate(oo, (90 + (360 / ui) / 2) + (360 / ui) * (j), -zz); bon.transform.localScale = new Vector3(4, 4, tilelong2); bon.transform.Translate(0, -0, 0); bonbons.Add(bon); tile.transform.localScale = new Vector3(tilelong, 2, tilelong2); tileds.Add(tile); } else if (i == pla.anchorpointlist.Count - 3) { //GameObject haha1 = GameObject.Find("MIDroundtop"); GameObject tile = Instantiate(haha1, (ori + letter) / 2, Quaternion.identity) as GameObject; tile.transform.parent = neew.transform; int angle = r2.roofsurfacemanage.IndexOf(this.transform.gameObject); //int x = int.Parse(neew.transform.name.Substring(16, 1)); int y = i; /* * Vector3 zr = plane.sloslopR[x + 1, y] - plane.sloslopR[x, y]; * Vector3 zrp = new Vector3(plane.sloslopR[x + 1, y].x - plane.sloslopR[x, y].x, 0, plane.sloslopR[x + 1, y].z - plane.sloslopR[x, y].z); * zz = Vector3.Angle(zr, zrp); * */ int j = angle; tile.transform.GetChild(2).transform.Rotate(-6, 0, 0); tile.transform.GetChild(4).transform.Rotate(-6, 0, 0); tile.transform.Rotate(oo, (90 + (360 / ui) / 2) + (360 / ui) * (j), -zz); tile.transform.localScale = new Vector3(tilelong, 2, tilelong2); tileds.Add(tile); } else { // GameObject haha2 = GameObject.Find("MIDroundtile"); GameObject tile = Instantiate(haha2, (ori + letter) / 2, Quaternion.identity) as GameObject; GameObject bon = Instantiate(bonbon, (ori + letter) / 2, Quaternion.identity) as GameObject; tile.transform.parent = neew.transform; bon.transform.parent = neew.transform; int angle = r2.roofsurfacemanage.IndexOf(this.transform.gameObject); //int x = int.Parse(neew.transform.name.Substring(16, 1)); int y = i; /* * Vector3 zr = plane.sloslopR[x + 1, y] - plane.sloslopR[x, y]; * Vector3 zrp = new Vector3(plane.sloslopR[x + 1, y].x - plane.sloslopR[x, y].x, 0, plane.sloslopR[x + 1, y].z - plane.sloslopR[x, y].z); * zz = Vector3.Angle(zr, zrp); * */ int j = angle; tile.transform.GetChild(2).transform.Rotate(-6, 0, 0); tile.transform.GetChild(4).transform.Rotate(-6, 0, 0); tile.transform.Rotate(oo, (90 + (360 / ui) / 2) + (360 / ui) * (j), -zz); bon.transform.Rotate(oo, (90 + (360 / ui) / 2) + (360 / ui) * (j), -zz); bon.transform.localScale = new Vector3(4, 4, tilelong2); bon.transform.Translate(0, -0, 0); bonbons.Add(bon); tile.transform.localScale = new Vector3(tilelong, 2, tilelong2); tileds.Add(tile); } } }