浏览代码

Convert Academy to a singleton (#3210)

/asymm-envs
GitHub 5 年前
当前提交
4269447e
共有 61 个文件被更改,包括 1379 次插入2360 次删除
  1. 19
      UnitySDK/Assets/ML-Agents/Editor/Tests/DemonstrationTests.cs
  2. 16
      UnitySDK/Assets/ML-Agents/Editor/Tests/EditModeTestInternalBrainTensorGenerator.cs
  3. 204
      UnitySDK/Assets/ML-Agents/Editor/Tests/MLAgentsEditModeTest.cs
  4. 2
      UnitySDK/Assets/ML-Agents/Editor/Tests/Sensor/WriterAdapterTests.cs
  5. 16
      UnitySDK/Assets/ML-Agents/Examples/3DBall/Scenes/3DBall.unity
  6. 533
      UnitySDK/Assets/ML-Agents/Examples/3DBall/Scenes/3DBallHard.unity
  7. 3
      UnitySDK/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs
  8. 3
      UnitySDK/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DHardAgent.cs
  9. 94
      UnitySDK/Assets/ML-Agents/Examples/Basic/Scenes/Basic.unity
  10. 4
      UnitySDK/Assets/ML-Agents/Examples/Basic/Scripts/BasicAgent.cs
  11. 16
      UnitySDK/Assets/ML-Agents/Examples/Bouncer/Scenes/Bouncer.unity
  12. 3
      UnitySDK/Assets/ML-Agents/Examples/Bouncer/Scripts/BouncerAgent.cs
  13. 17
      UnitySDK/Assets/ML-Agents/Examples/Crawler/Scenes/CrawlerDynamicTarget.unity
  14. 17
      UnitySDK/Assets/ML-Agents/Examples/Crawler/Scenes/CrawlerStaticTarget.unity
  15. 15
      UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/FoodCollector.unity
  16. 15
      UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/VisualFoodCollector.unity
  17. 6
      UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scripts/FoodCollectorAgent.cs
  18. 4
      UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scripts/FoodCollectorSettings.cs
  19. 15
      UnitySDK/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorld.unity
  20. 6
      UnitySDK/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs
  21. 2
      UnitySDK/Assets/ML-Agents/Examples/GridWorld/Scripts/GridArea.cs
  22. 4
      UnitySDK/Assets/ML-Agents/Examples/GridWorld/Scripts/GridSettings.cs
  23. 17
      UnitySDK/Assets/ML-Agents/Examples/Hallway/Scenes/Hallway.unity
  24. 17
      UnitySDK/Assets/ML-Agents/Examples/Hallway/Scenes/VisualHallway.unity
  25. 17
      UnitySDK/Assets/ML-Agents/Examples/PushBlock/Scenes/PushBlock.unity
  26. 17
      UnitySDK/Assets/ML-Agents/Examples/PushBlock/Scenes/VisualPushBlock.unity
  27. 6
      UnitySDK/Assets/ML-Agents/Examples/PushBlock/Scripts/PushAgentBasic.cs
  28. 81
      UnitySDK/Assets/ML-Agents/Examples/Pyramids/Scenes/Pyramids.unity
  29. 61
      UnitySDK/Assets/ML-Agents/Examples/Pyramids/Scenes/VisualPyramids.unity
  30. 17
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Scenes/Reacher.unity
  31. 4
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Scripts/ReacherAgent.cs
  32. 5
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/ProjectSettingsOverrides.cs
  33. 17
      UnitySDK/Assets/ML-Agents/Examples/Soccer/Scenes/SoccerTwos.unity
  34. 4
      UnitySDK/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerFieldArea.cs
  35. 17
      UnitySDK/Assets/ML-Agents/Examples/Tennis/Scenes/Tennis.unity
  36. 3
      UnitySDK/Assets/ML-Agents/Examples/Tennis/Scripts/TennisAgent.cs
  37. 17
      UnitySDK/Assets/ML-Agents/Examples/Walker/Scenes/Walker.unity
  38. 3
      UnitySDK/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgent.cs
  39. 17
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
  40. 10
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs
  41. 159
      UnitySDK/Assets/ML-Agents/Scripts/Academy.cs
  42. 41
      UnitySDK/Assets/ML-Agents/Scripts/Agent.cs
  43. 7
      UnitySDK/Assets/ML-Agents/Scripts/ICommunicator.cs
  44. 4
      UnitySDK/Assets/ML-Agents/Scripts/Policy/BarracudaPolicy.cs
  45. 6
      UnitySDK/Assets/ML-Agents/Scripts/Policy/BehaviorParameters.cs
  46. 6
      UnitySDK/Assets/ML-Agents/Scripts/Policy/RemotePolicy.cs
  47. 2
      docs/FAQ.md
  48. 3
      docs/Getting-Started-with-Balance-Ball.md
  49. 4
      docs/Glossary.md
  50. 28
      docs/Learning-Environment-Create-New.md
  51. 15
      docs/Learning-Environment-Design.md
  52. 7
      docs/Limitations.md
  53. 6
      docs/ML-Agents-Overview.md
  54. 4
      docs/Migrating.md
  55. 3
      docs/Python-API.md
  56. 4
      docs/Training-Curriculum-Learning.md
  57. 2
      docs/Training-Generalized-Reinforcement-Learning-Agents.md
  58. 2
      docs/Training-ML-Agents.md
  59. 999
      docs/images/mlagents-3DBallHierarchy.png
  60. 999
      docs/images/mlagents-Open3DBall.png
  61. 94
      docs/images/mlagents-NewTutHierarchy.png

19
UnitySDK/Assets/ML-Agents/Editor/Tests/DemonstrationTests.cs


namespace MLAgents.Tests
{
[TestFixture]
[SetUp]
public void SetUp()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
[Test]
public void TestSanitization()

demoRecorder.record = true;
demoRecorder.InitializeDemoStore(fileSystem);
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var academyInitializeMethod = typeof(Academy).GetMethod("InitializeEnvironment",
BindingFlags.Instance | BindingFlags.NonPublic);
var agentEnableMethod = typeof(Agent).GetMethod("OnEnable",
BindingFlags.Instance | BindingFlags.NonPublic);
var agentSendInfo = typeof(Agent).GetMethod("SendInfo",

academyInitializeMethod?.Invoke(aca, new object[] { });
// Step the agent
agent1.RequestDecision();

Assert.AreEqual((float)i + 1, vecObs[i]);
}
}
}
}
}

