// Update is called once per frame void Update() { for (int i = 0; i < resetQueue.Count; i++) { ResetItem ri = resetQueue[i]; ri.duration = resetQueue[i].duration - Time.deltaTime; resetQueue[i] = ri; } resetQueue.RemoveAll(ExpiredRenderer); }
static bool ExpiredRenderer(ResetItem ri) { if (ri.duration <= 0) { MeshRenderer r = (MeshRenderer)ri.item; foreach (Material m in r.materials) { m.color = Color.white; } return true; } return false; }
static bool ExpiredRenderer(ResetItem ri) { if (ri.duration <= 0) { MeshRenderer r = (MeshRenderer)ri.item; foreach (Material m in r.materials) { m.color = Color.white; } return(true); } return(false); }
public TItem GetItem (NewItem newItem, ResetItem resetItem = null) { TItem item; if (items.Count > 0) { item = items.Dequeue(); } else { item = newItem.Invoke(); } resetItem?.Invoke(ref item); return item; }