using System; using System.Collections; using System.Collections.Generic; using System.IO; using BITKit.Core.Entites; using UnityEngine; using UnityEngine.AddressableAssets; namespace BITKit.Entities { /// Entity接口,用于复杂实体 public interface IEntity :BITKit.Core.Entites.IEntity,IGenericEvent, IDatabase, IProcessor, ICallback { IEntityComponent[] entityComponents { get; set; } } public class IEntityReader : NetMessageReader { public override IEntity ReadBinary(BinaryReader reader) { var id = reader.ReadInt32(); var path = reader.ReadString(); var entity = DI.Get().Entities[id]; return (IEntity)entity; } public override void WriteBinary(BinaryWriter writer, IEntity value) { writer.Write(value.Id); writer.Write(value.Id); } private IEntity Create(int id, string path) { var entity = Addressables .LoadAssetAsync(path) .WaitForCompletion() .GetComponent(); return entity; } } }