16
UnitySDK/Assets/ML-Agents/Editor/Tests/EditModeTestInternalBrainTensorGenerator.cs


namespace MLAgents.Tests
{
[TestFixture]
static List<Agent> GetFakeAgents()
[SetUp]
public void SetUp()
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
static List<Agent> GetFakeAgents()
{
var goA = new GameObject("goA");
var bpA = goA.AddComponent<BehaviorParameters>();
bpA.brainParameters.vectorObservationSize = 3;

{
var agentEnableMethod = typeof(Agent).GetMethod("OnEnableHelper",
BindingFlags.Instance | BindingFlags.NonPublic);
agentEnableMethod?.Invoke(agent, new object[] { aca });
agentEnableMethod?.Invoke(agent, new object[] { });
}
agentA.collectObservationsSensor.AddObservation(new Vector3(1, 2, 3));
agentB.collectObservationsSensor.AddObservation(new Vector3(4, 5, 6));

204
UnitySDK/Assets/ML-Agents/Editor/Tests/MLAgentsEditModeTest.cs


public void Update() { }
}
[TestFixture]
[SetUp]
public void SetUp()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
// Use the Assert class to test conditions.
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var aca = Academy.Instance;
Assert.AreNotEqual(null, aca);
Assert.AreEqual(0, aca.GetEpisodeCount());
Assert.AreEqual(0, aca.GetStepCount());

}
}
[TestFixture]
[SetUp]
public void SetUp()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
Assert.AreEqual(0, aca.GetStepCount());
Assert.AreEqual(0, aca.GetEpisodeCount());
Assert.AreEqual(0, aca.GetTotalStepCount());
Assert.AreEqual(null, aca.FloatProperties);
//This will call the method even though it is private
var academyInitializeMethod = typeof(Academy).GetMethod("InitializeEnvironment",
BindingFlags.Instance | BindingFlags.NonPublic);
academyInitializeMethod?.Invoke(aca, new object[] { });
Assert.AreEqual(false, Academy.IsInitialized);
var aca = Academy.Instance;
Assert.AreEqual(true, Academy.IsInitialized);
// Check that init is idempotent
aca.LazyInitialization();
aca.LazyInitialization();
// Check that Dispose is idempotent
aca.Dispose();
Assert.AreEqual(false, Academy.IsInitialized);
aca.Dispose();
}
[Test]
public void TestAcademyDispose()
{
var floatProperties1 = Academy.Instance.FloatProperties;
Academy.Instance.Dispose();
var floatProperties2 = Academy.Instance.FloatProperties;
Academy.Instance.Dispose();
Assert.AreNotEqual(floatProperties1, floatProperties2);
}
[Test]

