Ejemplo n.º 1
0
        public static void DestroyAllOfType(typeOfCorridor type) // Hides AND Destroys corridor objects of given type
        {
            List <Corridor> instancesToRemove = new List <Corridor>();

            foreach (Corridor corr in Corridor.listOfCorridors)
            {
                if (corr.type == type)
                {
                    corr.floorObject.SetActive(false);
                    Destroy(corr.floorObject);
                    foreach (GameObject wall in corr.wallObjects)
                    {
                        wall.SetActive(false);
                        Destroy(wall);
                    }

                    foreach (GameObject corner in corr.cornerObjects)
                    {
                        corner.SetActive(false);
                        Destroy(corner);
                    }

                    Destroy(corr.triggerObject);

                    instancesToRemove.Add(corr);
                }
            }

            foreach (Corridor removeCorr in instancesToRemove)
            {
                listOfCorridors.Remove(removeCorr);
            }

            instancesToRemove.Clear();
        }
Ejemplo n.º 2
0
 public Corridor(Vector3 start, Vector3 end, typeOfCorridor corrType = typeOfCorridor.DEFAULT, bool standardCorridor = true)
 {
     type       = corrType;
     this.start = start;
     this.end   = end;
     CalculateCorridor(standardCorridor);
     listOfCorridors.Add(this);
 }
Ejemplo n.º 3
0
        public static void CreateCorridorBetween(Vector3 start, Vector3 end, typeOfCorridor type, bool standardCorridor = true) // Instantiates the prefab of a specific size to work as a corridor.
        {
            Corridor   tempCorr   = new Corridor(start, end, type, standardCorridor);
            GameObject tempObject = Instantiate(_floorPrefab, new Vector3(0, 0, 0), Quaternion.identity);

            tempObject.transform.parent        = CorridorContainer.transform;
            tempObject.transform.localScale    = tempCorr.size;
            tempObject.transform.localPosition = tempCorr.center;
            tempCorr.floorObject = tempObject;
            tempCorr.SetFloorMaterial();
            listOfPoints.Add(tempCorr.end);
        }
Ejemplo n.º 4
0
        public static void ChangeActiveAllOfType(typeOfCorridor type) // Deactivates/Hides corridor objects of given type
        {
            foreach (Corridor corr in listOfCorridors)
            {
                if (corr.type == type)
                {
                    if (corr.isActive)
                    {
                        corr.floorObject.SetActive(false);
                        corr.isActive = false;
                        foreach (GameObject wall in corr.wallObjects)
                        {
                            wall.SetActive(false);
                        }

                        foreach (GameObject corner in corr.cornerObjects)
                        {
                            corner.SetActive(false);
                        }

                        corr.triggerObject.SetActive(false);
                    }
                    else if (!corr.isActive)
                    {
                        corr.floorObject.SetActive(true);
                        corr.isActive = true;
                        foreach (GameObject wall in corr.wallObjects)
                        {
                            wall.SetActive(true);
                        }

                        foreach (GameObject corner in corr.cornerObjects)
                        {
                            corner.SetActive(true);
                        }

                        corr.triggerObject.SetActive(true);
                    }
                }
            }
        }