using System.Collections; using System.Collections.Generic; using BITKit; using Unity.Entities; using UnityEngine; public interface IdProvider { ulong Id { get; } } [System.Serializable] public struct IdComponent:IComponentData { public ulong Id; } [System.Serializable] public struct ConstId:IdProvider { [SerializeField] private ulong Id; ulong IdProvider.Id => Id; } [System.Serializable] public struct GetIdFromInstanceId : IdProvider { [SerializeField] private GameObject gameObject; ulong IdProvider.Id => (ulong)gameObject.GetInstanceID(); } public class IdComponentConvert : MonoBehaviour,ICovertToEntity { [SerializeField, SerializeReference, SubclassSelector] private IdProvider provider; public void CovertToEntity(EntityManager entityManager, Entity entity) { var component = new IdComponent() { Id = provider.Id, }; entityManager.AddComponentData(entity, component); } }