31 lines
1.5 KiB
C#
31 lines
1.5 KiB
C#
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
namespace _Project.Scripts.LevelGenerating
|
||
{
|
||
// =====================================================================
|
||
// Объект комнаты в сцене. Создаётся ShellSpawner, потом с ним работают генераторы комнат.
|
||
// Хранит данные комнаты и ссылки на её меши, чтобы генератор не искал их сам.
|
||
// =====================================================================
|
||
public class RoomView : MonoBehaviour
|
||
{
|
||
public Room Data;
|
||
public int Index;
|
||
public float Height; // высота стен в метрах
|
||
|
||
public readonly List<Renderer> FloorRenderers = new List<Renderer>();
|
||
public readonly List<Renderer> CeilingRenderers = new List<Renderer>();
|
||
public readonly List<Renderer> WallRenderers = new List<Renderer>();
|
||
|
||
// Левый нижний угол комнаты в метрах
|
||
public Vector3 OriginMeters =>
|
||
new Vector3(Data.Position.x * LevelGrid.Module, 0f, Data.Position.y * LevelGrid.Module);
|
||
|
||
// Размеры комнаты в метрах: x - по X, z - по Z
|
||
public Vector3 SizeMeters =>
|
||
new Vector3(Data.Length * LevelGrid.Module, Height, Data.Width * LevelGrid.Module);
|
||
|
||
public Vector3 CenterMeters =>
|
||
OriginMeters + new Vector3(SizeMeters.x / 2f, 0f, SizeMeters.z / 2f);
|
||
}
|
||
} |