Example #1
0
    public void creat()
    {
        //int ui = GameObject.Find("Canvas").GetComponent<UIcontrol>().numberslidervalue;


        int ui = transform.parent.parent.GetChild(1).GetComponent <roofcontrol>().numberslidervalue;;

        upridge r2 = this.transform.parent.GetComponent <upridge>();

        circlecut1 pla = transform.GetComponent <circlecut1>();

        //midplanecut pla = transform.GetComponent<midplanecut>();

        // cir.anchorpointlist



        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("main_ridge");
                GameObject tile = Instantiate(haha, (ori + letter) / 2, Quaternion.identity) as GameObject;

                tile.tag = ("PIG");
                tile.transform.parent = this.transform;
                int angle = r2.upridgemanage.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, ((180 / ui) - 180) + ((360 / ui) * j), 0);

                tile.transform.localScale = new Vector3(tilelong, 0.02f, tilelong2);
                tileds.Add(tile);
            }

            else if (i == pla.anchorpointlist.Count - 3)
            {
                GameObject haha = GameObject.Find("main_ridge");
                GameObject tile = Instantiate(haha, (ori + letter) / 2, Quaternion.identity) as GameObject;
                tile.tag = ("PIG");
                tile.transform.parent = this.transform;
                int angle = r2.upridgemanage.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.Rotate(oo, ((180 / ui) - 180) + ((360 / ui) * j), 0);

                tile.transform.localScale = new Vector3(tilelong, 0.02f, tilelong2);

                tileds.Add(tile);
            }

            else
            {
                GameObject haha = GameObject.Find("main_ridge");
                GameObject tile = Instantiate(haha, (ori + letter) / 2, Quaternion.identity) as GameObject;
                tile.tag = ("PIG");
                tile.transform.parent = this.transform;
                int angle = r2.upridgemanage.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.Rotate(oo, ((180 / ui) - 180) + ((360 / ui) * j), 0);

                tile.transform.localScale = new Vector3(tilelong, 0.02f, tilelong2);
                tileds.Add(tile);
            }
        }
    }