public override void AgentReset() { if (currentBandit) { currentBandit.ResetMaterial(); } currentBandit = null; nextBandit = connectedAcademy.GetNewBandit(); nextBandit.SetMaterial(agentMaterial); }
public override void CollectObservations() { currentBandit = nextBandit; if (!currentBandit && connectedAcademy) { currentBandit = connectedAcademy.GetNewBandit(); } AddVectorObs(currentBandit.index); }
public override void AgentAction(float[] vectorAction, string textAction) { Thread.Sleep(500); int action = (int)vectorAction[0]; if (currentBandit) { nextBandit = currentBandit.ChoosePath(action); nextBandit.SetMaterial(agentMaterial); currentBandit.ResetMaterial(); AddReward(currentBandit.reward); if (currentBandit.reward == 1.0f) { Done(); } } }