public static void GetInput(this UnitOptionInput input, Output output) { switch (input) { case UnitOptionInput.POSITION: UI_PosOrUnitSelect.Instance.GetSelection((isUnit, unit, pos) => { output.Invoke(pos); }, true, false); return; case UnitOptionInput.UNIT: UI_PosOrUnitSelect.Instance.GetSelection((isUnit, unit, pos) => { output.Invoke(unit.gameObject); }, false, true); return; case UnitOptionInput.UNIT_OR_POS: UI_PosOrUnitSelect.Instance.GetSelection( (isUnit, unit, pos) => { object obj; if (isUnit) { obj = unit.gameObject; } else { obj = pos; } output.Invoke(obj); }, true, true); return; default: Debug.LogError("Unhandled unit option type: {0}".Form(input)); return; } }
private void RunInputCollection(UnitOptionInput input) { input.GetInput((obj) => { values.Add(obj); gathered++; }); }