using System; using UnityEngine; using Wwise.Wooduan.Core; namespace Wwise.Wooduan.Components { [AddComponentMenu("Wwise/AkRoof")] [RequireComponent(typeof(BoxCollider))] [DisallowMultipleComponent] public class AkRoof : AkSpace { public int floor = 1; private AkBuilding _building; internal override bool IsOutdoor => true; internal override int GetFloor(Vector3 position) { return floor; } protected override void Init() { _building = transform.parent.parent.GetComponent(); if (_building) _building.RegisterRoof(this); else Debug.LogError("AkRoof " + name + " has no associated building!"); } protected override void Dispose() { if (_building) _building.UnregisterRoof(this); } internal override AkSpace FindSpaceAtPosition(Vector3 position) { if (!isActiveAndEnabled || !Collider) return null; if (Collider.bounds.Contains(position)) return this; return null; } public override bool IsValid() { return floor > 0; } #region Editor public void AutoRename() { var buildingName = transform.parent.parent.name; gameObject.name = $"AkRoof_{buildingName}_Roof({floor + 1}F)"; } #endregion } }