using System.Collections; using System.Collections.Generic; using Stary.Evo; using UnityEngine; using YooAsset; namespace Main { public interface IZoneSystem : ISystem { void CreatZone(Transform parent); void OpenCurrentZone(ZoneController CurrentController); } public class ZoneSystem : AbstractSystem, IZoneSystem { private ZoneController[] zoneControllers; protected override void OnInit() { } /// /// 创建zone碰撞盒 /// public async void CreatZone(Transform parent) { var package = YooAssets.TryGetPackage("Main"); var pointHandle = package.LoadAssetAsync(R.Res.Main.prefabs.guideball_zone_prefab); await pointHandle.Task; var zoneDatas = this.GetData().GetZoneDataAll(); zoneControllers = new ZoneController[zoneDatas.Length]; for (int i = 0; i < zoneDatas.Length; i++) { var zoneGo = pointHandle.InstantiateSync(parent); ZoneController pointController = zoneGo.GetOrAddComponent(); zoneControllers[i] = pointController; pointController.Init(zoneDatas[i]); } } public void OpenCurrentZone(ZoneController CurrentController) { foreach (var controller in zoneControllers) { if (controller != CurrentController) { controller.ColsePoint(); } } } public override void Dispose() { } } }