var agentGo2 = new GameObject("TestAgent");
agentGo2.AddComponent<TestAgent>();
var agent2 = agentGo2.GetComponent<TestAgent>();
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
Assert.AreEqual(false, agent1.IsDone());
Assert.AreEqual(false, agent2.IsDone());

var agentEnableMethod = typeof(Agent).GetMethod("OnEnableHelper",
BindingFlags.Instance | BindingFlags.NonPublic);
var academyInitializeMethod = typeof(Academy).GetMethod("InitializeEnvironment",
BindingFlags.Instance | BindingFlags.NonPublic);
agentEnableMethod?.Invoke(agent2, new object[] { aca });
academyInitializeMethod?.Invoke(aca, new object[] { });
agentEnableMethod?.Invoke(agent1, new object[] { aca });
agentEnableMethod?.Invoke(agent2, new object[] { });
agentEnableMethod?.Invoke(agent1, new object[] { });
Assert.AreEqual(false, agent1.IsDone());
Assert.AreEqual(false, agent2.IsDone());

}
}
[TestFixture]
[SetUp]
public void SetUp()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var academyInitializeMethod = typeof(Academy).GetMethod("InitializeEnvironment",
BindingFlags.Instance | BindingFlags.NonPublic);
academyInitializeMethod?.Invoke(aca, new object[] { });
var academyStepMethod = typeof(Academy).GetMethod("EnvironmentStep",
BindingFlags.Instance | BindingFlags.NonPublic);
var aca = Academy.Instance;
var numberReset = 0;
for (var i = 0; i < 10; i++)

{
numberReset += 1;
}
academyStepMethod?.Invoke(aca, new object[] { });
Academy.Instance.EnvironmentStep();
public void TestAcademyAutostep()
{
var aca = Academy.Instance;
Assert.IsTrue(aca.IsAutomaticSteppingEnabled);
aca.DisableAutomaticStepping(true);
Assert.IsFalse(aca.IsAutomaticSteppingEnabled);
aca.EnableAutomaticStepping();
Assert.IsTrue(aca.IsAutomaticSteppingEnabled);
}
[Test]
public void TestAgent()
{
var agentGo1 = new GameObject("TestAgent");

agentGo2.AddComponent<TestAgent>();
var agent2 = agentGo2.GetComponent<TestAgent>();
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var aca = Academy.Instance;
var academyInitializeMethod = typeof(Academy).GetMethod(
"InitializeEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
agent1.agentParameters = new AgentParameters();
agent2.agentParameters = new AgentParameters();

agent2.agentParameters.onDemandDecision = true;
// agent2 will request decisions only when RequestDecision is called
agentEnableMethod?.Invoke(agent1, new object[] { aca });
academyInitializeMethod?.Invoke(aca, new object[] { });
var academyStepMethod = typeof(Academy).GetMethod(
"EnvironmentStep", BindingFlags.Instance | BindingFlags.NonPublic);
agentEnableMethod?.Invoke(agent1, new object[] { });
var numberAgent1Reset = 0;
var numberAgent2Initialization = 0;

//Agent 2 is only initialized at step 2
if (i == 2)
{
agentEnableMethod?.Invoke(agent2, new object[] { aca });
agentEnableMethod?.Invoke(agent2, new object[] { });
numberAgent2Initialization += 1;
}

requestAction += 1;
agent2.RequestAction();
}
academyStepMethod?.Invoke(aca, new object[] { });
aca.EnvironmentStep();
[TestFixture]
[SetUp]
public void SetUp()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var academyInitializeMethod = typeof(Academy).GetMethod(
"InitializeEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
academyInitializeMethod?.Invoke(aca, new object[] { });
var academyStepMethod = typeof(Academy).GetMethod(
"EnvironmentStep", BindingFlags.Instance | BindingFlags.NonPublic);
var aca = Academy.Instance;
var numberReset = 0;
var stepsSinceReset = 0;

}
stepsSinceReset += 1;
academyStepMethod.Invoke(aca, new object[] { });
aca.EnvironmentStep();
}
}

