/
GeekNerd
/
ServerModelingProject
Обзор
Документация
Войти
/
GeekNerd
/
ServerModelingProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/Scripts/UI_Logic/MainMenuPart/InputFields/SettingDataInputFields/GlobalDataView.cs
79 строк
3 KB
Gorney-Alex
Init
30 май 2026, 19:05
30 май 2026, 19:05
3cdcc49
Код
Авторство
О чём код?
using System; using DataClasses; using UI_Logic.InputFields; using UnityEngine; namespace UI_Logic.SettingDataViews { public class GlobalDataView : MonoBehaviour { [SerializeField] private GlobalInputFieldFloatView[] _fields; public event Action<bool> OpenStateChanged; private void Awake() { if (_fields == null || _fields.Length == 0) { _fields = GetComponentsInChildren<GlobalInputFieldFloatView>(true); } } private void OnEnable() { if (_fields == null || _fields.Length == 0) { _fields = GetComponentsInChildren<GlobalInputFieldFloatView>(true); } OpenStateChanged?.Invoke(true); } private void OnDisable() { OpenStateChanged?.Invoke(false); } public RoomBuildingSettings GetData(RoomBuildingSettings data) { RoomBuildingSettings target = data ?? new RoomBuildingSettings(); foreach (var field in _fields) { switch (field.GetTypeData()) { case GlobalDataType.GridSize: target.GridSize = field.GetValue(); break; case GlobalDataType.SnapThreshold: target.SnapThreshold = field.GetValue(); break; case GlobalDataType.FieldWidth: target.FieldWidth = Mathf.RoundToInt(field.GetValue()); break; case GlobalDataType.FieldHeight: target.FieldHeight = Mathf.RoundToInt(field.GetValue()); break; case GlobalDataType.DotSpacing: target.DotSpacing = field.GetValue(); break; case GlobalDataType.RoomHeight: target.RoomHeight = field.GetValue(); break; case GlobalDataType.BaseTemperature: target.BaseTemperature = field.GetValue(); break; case GlobalDataType.MinAisleWidth: target.MinAisleWidth = field.GetValue(); break; case GlobalDataType.MinArea: target.MinArea = field.GetValue(); break; } } return target; } public void ShowData(RoomBuildingSettings data) { foreach (var field in _fields) { switch (field.GetTypeData()) { case GlobalDataType.GridSize: field.SetValue(data.GridSize); break; case GlobalDataType.SnapThreshold: field.SetValue(data.SnapThreshold); break; case GlobalDataType.FieldWidth: field.SetValue(data.FieldWidth); break; case GlobalDataType.FieldHeight: field.SetValue(data.FieldHeight); break; case GlobalDataType.DotSpacing: field.SetValue(data.DotSpacing); break; case GlobalDataType.RoomHeight: field.SetValue(data.RoomHeight); break; case GlobalDataType.BaseTemperature: field.SetValue(data.BaseTemperature); break; case GlobalDataType.MinAisleWidth: field.SetValue(data.MinAisleWidth); break; case GlobalDataType.MinArea: field.SetValue(data.MinArea); break; } } } } }