private Action GenerateNextSequentialAction() { Action generateNextSequentialAction = Mode.actions[_actionIndex]; _actionIndex += 1; _actionIndex %= Mode.actions.Count; return(generateNextSequentialAction); }
private Action GenerateNextAction() { float sum = 0; Mode.actions.ForEach(action => sum += action.probability); float random = Random.Range(0, sum); Action returnAction = Mode.actions[0]; for (int i = 0; i < Mode.actions.Count; i++) { random -= Mode.actions[i].probability; if (random <= 0) { return(Mode.actions[i]); } } return(returnAction); }