var agentGo2 = new GameObject("TestAgent");
agentGo2.AddComponent<TestAgent>();
var agent2 = agentGo2.GetComponent<TestAgent>();
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var aca = Academy.Instance;
var academyInitializeMethod = typeof(Academy).GetMethod(
"InitializeEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
var academyStepMethod = typeof(Academy).GetMethod(
"EnvironmentStep", BindingFlags.Instance | BindingFlags.NonPublic);
agent1.agentParameters = new AgentParameters();
agent2.agentParameters = new AgentParameters();

// agent1 will take an action at every step and request a decision every 2 steps
agent2.agentParameters.onDemandDecision = true;
agentEnableMethod?.Invoke(agent2, new object[] { aca });
academyInitializeMethod?.Invoke(aca, new object[] { });
agentEnableMethod?.Invoke(agent2, new object[] { });
var numberAgent1Reset = 0;
var numberAgent2Reset = 0;

//Agent 1 is only initialized at step 2
if (i == 2)
{
agentEnableMethod?.Invoke(agent1, new object[] { aca });
agentEnableMethod?.Invoke(agent1, new object[] { });
}
// Set agent 1 to done every 11 steps to test behavior
if (i % 11 == 5)

//Agent 1 is only initialized at step 2
if (i < 2)
{ }
academyStepMethod?.Invoke(aca, new object[] { });
aca.EnvironmentStep();
[TestFixture]
[SetUp]
public void SetUp()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
}
[Test]
public void TestResetOnDone()
{

var agentGo2 = new GameObject("TestAgent");
agentGo2.AddComponent<TestAgent>();
var agent2 = agentGo2.GetComponent<TestAgent>();
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var aca = Academy.Instance;
var academyInitializeMethod = typeof(Academy).GetMethod(
"InitializeEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
var academyStepMethod = typeof(Academy).GetMethod(
"EnvironmentStep", BindingFlags.Instance | BindingFlags.NonPublic);
agent1.agentParameters = new AgentParameters();
agent2.agentParameters = new AgentParameters();

agent1.agentParameters.resetOnDone = false;
agent2.agentParameters.resetOnDone = false;
agentEnableMethod?.Invoke(agent2, new object[] { aca });
academyInitializeMethod?.Invoke(aca, new object[] { });
agentEnableMethod?.Invoke(agent1, new object[] { aca });
agentEnableMethod?.Invoke(agent2, new object[] { });
agentEnableMethod?.Invoke(agent1, new object[] { });
var agent1ResetOnDone = 0;
var agent2ResetOnDone = 0;

agent2.Done();
}
academyStepMethod?.Invoke(aca, new object[] { });
aca.EnvironmentStep();
}
}

var agentGo2 = new GameObject("TestAgent");
agentGo2.AddComponent<TestAgent>();
var agent2 = agentGo2.GetComponent<TestAgent>();
var acaGo = new GameObject("TestAcademy");
acaGo.AddComponent<Academy>();
var aca = acaGo.GetComponent<Academy>();
var aca = Academy.Instance;
var academyInitializeMethod = typeof(Academy).GetMethod(
"InitializeEnvironment", BindingFlags.Instance | BindingFlags.NonPublic);
var academyStepMethod = typeof(Academy).GetMethod(
"EnvironmentStep", BindingFlags.Instance | BindingFlags.NonPublic);
agent1.agentParameters = new AgentParameters();
agent2.agentParameters = new AgentParameters();
// We use event based so the agent will now try to send anything to the brain

// agent2 will request decisions only when RequestDecision is called
agent1.agentParameters.maxStep = 20;
agentEnableMethod?.Invoke(agent2, new object[] { aca });
academyInitializeMethod?.Invoke(aca, new object[] { });
agentEnableMethod?.Invoke(agent1, new object[] { aca });
agentEnableMethod?.Invoke(agent2, new object[] { });
agentEnableMethod?.Invoke(agent1, new object[] { });
var j = 0;

