Inheritance: MonoBehaviour
Exemple #1
0
    public GameObject AddPlanar(List <Vector3> points, int width, int height)
    {
        //GeneratePlane.js is in Standard Assets folder
        GameObject planar = GeneratePlane.GeneratePlane(GameObject.Find("Inventory"), new ArrayList(points), width, height);

        planar.transform.parent  = transform;
        planar.renderer.material = planarMaterial;

        DataHolder holder = (DataHolder)planar.AddComponent("DataHolder");

        holder.StatsData = new PlanarFunctionData(points, width, height);

        return(planar);
    }
    // Update is called once per frame
    void Update()
    {
        if (count < 64)
        {
            if (Input.GetKeyUp(KeyCode.LeftArrow))
            {
                x -= 32 - 1;
                Cam.transform.Translate(new Vector3(-31, 0, 0), Space.World);
                chunk[count] = GeneratePlane.GenerateChunk(x, z);
                count++;
            }
            else if (Input.GetKeyUp(KeyCode.UpArrow))
            {
                z += 32 - 1;
                Cam.transform.Translate(new Vector3(0, 0, +31), Space.World);
                chunk[count] = GeneratePlane.GenerateChunk(x, z);
                count++;
            }
            else if (Input.GetKeyUp(KeyCode.DownArrow))
            {
                z -= 32 - 1;
                Cam.transform.Translate(new Vector3(0, 0, -31), Space.World);
                chunk[count] = GeneratePlane.GenerateChunk(x, z);
                count++;
            }
            else if (Input.GetKeyUp(KeyCode.RightArrow))
            {
                x += 32 - 1;
                Cam.transform.Translate(new Vector3(+31, 0, 0), Space.World);
                chunk[count] = GeneratePlane.GenerateChunk(x, z);
                count++;
            }
        }

        foreach (Mesh m in chunk)
        {
            if (m != null)
            {
                Graphics.DrawMesh(m, Vector3.zero, Quaternion.identity, Matt, 0);
            }
        }
    }
    void CheckForCollisionWithOtherChamber(GameObject obj)
    {
        GeneratePlane ownCorners = obj.GetComponent <GeneratePlane>();

        //Rect rect = new Rect(new Vector2(obj.transform.position.x, obj.transform.position.y+ownCorners.ySize), new Vector2((ownCorners._corners.downRightCorner.x - ownCorners._corners.downLeftCorner.x),(ownCorners._corners.upperRightCorner.y - ownCorners._corners.downRightCorner.y)));
        foreach (GameObject G in GeneratePlanesList.generatedPlanes)
        {
            if (G != obj)
            {
                //print("moved1");
                GeneratePlane cornerInf = G.GetComponent <GeneratePlane>();

                //print(cornerInf._corners.downLeftCorner + "down left");
                //print(cornerInf._corners.downRightCorner + "down right");
                //print(cornerInf._corners.upperLeftCorner + "upper left");
                //print(cornerInf._corners.upperRightCorner + "upper right");
                print((ownCorners.checkCollisions(cornerInf._corners.downLeftCorner) || ownCorners.checkCollisions(cornerInf._corners.downRightCorner) || ownCorners.checkCollisions(cornerInf._corners.upperLeftCorner) || ownCorners.checkCollisions(cornerInf._corners.upperRightCorner)) + " " + obj.name);
                if (ownCorners.checkCollisions(cornerInf._corners.downLeftCorner) ||
                    ownCorners.checkCollisions(cornerInf._corners.downRightCorner) ||
                    ownCorners.checkCollisions(cornerInf._corners.upperLeftCorner) ||
                    ownCorners.checkCollisions(cornerInf._corners.upperRightCorner) ||
                    ownCorners.checkCollisions(cornerInf._corners.middle))
                {
                    obj.transform.position = G.transform.position - new Vector3(ownCorners.xSize + 1, 0, 0);
                    //obj.transform.position = new Vector3(200, 300, 300);
                    print("moved" + obj.name);
                    print(isAlone);
                    //CheckForCollisionWithOtherChamber(obj);
                    //isAlone = true;
                }
                else
                {
                    isAlone = true;
                    print("im done " + obj.name);
                }
            }
            else
            {
                isAlone = true;
            }
        }
    }
    public void AssignLakeMesh()
    {
        Inst          plane = transform.GetComponent <BC2Instance> ().instance;
        GameObject    go    = (GameObject)Instantiate(Util.GetMapload().empty, new Vector3(0, positionPoints[0].transform.position.y, 0), Quaternion.identity);
        GeneratePlane gp    = go.gameObject.AddComponent <GeneratePlane> ();

        go.transform.parent = transform;
        go.transform.name   = "Water";
        foreach (GameObject pos in positionPoints)
        {
            gp.points.Add(pos.transform.position);
        }

        transform.localScale = Vector3.one;
        Vector3 startpos = new Vector3(0, 0, 0);

        startpos.y = gp.points [0].y;
        //transform.position = startpos;
        //transform.rotation = new Quaternion (0, 0, 0, 0);

        gp.Generate();
        go.GetComponent <MeshRenderer> ().material = Util.GetMapload().waterMaterial;
    }
 // Use this for initialization
 void Start()
 {
     chunk        = new Mesh[64];
     chunk[count] = GeneratePlane.GenerateChunk(x, z);
     count++;
 }