/// 生存するインスタンスに対してラムダ式を実行する public void ForEachExist(FuncT func) { foreach (var obj in _pool) { if (obj.Exists) { func(obj); } } }
/// 全要素を走査し、その座標の値を関数に渡す public void ForEach(FuncT func) { for (var j = 0; j < Height; j++) { for (var i = 0; i < Width; i++) { int val = Get(i, j); func(i, j, val); } } }
// 生存するインスタンスに対してラムダ式を実行する // // 例: // // ボスを倒したので、敵をすべて消滅させる // Enemy.parent.ForEachExist(t => t.Vanish()); // // // 生成数をカウントする // Enemy.parent.ForEachExist(t => ret++); // public void ForEachExist(FuncT func, int limit = 0) { int cnt = 0; foreach (var obj in _pool) { if (cnt >= limit && limit != 0) { break; } if (obj.Exists) { func(obj); } cnt++; } }