コード例 #1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        EnvironmentCreation myScript = (EnvironmentCreation)target;

        if (GUILayout.Button("Rebuild Mesh"))
        {
            LocalObjectBuilder localObjBuilder = myScript.GetComponent <LocalObjectBuilder>();
            if (localObjBuilder)
            {
                List <List <Vector3> > sortedPlanes = localObjBuilder.GetSortedPlanes();
                float floor = localObjBuilder.FloorPos;// + FindObjectOfType<LocalPlane>().transform.localScale.y / 2f;

                List <Vector3> vertices = new List <Vector3>();
                vertices = Utility.CombinePolygons(sortedPlanes[0], sortedPlanes[1], 0.2f);
                for (int i = 2; i < sortedPlanes.Count; i++)
                {
                    vertices = Utility.CombinePolygons(vertices, sortedPlanes[i], 0.2f);
                }

                for (int i = 0; i < vertices.Count; i++)
                {
                    Vector3 vert = vertices[i];
                    vert.y      = floor;
                    vertices[i] = vert;
                }

                myScript.boundary = vertices;
            }
            myScript.CreateTerrain();
        }
    }
コード例 #2
0
    // Use this for initialization

    void Start()
    {
        entrance = GetComponentInChildren <PracticeEntrance>();
        relics   = GetComponentsInChildren <SampleRelic>();
        if (!isServer)
        {
            List <Vector3> list = Utility.CombinePolygons(Utility.CreateVerticesFromPlane(planes[0]),
                                                          Utility.CreateVerticesFromPlane(planes[1]), 0.005f);
            for (int i = 2; i < planes.Length; i++)
            {
                list = Utility.CombinePolygons(list, Utility.CreateVerticesFromPlane(planes[i]), 0.005f);
            }

            for (int i = 0; i < list.Count; i++)
            {
                Vector3 vec = list[i];
                vec.y   = 0f;// transform.position.y;
                list[i] = vec;
            }

            env          = GetComponent <EnvironmentCreation>();
            env.boundary = list;
            env.CreateTerrain();
        }
    }
コード例 #3
0
ファイル: ARSetUp.cs プロジェクト: senlinms/VRsus-guARdian
    private void RpcBuildTerrain()
    {
        if (isServer)
        {
            return;
        }
        sortedPlanes = LocalObjectBuilder.Instance.GetSortedPlanes();
        float floor = LocalObjectBuilder.Instance.FloorPos;// + FindObjectOfType<LocalPlane>().transform.localScale.y / 2f;

        List <Vector3> vertices = new List <Vector3>();

        vertices = Utility.CombinePolygons(sortedPlanes[0], sortedPlanes[1], 0.2f);
        for (int i = 2; i < sortedPlanes.Count; i++)
        {
            vertices = Utility.CombinePolygons(vertices, sortedPlanes[i], 0.2f);
        }

        for (int i = 0; i < vertices.Count; i++)
        {
            Vector3 vert = vertices[i];
            vert.y      = floor;
            vertices[i] = vert;
        }

        EnvironmentCreation terrainBuilder = LocalObjectBuilder.Instance.GetComponent <EnvironmentCreation>();

        terrainBuilder.boundary = vertices;
        terrainBuilder.CreateTerrain();
    }
コード例 #4
0
 private void Start()
 {
     terrainBuilder = FindObjectOfType <EnvironmentCreation>();
 }