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()
{
}
}
}