Assert.LessOrEqual(Mathf.Abs(i * 0.1f - agent2.GetCumulativeReward()), 0.05f);
academyStepMethod?.Invoke(aca, new object[] { });
aca.EnvironmentStep();
agent1.AddReward(10f);
if ((i % 21 == 0) && (i > 0))

2
UnitySDK/Assets/ML-Agents/Editor/Tests/Sensor/WriterAdapterTests.cs


data = new Tensor(2, 2, 2, 3)
};
var shape = new[] { 2, 2, 3 };
writer.SetTarget(t, 0, 0);
writer[1, 0, 1] = 1f;
Assert.AreEqual(1f, t.data[0, 1, 0, 1]);

16
UnitySDK/Assets/ML-Agents/Examples/3DBall/Scenes/3DBall.unity


serializedVersion: 6
m_Component:
- component: {fileID: 1583402088}
- component: {fileID: 1583402089}
m_Name: Ball3DAcademy
m_Name: Ball3DSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1583402089
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1583402087}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1583402090
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
gravityMultiplier: 1
monitorVerticalOffset: 0
fixedDeltaTime: 0.02
maximumDeltaTime: 0.33333334
solverIterations: 6

533
UnitySDK/Assets/ML-Agents/Examples/3DBall/Scenes/3DBallHard.unity


--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3

m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44971162, g: 0.49977726, b: 0.5756362, a: 1}
m_IndirectSpecularColor: {r: 0.4497121, g: 0.49977785, b: 0.57563704, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0

m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
serializedVersion: 9
serializedVersion: 10
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1

m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1001 &83714371
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (10)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (10)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (7)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (7)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 1537641056927260, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
type: 2}
type: 3}
- target: {fileID: 1537641056927260, guid: 3ce107b4a79bc4eef83afde434932a68, type: 2}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 3ce107b4a79bc4eef83afde434932a68, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 807556627}
- component: {fileID: 807556626}

--- !u!81 &807556623
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0

--- !u!4 &807556627
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 807556622}
m_LocalRotation: {x: 0.13052616, y: 0, z: 0, w: 0.9914449}
m_LocalPosition: {x: 4.5, y: 15, z: -45}

m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0}
--- !u!1001 &1039166859
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (9)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (9)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (1)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
objectReference: {fileID: 0}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (1)
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (2)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
objectReference: {fileID: 0}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (2)
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (8)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (8)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (5)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (5)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
m_PrefabParentObject: {fileID: 1408885610532680, guid: 00a1ebe742cf2394d8c21484e3a02412,
m_CorrespondingSourceObject: {fileID: 1408885610532680, guid: 00a1ebe742cf2394d8c21484e3a02412,
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Name: Ball3DHardAcademy
m_Name: Ball3DHardSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 4673284961943764, guid: 00a1ebe742cf2394d8c21484e3a02412,
m_CorrespondingSourceObject: {fileID: 4673284961943764, guid: 00a1ebe742cf2394d8c21484e3a02412,
m_PrefabInternal: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1583402087}
m_LocalRotation: {x: -0.069583125, y: 0.0049145464, z: 0.0702813, w: 0.99508524}
m_LocalPosition: {x: 0, y: 0, z: 0}

--- !u!114 &1583402089
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 114659680214172868, guid: 00a1ebe742cf2394d8c21484e3a02412,
type: 2}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Script: {fileID: 11500000, guid: eb15e3c3d55e54abaafb74c635b6a458, type: 3}
m_Script: {fileID: 11500000, guid: ec51f47c5ed0478080c449c74fd9c154, type: 3}
broadcastHub:
brainsToControl:
- {fileID: 11400000, guid: 4f74e089fbb75455ebf6f0495e30be6e, type: 2}
m_TrainingConfiguration:
width: 300
height: 200
qualityLevel: 0
timeScale: 20
targetFrameRate: 60
m_InferenceConfiguration:
width: 1280
height: 720
qualityLevel: 5
timeScale: 1
targetFrameRate: -1
resetParameters:
m_ResetParameters:
- key: mass
value: 1
- key: gravity
value: 9.81
- key: scale
value: 1
gravityMultiplier: 1
monitorVerticalOffset: 0
fixedDeltaTime: 0.02
maximumDeltaTime: 0.33333334
solverIterations: 6
solverVelocityIterations: 1
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (4)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (4)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (6)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (6)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (11)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (11)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1746325442}
- component: {fileID: 1746325441}

