Ejemplo n.º 1
0
        protected override void DeleteResourceTyped(Guid key)
        {
            var element = TypedPool.Get <Model>(key);

            element.Name = null;
            TypedPool.Post(key, element);
        }
Ejemplo n.º 2
0
        protected override void WriteResourceTyped(Guid key, ModelDeriver resource)
        {
            var element = TypedPool.Get <Model>(key);

            element.Name = resource.Name;
            TypedPool.Post(key, element);
        }
Ejemplo n.º 3
0
 protected override ElementDeriver GetItemTyped(Guid id)
 {
     if (TypedPool.Get <Element>(id) == null)
     {
         return(null);
     }
     return(new ElementDeriver {
         Name = TypedPool.Get <Element>(id).Name
     });
 }
Ejemplo n.º 4
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="obj"></param>
    /// <param name="poolId">如果使用poolId,那么Spawm和Store时的传入必须相同, 推荐使用poolId,这样可以更好的区分各个池</param>
    public void Store(GameObject obj, string poolId = "unknown")
    {
        if (IsInEditorMode)
        {
            return;
        }
        TypedPool objPool = getTypedPool(poolId);

        objPool.Store(obj);
    }
Ejemplo n.º 5
0
 protected override ModelDeriver GetItemTyped(Guid id)
 {
     if (TypedPool.Get <Model>(id) == null)
     {
         return(null);
     }
     return(new ModelDeriver {
         Name = TypedPool.Get <Model>(id).Name
     });
 }
Ejemplo n.º 6
0
        public IEnumerable <Guid> ByModel(Guid element)
        {
            var el = TypedPool.Get <Element>(element);

            if (el == null)
            {
                return(DefaultValue);
            }

            return(new[] { el.Model });
        }
Ejemplo n.º 7
0
    private TypedPool getTypedPool(string poolId)
    {
        TypedPool typedPool = null;

        m_typedPools.TryGetValue(poolId, out typedPool);

        if (typedPool == null)
        {
            typedPool = new TypedPool(this.gameObject, poolId);
            m_typedPools.Add(poolId, typedPool);
        }
        return(typedPool);
    }
Ejemplo n.º 8
0
 protected override ElementsInModel GetItemTyped(Guid id)
 {
     try
     {
         WasChanged = true;
         var elements = TypedPool.Query <Element>("model=" + id);
         return(new ElementsInModel {
             Elements = elements
         });
     }
     catch (KeyNotFoundException)
     {
         return(null);
     }
 }
Ejemplo n.º 9
0
        public IEnumerable <Guid> ByElInModel(Guid elementsInModel)
        {
            var el = TypedPool.Get <ElementsInModel>(elementsInModel);

            return(el.Elements);
        }
Ejemplo n.º 10
0
    /// <summary>
    /// 注意,通过这个方法Spawm之后,pool会自动更改他的名字
    /// 注意,如果需要reset,那么在逻辑层需要自己reset
    /// </summary>
    /// <param name="prefabName"></param>
    /// <param name="assetType">用于指定这个prefab按哪种类型,在哪个路径下加载</param>
    /// <param name="poolId">用于指定这个prefab通过哪个pool生成, 如果使用poolId,那么Spawm和Store时的传入必须相同</param>
    /// <returns></returns>

    public GameObject Spawm(string prefabName, int assetType, string poolId = "unknown")
    {
        TypedPool objPool = getTypedPool(poolId);

        return(objPool.Spawm <GameObject>(prefabName, assetType));
    }
Ejemplo n.º 11
0
 public IEnumerable <Guid> GetSingleByAttribute(Guid attribute)
 {
     return(new[] { TypedPool.Get <Attribute>(attribute).ElementId });
 }
Ejemplo n.º 12
0
 public IEnumerable <Guid> GetSingleByValue(Guid value)
 {
     return(new[] { TypedPool.Get <Value>(value).AttributeId });
 }