Exemple #1
0
    // Use this for initialization
    void Start () {
        g = new graphV[1024];
        w = new walls[1024];
        ax = 0;
        az = 0;
        bx = 0;
        bz = 0;
        k = 0;
	}
Exemple #2
0
 void countGraph()
 {
     last = null;
     last2 = null;
     if (k == 0)
     {
         Ray myray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit help;
         if (Physics.Raycast(myray, out help))
         {
             ax = Mathf.RoundToInt(help.point.x);
             if ((ax % 5 - 1) % 5 == 0)
                 ax--;
             else if ((ax % 5 - 2) % 5 == 0)
                 ax -= 2;
             else if ((ax % 5 + 2) % 5 == 0)
                 ax += 2;
             else if ((ax % 5 + 1) % 5 == 0)
                 ax++;
             else if ((ax % 5 + 3) % 5 == 0)
                 ax += 3;
             az = Mathf.RoundToInt(help.point.z);
             if ((az % 5 - 1) % 5 == 0)
                 az--;
             else if ((az % 5 - 2) % 5 == 0)
                 az -= 2;
             else if ((az % 5 + 2) % 5 == 0)
                 az += 2;
             else if ((az % 5 + 1) % 5 == 0)
                 az++;
             else if ((az % 5 + 3) % 5 == 0)
                 az += 3;
         }
     }
     else
     {
         Ray myray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit help;
         if (Physics.Raycast(myray, out help))
         {
             bx = Mathf.RoundToInt(help.point.x);
             if ((bx % 5 - 1) % 5 == 0)
                 bx--;
             else if ((bx % 5 - 2) % 5 == 0)
                 bx -= 2;
             else if ((bx % 5 + 2) % 5 == 0)
                 bx += 2;
             else if ((bx % 5 + 1) % 5 == 0)
                 bx++;
             else if ((bx % 5 + 3) % 5 == 0)
                 bx += 3;
             bz = Mathf.RoundToInt(help.point.z);
             if ((bz % 5 - 1) % 5 == 0)
                 bz--;
             else if ((bz % 5 - 2) % 5 == 0)
                 bz -= 2;
             else if ((bz % 5 + 2) % 5 == 0)
                 bz += 2;
             else if ((bz % 5 + 1) % 5 == 0)
                 bz++;
             else if ((bz % 5 + 3) % 5 == 0)
                 bz += 3;
             if (Mathf.Abs(bx - ax) < Mathf.Abs(bz - az))
             {
                 bx = ax;
             }
             else
             {
                 bz = az;
             }
         }
     }
     k++;
     if (k == 2)
     {
         k = 0;
         float aax = ax;
         float aaz = az;
         float bbx = bx;
         float bbz = bz;
         var W = GameObject.Instantiate(GameObject.Find("/GraphVisual"));
         W.transform.position = new Vector3((aax + bbx) / 2, 0, (aaz + bbz) / 2);
         if (ax == bx)
             W.transform.localScale = new Vector3(0.1f, 6, Mathf.Abs(bz - az));
         else
             W.transform.localScale = new Vector3(Mathf.Abs(bx - ax), 6, 0.1f);
         graphV a = new graphV();
         graphV b = new graphV();
         int ak = gV;
         int bk = gV;
         if (gV != 0)
         {
             for (int i = 0; i < gV; i++)
             {
                 if (g[i].x == ax && g[i].z == az)
                 {
                     a = g[i];
                 }
                 if (g[i].x == bx && g[i].z == bz)
                 {
                     b = g[i];
                 }
             }
         }
         if(ak == gV)
         {
             if(bk == gV)
             {
                 bk++;
             }
             a = new graphV();
             a.x = ax;
             a.z = az;
             a.n = gV;
             a.en = 0;
             a.e = new int[1024];
             gV++;
         }
         if(bk == gV)
         {
             b.x = ax;
             b.z = az;
             b.n = gV;
             b.en = 0;
             b.e = new int[1024];
             gV++;
         }
         a.e[a.en] = b.n;
         b.e[b.en] = a.n;
         g[a.n] = a;
         g[b.n] = b;
     }
 }