Ejemplo n.º 1
0
 public void Initialise(List <VolumePoint> points, int newFloorCount = 1, float newFloorHeight = 3.0f)
 {
     _points.Clear();
     _points.AddRange(points);
     _floors      = newFloorCount;
     _floorHeight = newFloorHeight;
     _interiorFloorplans.Clear();
     for (int f = 0; f < newFloorCount; f++)
     {
         Floorplan floorplan = Floorplan.Create(transform);
         floorplan.SetDefaultName(f);
         _interiorFloorplans.Add(floorplan);
     }
 }
Ejemplo n.º 2
0
        private void CheckInternalFloorplans()
        {
            if (!building.generateInteriors)
            {
                return;
            }
            int currentPlanCount = _interiorFloorplans.Count;

            if (currentPlanCount != _floors)
            {
                while (currentPlanCount < _floors)
                {
                    _interiorFloorplans.Add(null);
                    currentPlanCount++;
                }
                while (currentPlanCount > _floors)
                {
                    Floorplan floorplan = _interiorFloorplans[currentPlanCount - 1];
                    _interiorFloorplans.Remove(floorplan);
#if UNITY_EDITOR
                    if (floorplan != null)
                    {
                        UnityEditor.Undo.DestroyObjectImmediate(floorplan.gameObject);
                    }
#else
                    if (floorplan != null)
                    {
                        Destroy(floorplan.gameObject);
                    }
#endif
                    currentPlanCount--;
                }
            }
            for (int i = 0; i < currentPlanCount; i++)
            {
                if (_interiorFloorplans[i] == null)
                {
                    Floorplan floorplan = Floorplan.Create(transform);
                    floorplan.SetDefaultName(i + 1);
                    _interiorFloorplans[i] = floorplan;
                }
            }
        }