Files
AZTECH_WB/Assets/Scripts/Object/Building.cs
정영민 81ba9de085 [정영민] 층 조절 기능 추가 및 아이콘 오류 수정
26.03.18
- 층 자동 조절 기능 및 수동 조절 기능 추가
- 설비명 아이콘 안 보이는 오류 수정
- 카메라 2D/3D 위치 조정
2026-03-20 12:47:10 +09:00

70 lines
2.1 KiB
C#

using System.Collections.Generic;
using System.Linq;
using AZTECHWB.Core;
using Unity.Collections;
using UnityEngine;
namespace AZTECHWB
{
public class Building : MonoBehaviour
{
public List<Floor> floorList = new List<Floor>();
public List<Machine> machineList = new List<Machine>();
public bool isOnlyMachineFloorsEnabled;
public bool isAutoActiveFloor;
public void Init()
{
machineList.Clear();
floorList.Clear();
var machines = GetComponentsInChildren<Machine>(true);
for (int i = 0; i < machines.Length; i++)
{
machines[i].Init();
machineList.Add(machines[i]);
}
var floor = GetComponentsInChildren<Floor>(true);
for (int i = 0; i < floor.Length; i++)
{
floorList.Add(floor[i]);
}
isAutoActiveFloor= true;
}
private void Update()
{
if (!isAutoActiveFloor)
return;
if (AZTECHAppMain.Instance.cameraController == null)
return;
var cam = AZTECHAppMain.Instance.cameraController;
isOnlyMachineFloorsEnabled = cam.IsCameraInsideBoundary();
var equipmentInFloor = floorList.FirstOrDefault(f => !f.isEmptyFloor);
equipmentInFloor.gameObject.SetActive(isOnlyMachineFloorsEnabled);
var emptyFloor = floorList.FirstOrDefault(f => f.isEmptyFloor);
emptyFloor.gameObject.SetActive(!isOnlyMachineFloorsEnabled);
}
public void SetActiveEmptyFloor(bool isOn)
{
isAutoActiveFloor = isOn;
if (!isAutoActiveFloor)
{
var equipmentInFloor = floorList.FirstOrDefault(f => !f.isEmptyFloor);
equipmentInFloor.gameObject.SetActive(true);
isOnlyMachineFloorsEnabled = true;
var emptyFloor = floorList.FirstOrDefault(f => f.isEmptyFloor);
emptyFloor.gameObject.SetActive(false);
}
}
}
}