using System; using System.Collections; using System.Collections.Generic; using BITKit; using BITKit.Entities; using BITKit.IO; using UnityEngine; using YooAsset; namespace BITFALL.Entities.Equipment { public sealed class EntityEquipmentLoader : EntityBehavior { [SerializeField] private Transform root; [SerializeReference, SubclassSelector] private IReference[] tags; [Inject] private IEntityEquipment _equipment; public override void OnStart() { base.OnStart(); foreach (var packageName in YooAssetUtils.RegisteredPackages) { var package = YooAssets.GetPackage(packageName); foreach (var assetInfo in package.GetAssetInfos(tags.Cast())) { var task = package.LoadAssetAsync(assetInfo.AssetPath); task.WaitForAsyncComplete(); var newObject = task.AssetObject.As(); var newInstance = Instantiate(newObject, root).GetComponent(); var newTransform = newInstance.As().transform; newTransform.localPosition = default; newTransform.localRotation = default; _equipment.Register(newInstance); BIT4Log.Log($"已注册:{newInstance.AddressablePath}"); } } } } }