--- !u!114 &1746325440
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1746325439}
m_Enabled: 1
m_EditorHideFlags: 0

--- !u!114 &1746325441
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1746325439}
m_Enabled: 1
m_EditorHideFlags: 0

--- !u!4 &1746325442
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1746325439}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}

m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1862302804
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
propertyPath: m_Name
value: 3DBallHardPlatformNew (3)
objectReference: {fileID: 0}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 1753668517859216, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
propertyPath: m_Name
value: 3DBallHardPlatformNew (3)
objectReference: {fileID: 0}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
m_ParentPrefab: {fileID: 100100000, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
Prefab:
PrefabInstance:
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
- target: {fileID: 4133146672945188, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}
m_ParentPrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 2}
m_IsPrefabParent: 0
m_SourcePrefab: {fileID: 100100000, guid: 0d8ebd51939eb45c88531e9d444bca28, type: 3}

3
UnitySDK/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs


public override void InitializeAgent()
{
m_BallRb = ball.GetComponent<Rigidbody>();
var academy = FindObjectOfType<Academy>();
m_ResetParams = academy.FloatProperties;
m_ResetParams = Academy.Instance.FloatProperties;
SetResetParameters();
}

3
UnitySDK/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DHardAgent.cs


public override void InitializeAgent()
{
m_BallRb = ball.GetComponent<Rigidbody>();
var academy = FindObjectOfType<Academy>();
m_ResetParams = academy.FloatProperties;
m_ResetParams = Academy.Instance.FloatProperties;
SetResetParameters();
}

94
UnitySDK/Assets/ML-Agents/Examples/Basic/Scenes/Basic.unity


- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_RootOrder
value: 4
value: 3
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
--- !u!1 &1574236047
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1574236049}
- component: {fileID: 1574236048}
m_Layer: 0
m_Name: Academy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1574236048
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1574236047}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1574236049
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1574236047}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.71938086, y: 0.27357092, z: 4.1970553}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1715640920
GameObject:
m_ObjectHideFlags: 0

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c5eb289873aca4f5a8cc59c7464ab7c1, type: 3}
--- !u!1 &1889211226
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1889211228}
- component: {fileID: 1889211227}
m_Layer: 0
m_Name: BasicSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1889211227
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1889211226}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec51f47c5ed0478080c449c74fd9c154, type: 3}
m_Name:
m_EditorClassIdentifier:
gravityMultiplier: 1
monitorVerticalOffset: 0
fixedDeltaTime: 0.02
maximumDeltaTime: 0.33333334
solverIterations: 6
solverVelocityIterations: 1
--- !u!4 &1889211228
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1889211226}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

4
UnitySDK/Assets/ML-Agents/Examples/Basic/Scripts/BasicAgent.cs


public class BasicAgent : Agent
{
[Header("Specific to Basic")]
Academy m_Academy;
public float timeBetweenDecisionsAtInference;
float m_TimeSinceDecision;
int m_Position;

public override void InitializeAgent()
{
m_Academy = FindObjectOfType(typeof(Academy)) as Academy;
}
public override void CollectObservations()

void WaitTimeInference()
{
if (!m_Academy.IsCommunicatorOn)
if (!Academy.Instance.IsCommunicatorOn)
{
RequestDecision();
}

16
UnitySDK/Assets/ML-Agents/Examples/Bouncer/Scenes/Bouncer.unity


serializedVersion: 6
m_Component:
- component: {fileID: 1453982295}
- component: {fileID: 1453982296}
m_Name: Academy
m_Name: BouncerSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Name:
m_EditorClassIdentifier:
gravityMultiplier: 2
monitorVerticalOffset: 0
fixedDeltaTime: 0.02
maximumDeltaTime: 0.33333334
solverIterations: 6

m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1453982296
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1453982293}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &1526996927
PrefabInstance:
m_ObjectHideFlags: 0

3
UnitySDK/Assets/ML-Agents/Examples/Bouncer/Scripts/BouncerAgent.cs


m_Rb = gameObject.GetComponent<Rigidbody>();
m_LookDir = Vector3.zero;
var academy = FindObjectOfType<Academy>();
m_ResetParams = academy.FloatProperties;
m_ResetParams = Academy.Instance.FloatProperties;
SetResetParameters();
}

