{
public GameObject areaObject;
public int lastAgentHit;
public bool net;
public enum FloorHit
m_AgentB.EndEpisode();
m_Area.MatchReset();
lastFloorHit = FloorHit.Service;
net = false;
lastAgentHit = -1;
}
void AgentAWins()
else
lastFloorHit = FloorHit.FloorAHit;
//successful serve
if (!net)
net = true;
else if (collision.gameObject.name == "floorB")
lastFloorHit = FloorHit.FloorBHit;
else if (collision.gameObject.name == "net" && !net)
if (lastAgentHit == 0)
AgentBWins();
else if (lastAgentHit == 1)
AgentAWins();
//agent can return serve in the air
if (lastFloorHit != FloorHit.Service && !net)
lastAgentHit = 0;
lastFloorHit = FloorHit.FloorHitUnset;
lastAgentHit = 1;
Goalie:
normalize: false
max_steps: 3.0e7
max_steps: 5.0e7
learning_rate_schedule: constant
batch_size: 2048
buffer_size: 20480
Striker:
SoccerTwos:
max_steps: 1.0e8