using UnityEngine; using MLAgents; public class SoccerAcademy : Academy { public Material purpleMaterial; public Material blueMaterial; public float gravityMultiplier = 1; public bool randomizePlayersTeamForTraining = true; public float agentRunSpeed; public float strikerPunish; //if opponents scores, the striker gets this neg reward (-1) public float strikerReward; //if team scores a goal they get a reward (+1) public float goaliePunish; //if opponents score, goalie gets this neg reward (-1) public float goalieReward; //if team scores, goalie gets this reward (currently 0...no reward. can play with this later) void Start() { Physics.gravity *= gravityMultiplier; //for soccer a multiplier of 3 looks good } public override void InitializeAcademy() { FloatProperties.RegisterCallback("gravity", f => { Physics.gravity = new Vector3(0, -f, 0); }); } public override void AcademyStep() { } }