17
UnitySDK/Assets/ML-Agents/Examples/Crawler/Scenes/CrawlerDynamicTarget.unity


m_Component:
- component: {fileID: 2095421679}
- component: {fileID: 2095421681}
- component: {fileID: 2095421682}
m_Name: Academy
m_Name: CrawlerSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Script: {fileID: 11500000, guid: ec51f47c5ed0478080c449c74fd9c154, type: 3}
m_Name:
m_EditorClassIdentifier:
monitorVerticalOffset: 1
monitorVerticalOffset: 1
fixedDeltaTime: 0.01333
maximumDeltaTime: 0.15
solverIterations: 12

m_Script: {fileID: 11500000, guid: 3d6f3eab3776b4fb79724ac4216dfd7b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2095421682
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2095421678}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:

17
UnitySDK/Assets/ML-Agents/Examples/Crawler/Scenes/CrawlerStaticTarget.unity


serializedVersion: 6
m_Component:
- component: {fileID: 2095421679}
- component: {fileID: 2095421681}
m_Name: Academy
m_Name: CrawlerSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Script: {fileID: 11500000, guid: ec51f47c5ed0478080c449c74fd9c154, type: 3}
m_Name:
m_EditorClassIdentifier:
monitorVerticalOffset: 1
monitorVerticalOffset: 1
--- !u!114 &2095421681
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2095421678}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &2129505181
PrefabInstance:
m_ObjectHideFlags: 0

15
UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/FoodCollector.unity


serializedVersion: 6
m_Component:
- component: {fileID: 1574236049}
- component: {fileID: 1574236051}
m_Name: Academy
m_Name: FoodCollectorSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1574236051
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1574236047}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1799584680
GameObject:
m_ObjectHideFlags: 0

15
UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/VisualFoodCollector.unity


serializedVersion: 6
m_Component:
- component: {fileID: 1574236049}
- component: {fileID: 1574236050}
m_Name: Academy
m_Name: FoodCollectorSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1574236050
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1574236047}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1799584680
GameObject:
m_ObjectHideFlags: 0

6
UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scripts/FoodCollectorAgent.cs


public class FoodCollectorAgent : Agent
{
FoodCollectorSettings m_FoodCollecterSettings;
Academy m_Academy;
public GameObject area;
FoodCollectorArea m_MyArea;
bool m_Frozen;

Monitor.verticalOffset = 1f;
m_MyArea = area.GetComponent<FoodCollectorArea>();
m_FoodCollecterSettings = FindObjectOfType<FoodCollectorSettings>();
m_Academy = FindObjectOfType<Academy>();
SetResetParameters();
}

public void SetLaserLengths()
{
m_LaserLength = m_Academy.FloatProperties.GetPropertyWithDefault("laser_length", 1.0f);
m_LaserLength = Academy.Instance.FloatProperties.GetPropertyWithDefault("laser_length", 1.0f);
float agentScale = m_Academy.FloatProperties.GetPropertyWithDefault("agent_scale", 1.0f);
float agentScale = Academy.Instance.FloatProperties.GetPropertyWithDefault("agent_scale", 1.0f);
gameObject.transform.localScale = new Vector3(agentScale, agentScale, agentScale);
}

4
UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scripts/FoodCollectorSettings.cs


public void Awake()
{
var academy = FindObjectOfType<Academy>();
academy.LazyInitialization();
academy.OnEnvironmentReset += EnvironmentReset;
Academy.Instance.OnEnvironmentReset += EnvironmentReset;
}
public void EnvironmentReset()

15
UnitySDK/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorld.unity


serializedVersion: 6
m_Component:
- component: {fileID: 2047664}
- component: {fileID: 2047665}
m_Name: GridAcademy
m_Name: GridSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2047665
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2047662}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1fc0029fee784d9cb9854f8912bfd07, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &99095112
GameObject:
m_ObjectHideFlags: 0

6
UnitySDK/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs


public class GridAgent : Agent
{
Academy m_Academy;
[FormerlySerializedAs("m_Area")]
[Header("Specific to GridWorld")]
public GridArea area;

public override void InitializeAgent()
{
m_Academy = FindObjectOfType<Academy>();
}
public override void CollectObservations()

// Prevents the agent from picking an action that would make it collide with a wall
var positionX = (int)transform.position.x;
var positionZ = (int)transform.position.z;