protected virtual void HandleEntity(ResourceCacheEntity entity, ResourceCacheBehaviourParam param) { if (entity != null && entity.Behaviour != null) { entity.Behaviour.Process(param); } }
protected virtual void AdjustParam(ref ResourceCacheBehaviourParam param, ref int duration, int delay) { Debug.Assert(param != null, "wrong"); if (delay > 0) { duration += delay; param.DelayShow = delay; } }
public virtual int Play(int poolId, int duration, Transform parent, ResourceCacheBehaviourParam param, int delay = 0) { int instanceId = -1; ResourceCacheEntity entity; ResourceCachePool pool = GetEntityFromManager(poolId, out entity); if (pool != null && entity != null) { entity.SetParent(parent, false); AdjustParam(ref param, ref duration, delay); instanceId = GenInstanceId(entity, duration); pool.AddToStrategy(instanceId); HandleEntity(entity, param); } return(instanceId); }
private void OnGUI() { if (GUILayout.Button("Save")) { Save(); } if (!IsInitialized && GUILayout.Button("Initialize")) { XmlDataLoader.Instance.InitAndLoad(XmlFileNameDefine.Namespace, XmlFileNameDefine.SuffixFlag); DebugUtils.Info("EffectConfig", "DataPath " + Application.dataPath + " Count: " + EffectConfig.DataMap.Count); EffectPools.Initialize(ResourceCacheMask.Testing, EffectConfig.DataMap); IsInitialized = true; } if (IsInitialized) { if (GUILayout.Button("Play")) { int poolId = EnumUtils.EnumToInt(EffectConfigName.THIRD_PERSON); ResourceCacheBehaviourParam param = new ResourceCacheBehaviourParam(); EffectPools.Play(poolId, 5000, ResourceCacheBindParent.WorldEffectBind, param); } } }
public virtual int Play(int poolId, Transform parent, ResourceCacheBehaviourParam param, int delay = 0) { return(Play(poolId, int.MaxValue, parent, param, delay)); }