Ejemplo n.º 1
0
        internal Entity Import(UnityEngine.Object obj)
        {
            if (obj == null || !obj)
            {
                return(Entity.Null);
            }

            var entity        = Entity.Null;
            var assetImporter = m_AssetImporters.Values.FirstOrDefault(x => x.CanImport(obj));

            if (assetImporter != null)
            {
                entity = assetImporter.Import(this, obj);
                if (entity != Entity.Null)
                {
                    var guid = obj.GetGuid();
                    Assert.IsTrue(guid != Guid.Empty);
                    Assert.IsFalse(EntityManager.HasComponent <EntityGuid>(entity));
                    WorldManager.SetEntityGuid(entity, guid);

                    Assert.IsFalse(EntityManager.HasComponent <AssetReference>(entity));
                    EntityManager.AddComponentData(entity, obj.ToAssetReference());
                }
            }
            return(entity);
        }
Ejemplo n.º 2
0
        public Entity GetEntity(Object obj)
        {
            if (obj == null || !obj)
            {
                return(Entity.Null);
            }

            var reference = obj.ToAssetReference();

            if (TryGetEntity(reference, out var entity))
            {
                return(entity);
            }

            entity = AssetImporter.Import(obj);
            m_Cache?.TryAdd(reference, entity);

            return(entity);
        }