protected override void DeleteResourceTyped(Guid key) { var element = TypedPool.Get <Model>(key); element.Name = null; TypedPool.Post(key, element); }
protected override void WriteResourceTyped(Guid key, ModelDeriver resource) { var element = TypedPool.Get <Model>(key); element.Name = resource.Name; TypedPool.Post(key, element); }
protected override ElementDeriver GetItemTyped(Guid id) { if (TypedPool.Get <Element>(id) == null) { return(null); } return(new ElementDeriver { Name = TypedPool.Get <Element>(id).Name }); }
/// <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); }
protected override ModelDeriver GetItemTyped(Guid id) { if (TypedPool.Get <Model>(id) == null) { return(null); } return(new ModelDeriver { Name = TypedPool.Get <Model>(id).Name }); }
public IEnumerable <Guid> ByModel(Guid element) { var el = TypedPool.Get <Element>(element); if (el == null) { return(DefaultValue); } return(new[] { el.Model }); }
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); }
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); } }
public IEnumerable <Guid> ByElInModel(Guid elementsInModel) { var el = TypedPool.Get <ElementsInModel>(elementsInModel); return(el.Elements); }
/// <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)); }
public IEnumerable <Guid> GetSingleByAttribute(Guid attribute) { return(new[] { TypedPool.Get <Attribute>(attribute).ElementId }); }
public IEnumerable <Guid> GetSingleByValue(Guid value) { return(new[] { TypedPool.Get <Value>(value).AttributeId }); }