diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/AreaColab.prefab b/Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/AreaColab.prefab
new file mode 100644
index 0000000000..5b1a4e4434
--- /dev/null
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/AreaColab.prefab
@@ -0,0 +1,2029 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1220141488340396
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4007504045862718}
+ - component: {fileID: 33222498917940530}
+ - component: {fileID: 65623874337418966}
+ - component: {fileID: 23631786362770220}
+ m_Layer: 0
+ m_Name: sS
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4007504045862718
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1220141488340396}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: -1}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 4036590373541758}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!33 &33222498917940530
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1220141488340396}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65623874337418966
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1220141488340396}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23631786362770220
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1220141488340396}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1324124466577712
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4036590373541758}
+ m_Layer: 0
+ m_Name: scene
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4036590373541758
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1324124466577712}
+ 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:
+ - {fileID: 4558725385767926}
+ - {fileID: 4088684435237278}
+ - {fileID: 4399229758781002}
+ - {fileID: 4479182187388718}
+ - {fileID: 4007504045862718}
+ m_Father: {fileID: 4124767863011510}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1376404096451388
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4206155882393090}
+ - component: {fileID: 33152597024021804}
+ - component: {fileID: 65829039252076494}
+ - component: {fileID: 23027717151182946}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4206155882393090
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376404096451388}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1887170508549532943}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33152597024021804
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376404096451388}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65829039252076494
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376404096451388}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23027717151182946
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376404096451388}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1394424645070404
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4890346887087870}
+ - component: {fileID: 20743940359151984}
+ m_Layer: 0
+ m_Name: agentCam
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4890346887087870
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1394424645070404}
+ m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 5, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4124767863011510}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!20 &20743940359151984
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1394424645070404}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 0
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!1 &1488387672112076
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4034807106460652}
+ - component: {fileID: 33823710649932060}
+ - component: {fileID: 65073501172061214}
+ - component: {fileID: 114935253044749092}
+ - component: {fileID: 114650561397225712}
+ - component: {fileID: 114889700908650620}
+ - component: {fileID: 7980686505185502968}
+ m_Layer: 8
+ m_Name: Agent
+ m_TagString: agent
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4034807106460652
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ 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:
+ - {fileID: 1887170508549532943}
+ - {fileID: 4973675812163709526}
+ - {fileID: 4067739522719805371}
+ m_Father: {fileID: 4124767863011510}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33823710649932060
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65073501172061214
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &114935253044749092
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_BrainParameters:
+ VectorObservationSize: 0
+ NumStackedVectorObservations: 1
+ m_ActionSpec:
+ m_NumContinuousActions: 0
+ BranchSizes: 05000000
+ VectorActionSize: 05000000
+ VectorActionDescriptions: []
+ VectorActionSpaceType: 0
+ hasUpgradedBrainParametersWithActionSpec: 1
+ m_Model: {fileID: 5022602860645237092, guid: fa541e2e31feaa144a9ebcc21e151fb5, type: 3}
+ m_InferenceDevice: 2
+ m_BehaviorType: 0
+ m_BehaviorName: GridWorld
+ TeamId: 0
+ m_UseChildSensors: 1
+ m_UseChildActuators: 1
+ m_ObservableAttributeHandling: 0
+--- !u!114 &114650561397225712
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 857707f3f352541d5b858efca4479b95, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ agentParameters:
+ maxStep: 0
+ hasUpgradedFromAgentParameters: 1
+ MaxStep: 100
+ area: {fileID: 114704252266302846}
+ timeBetweenDecisionsAtInference: 0.15
+ renderCamera: {fileID: 0}
+ GreenBottom: {fileID: 8920732062626264647}
+ RedBottom: {fileID: 4581466698767512273}
+ maskActions: 0
+--- !u!114 &114889700908650620
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 282f342c2ab144bf38be65d4d0c4e07d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Camera: {fileID: 20743940359151984}
+ m_SensorName: CameraSensor
+ m_Width: 84
+ m_Height: 64
+ m_Grayscale: 0
+ m_ObservationType: 0
+ m_ObservationStacks: 1
+ m_Compression: 1
+--- !u!114 &7980686505185502968
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1488387672112076}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ debugCommandLineOverride:
+--- !u!1 &1625008366184734
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4124767863011510}
+ - component: {fileID: 114704252266302846}
+ m_Layer: 0
+ m_Name: AreaColab
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4124767863011510
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1625008366184734}
+ 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:
+ - {fileID: 4036590373541758}
+ - {fileID: 4034807106460652}
+ - {fileID: 4890346887087870}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &114704252266302846
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1625008366184734}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 676658555cb2d4884aa8285062aab2a1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ actorObjs: []
+ players:
+ trueAgent: {fileID: 1488387672112076}
+ GreenPlusPrefab: {fileID: 1508142483324970, guid: 1ec4e4e96e7514d45b7ebc3ba5a9a481,
+ type: 3}
+ RedExPrefab: {fileID: 1811317785436014, guid: d13ee2db77b3a4dcc8664d2fe2a0f219,
+ type: 3}
+ numberOfPlus: 1
+ numberOfEx: 1
+--- !u!1 &1656910849934022
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4399229758781002}
+ - component: {fileID: 33099526047820694}
+ - component: {fileID: 65461269218509740}
+ - component: {fileID: 23289473826438240}
+ m_Layer: 0
+ m_Name: sW
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4399229758781002
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1656910849934022}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 4036590373541758}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33099526047820694
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1656910849934022}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65461269218509740
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1656910849934022}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23289473826438240
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1656910849934022}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1659433968697430
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4269224463113992}
+ - component: {fileID: 33813191588135886}
+ - component: {fileID: 65922560747716658}
+ - component: {fileID: 23740566138369150}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4269224463113992
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1659433968697430}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1887170508549532943}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33813191588135886
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1659433968697430}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65922560747716658
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1659433968697430}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23740566138369150
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1659433968697430}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1696233368146792
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4616835664324708}
+ - component: {fileID: 33825707296015202}
+ - component: {fileID: 65020466233620882}
+ - component: {fileID: 23205928308810388}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4616835664324708
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696233368146792}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 1887170508549532943}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33825707296015202
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696233368146792}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65020466233620882
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696233368146792}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23205928308810388
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696233368146792}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1805019891541352
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4041386967126538}
+ - component: {fileID: 33172111281575160}
+ - component: {fileID: 65321351298141546}
+ - component: {fileID: 23200653194041678}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4041386967126538
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1805019891541352}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 1887170508549532943}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33172111281575160
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1805019891541352}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65321351298141546
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1805019891541352}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23200653194041678
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1805019891541352}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1817050562469182
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4088684435237278}
+ - component: {fileID: 33550006272110778}
+ - component: {fileID: 65782631683949718}
+ - component: {fileID: 23048682015641784}
+ m_Layer: 0
+ m_Name: sE
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4088684435237278
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1817050562469182}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 1, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 4036590373541758}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33550006272110778
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1817050562469182}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65782631683949718
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1817050562469182}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23048682015641784
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1817050562469182}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1881546218232006
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4558725385767926}
+ - component: {fileID: 33934167732208046}
+ - component: {fileID: 64291102267821286}
+ - component: {fileID: 23096611355272904}
+ m_Layer: 8
+ m_Name: Plane
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4558725385767926
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1881546218232006}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.5, z: 0}
+ m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
+ m_Children: []
+ m_Father: {fileID: 4036590373541758}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &33934167732208046
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1881546218232006}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!64 &64291102267821286
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1881546218232006}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &23096611355272904
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1881546218232006}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: acba6bf2a290a496bb8989b42bf8698d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &1898983423426052
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4479182187388718}
+ - component: {fileID: 33572314435256338}
+ - component: {fileID: 65944324207520424}
+ - component: {fileID: 23171092457376468}
+ m_Layer: 0
+ m_Name: sN
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4479182187388718
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1898983423426052}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 1}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 4036590373541758}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!33 &33572314435256338
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1898983423426052}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &65944324207520424
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1898983423426052}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &23171092457376468
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1898983423426052}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &462420252240335615
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4330763733777060503}
+ - component: {fileID: 8435613835109386977}
+ - component: {fileID: 3156974850325288354}
+ - component: {fileID: 1839010821600771210}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4330763733777060503
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 462420252240335615}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 4067739522719805371}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8435613835109386977
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 462420252240335615}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &3156974850325288354
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 462420252240335615}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1839010821600771210
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 462420252240335615}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &2140658693492366245
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8139227632564183964}
+ - component: {fileID: 4441789264695109679}
+ - component: {fileID: 3147603231634508380}
+ - component: {fileID: 9040646333384890017}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8139227632564183964
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2140658693492366245}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 4067739522719805371}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4441789264695109679
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2140658693492366245}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &3147603231634508380
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2140658693492366245}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &9040646333384890017
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2140658693492366245}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &2434355380895249150
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3147246490325979217}
+ - component: {fileID: 8169197181194967258}
+ - component: {fileID: 1509650541629713148}
+ - component: {fileID: 5441975983057232048}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3147246490325979217
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2434355380895249150}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 4973675812163709526}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8169197181194967258
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2434355380895249150}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &1509650541629713148
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2434355380895249150}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &5441975983057232048
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2434355380895249150}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &3626447536540640153
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 285043643249855503}
+ - component: {fileID: 4813994350244858160}
+ - component: {fileID: 4299335526686865903}
+ - component: {fileID: 4749183378958426266}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &285043643249855503
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3626447536540640153}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4067739522719805371}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4813994350244858160
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3626447536540640153}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &4299335526686865903
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3626447536540640153}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &4749183378958426266
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3626447536540640153}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &3953431543902180633
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8588407358000093335}
+ - component: {fileID: 4808436284804927424}
+ - component: {fileID: 6779118034279698010}
+ - component: {fileID: 5114579664306028427}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8588407358000093335
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3953431543902180633}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4973675812163709526}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4808436284804927424
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3953431543902180633}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &6779118034279698010
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3953431543902180633}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &5114579664306028427
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3953431543902180633}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &4472785895906345941
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 185096777859856055}
+ - component: {fileID: 5181354088122057621}
+ - component: {fileID: 6364443950699486206}
+ - component: {fileID: 8304070115246987804}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &185096777859856055
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4472785895906345941}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4973675812163709526}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5181354088122057621
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4472785895906345941}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &6364443950699486206
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4472785895906345941}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &8304070115246987804
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4472785895906345941}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &4581466698767512273
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4067739522719805371}
+ m_Layer: 8
+ m_Name: Bottom-Red
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4067739522719805371
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4581466698767512273}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.099, z: 0}
+ m_LocalScale: {x: 1, y: 0.7, z: 1}
+ m_Children:
+ - {fileID: 2580315339548055252}
+ - {fileID: 285043643249855503}
+ - {fileID: 8139227632564183964}
+ - {fileID: 4330763733777060503}
+ m_Father: {fileID: 4034807106460652}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &5770321103113468817
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2580315339548055252}
+ - component: {fileID: 2649567833276537042}
+ - component: {fileID: 6760739988300919339}
+ - component: {fileID: 1106153669054352}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2580315339548055252
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5770321103113468817}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 4067739522719805371}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &2649567833276537042
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5770321103113468817}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &6760739988300919339
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5770321103113468817}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1106153669054352
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5770321103113468817}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &6495503354550094147
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1887170508549532943}
+ m_Layer: 8
+ m_Name: Top
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1887170508549532943
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6495503354550094147}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.35, z: 0}
+ m_LocalScale: {x: 1, y: 0.3, z: 1}
+ m_Children:
+ - {fileID: 4269224463113992}
+ - {fileID: 4206155882393090}
+ - {fileID: 4041386967126538}
+ - {fileID: 4616835664324708}
+ m_Father: {fileID: 4034807106460652}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &7814121189520934378
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4619882085342295572}
+ - component: {fileID: 8051799667743417835}
+ - component: {fileID: 2212299054001097616}
+ - component: {fileID: 3530237456059440266}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4619882085342295572
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7814121189520934378}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 4973675812163709526}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8051799667743417835
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7814121189520934378}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!65 &2212299054001097616
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7814121189520934378}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &3530237456059440266
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7814121189520934378}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &8920732062626264647
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4973675812163709526}
+ m_Layer: 8
+ m_Name: Bottom-Green
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4973675812163709526
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8920732062626264647}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.099, z: 0}
+ m_LocalScale: {x: 1, y: 0.7, z: 1}
+ m_Children:
+ - {fileID: 8588407358000093335}
+ - {fileID: 185096777859856055}
+ - {fileID: 3147246490325979217}
+ - {fileID: 4619882085342295572}
+ m_Father: {fileID: 4034807106460652}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/AreaColab.prefab.meta b/Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/AreaColab.prefab.meta
new file mode 100644
index 0000000000..957991d905
--- /dev/null
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/AreaColab.prefab.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9841d390cbbc64944afad281be2e9034
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColab.unity b/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColab.unity
new file mode 100644
index 0000000000..7d71d8ed8e
--- /dev/null
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColab.unity
@@ -0,0 +1,3298 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.8, g: 0.8, b: 0.8, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.44971228, g: 0.49977815, b: 0.57563734, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 112000002, guid: 7f0b1be1ff5294d44a42985b3d87b2df,
+ type: 2}
+ m_LightingSettings: {fileID: 4890085278179872738, guid: 0cebef56442944347866a3aa76307a34,
+ type: 2}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &2047662
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2047664}
+ - component: {fileID: 2047663}
+ m_Layer: 0
+ m_Name: GridSettings
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2047663
+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: 6b93320f838a5465296582bcbf7e4bac, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ MainCamera: {fileID: 99095115}
+--- !u!4 &2047664
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2047662}
+ m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 9.52, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &77576403
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (7)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 14
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1 &99095112
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 99095116}
+ - component: {fileID: 99095115}
+ - component: {fileID: 99095113}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!124 &99095113
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 99095112}
+ m_Enabled: 1
+--- !u!20 &99095115
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 99095112}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.46666667, g: 0.5647059, b: 0.60784316, a: 1}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 58
+ orthographic: 1
+ orthographic size: 5.46
+ m_Depth: 1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &99095116
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 99095112}
+ m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535}
+ m_LocalPosition: {x: -5, y: 8.2, z: -5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0}
+--- !u!1 &125487785
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1488387672112076, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 125487786}
+ - component: {fileID: 125487789}
+ - component: {fileID: 125487788}
+ - component: {fileID: 125487790}
+ - component: {fileID: 125487787}
+ - component: {fileID: 125487791}
+ m_Layer: 8
+ m_Name: RenderTextureAgent
+ m_TagString: agent
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &125487786
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4034807106460652, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125487785}
+ 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:
+ - {fileID: 718770070}
+ - {fileID: 299607778}
+ - {fileID: 1559803815}
+ m_Father: {fileID: 1795599558}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &125487787
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 114650561397225712, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125487785}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 857707f3f352541d5b858efca4479b95, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ agentParameters:
+ maxStep: 100
+ hasUpgradedFromAgentParameters: 1
+ MaxStep: 100
+ area: {fileID: 1795599557}
+ timeBetweenDecisionsAtInference: 0.15
+ renderCamera: {fileID: 797520692}
+ GreenBottom: {fileID: 299607777}
+ RedBottom: {fileID: 1559803814}
+ maskActions: 0
+--- !u!65 &125487788
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 65073501172061214, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125487785}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &125487789
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 33823710649932060, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125487785}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &125487790
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125487785}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_BrainParameters:
+ VectorObservationSize: 0
+ NumStackedVectorObservations: 1
+ m_ActionSpec:
+ m_NumContinuousActions: 0
+ BranchSizes: 05000000
+ VectorActionSize: 05000000
+ VectorActionDescriptions: []
+ VectorActionSpaceType: 0
+ hasUpgradedBrainParametersWithActionSpec: 1
+ m_Model: {fileID: 5022602860645237092, guid: fa541e2e31feaa144a9ebcc21e151fb5, type: 3}
+ m_InferenceDevice: 2
+ m_BehaviorType: 0
+ m_BehaviorName: GridWorld
+ TeamId: 0
+ m_UseChildSensors: 1
+ m_UseChildActuators: 1
+ m_ObservableAttributeHandling: 0
+--- !u!114 &125487791
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125487785}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 132e1194facb64429b007ea1edf562d0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_RenderTexture: {fileID: 8400000, guid: 114608d5384404f89bff4b6f88432958, type: 2}
+ m_SensorName: RenderTextureSensor
+ m_Grayscale: 0
+ m_ObservationStacks: 1
+ m_Compression: 1
+--- !u!1001 &142724422
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1 &299607777
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 299607778}
+ m_Layer: 8
+ m_Name: Bottom-Green
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &299607778
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 299607777}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.099, z: 0}
+ m_LocalScale: {x: 1, y: 0.7, z: 1}
+ m_Children:
+ - {fileID: 686883666}
+ - {fileID: 1468557422}
+ - {fileID: 1382787854}
+ - {fileID: 527080937}
+ m_Father: {fileID: 125487786}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &331700282
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 331700283}
+ - component: {fileID: 331700286}
+ - component: {fileID: 331700285}
+ - component: {fileID: 331700284}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &331700283
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 331700282}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 718770070}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &331700284
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 331700282}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &331700285
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 331700282}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &331700286
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 331700282}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &363761396
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 363761400}
+ - component: {fileID: 363761399}
+ - component: {fileID: 363761398}
+ - component: {fileID: 363761397}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &363761397
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 363761396}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &363761398
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 363761396}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &363761399
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 363761396}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &363761400
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 363761396}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_Children:
+ - {fileID: 1553342943}
+ - {fileID: 918893359}
+ - {fileID: 1305247360}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!1 &486401523
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1324124466577712, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 486401524}
+ m_Layer: 0
+ m_Name: scene
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &486401524
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4036590373541758, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 486401523}
+ 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:
+ - {fileID: 1208586861}
+ - {fileID: 1045409644}
+ - {fileID: 959566332}
+ - {fileID: 1938864793}
+ - {fileID: 1726089814}
+ m_Father: {fileID: 1795599558}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &527080936
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 527080937}
+ - component: {fileID: 527080940}
+ - component: {fileID: 527080939}
+ - component: {fileID: 527080938}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &527080937
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 527080936}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 299607778}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &527080938
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 527080936}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &527080939
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 527080936}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &527080940
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 527080936}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &638135089
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 638135090}
+ - component: {fileID: 638135093}
+ - component: {fileID: 638135092}
+ - component: {fileID: 638135091}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &638135090
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638135089}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 718770070}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &638135091
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638135089}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &638135092
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638135089}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &638135093
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638135089}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &686883665
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 686883666}
+ - component: {fileID: 686883669}
+ - component: {fileID: 686883668}
+ - component: {fileID: 686883667}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &686883666
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 686883665}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 299607778}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &686883667
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 686883665}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &686883668
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 686883665}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &686883669
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 686883665}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &703155814
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 703155815}
+ - component: {fileID: 703155818}
+ - component: {fileID: 703155817}
+ - component: {fileID: 703155816}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &703155815
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 703155814}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 1559803815}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &703155816
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 703155814}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &703155817
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 703155814}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &703155818
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 703155814}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1001 &715789529
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.8681629
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.31598538
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.3596048
+ objectReference: {fileID: 0}
+ - target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.13088542
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
+--- !u!1 &718770069
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 718770070}
+ m_Layer: 8
+ m_Name: Top
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &718770070
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 718770069}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.35, z: 0}
+ m_LocalScale: {x: 1, y: 0.29999998, z: 1}
+ m_Children:
+ - {fileID: 638135090}
+ - {fileID: 1747589537}
+ - {fileID: 331700283}
+ - {fileID: 2041478814}
+ m_Father: {fileID: 125487786}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &742849316
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 742849319}
+ - component: {fileID: 742849318}
+ - component: {fileID: 742849317}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &742849317
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 742849316}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &742849318
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 742849316}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 5
+--- !u!4 &742849319
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 742849316}
+ 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: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &797520691
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1394424645070404, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 797520693}
+ - component: {fileID: 797520692}
+ m_Layer: 0
+ m_Name: agentCam
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!20 &797520692
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 20743940359151984, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 797520691}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 8400000, guid: 114608d5384404f89bff4b6f88432958, type: 2}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 0
+ m_AllowMSAA: 0
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &797520693
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4890346887087870, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 797520691}
+ m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 5, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1795599558}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!1 &862412531
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 862412532}
+ - component: {fileID: 862412535}
+ - component: {fileID: 862412534}
+ - component: {fileID: 862412533}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &862412532
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 862412531}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 1559803815}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &862412533
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 862412531}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &862412534
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 862412531}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &862412535
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 862412531}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &918893358
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 918893359}
+ - component: {fileID: 918893361}
+ - component: {fileID: 918893360}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &918893359
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 918893358}
+ 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: 363761400}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 150, y: -230}
+ m_SizeDelta: {x: 160, y: 55.599976}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &918893360
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 918893358}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 22
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 7
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'Agent View
+
+ (RenderTexture)'
+--- !u!222 &918893361
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 918893358}
+ m_CullTransparentMesh: 0
+--- !u!1001 &949576938
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
+--- !u!1 &959566328
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1656910849934022, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 959566332}
+ - component: {fileID: 959566331}
+ - component: {fileID: 959566330}
+ - component: {fileID: 959566329}
+ m_Layer: 0
+ m_Name: sW
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &959566329
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 23289473826438240, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 959566328}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &959566330
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 65461269218509740, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 959566328}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &959566331
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 33099526047820694, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 959566328}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &959566332
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4399229758781002, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 959566328}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 486401524}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &995288635
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (3)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 10
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1 &1045409640
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1817050562469182, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1045409644}
+ - component: {fileID: 1045409643}
+ - component: {fileID: 1045409642}
+ - component: {fileID: 1045409641}
+ m_Layer: 0
+ m_Name: sE
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &1045409641
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 23048682015641784, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045409640}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1045409642
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 65782631683949718, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045409640}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1045409643
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 33550006272110778, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045409640}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1045409644
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4088684435237278, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1045409640}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 1, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 486401524}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1107096728
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (4)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1001 &1109387392
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (5)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 12
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1 &1208586857
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1881546218232006, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1208586861}
+ - component: {fileID: 1208586860}
+ - component: {fileID: 1208586859}
+ - component: {fileID: 1208586858}
+ m_Layer: 8
+ m_Name: Plane
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &1208586858
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 23096611355272904, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1208586857}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: acba6bf2a290a496bb8989b42bf8698d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!64 &1208586859
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 64291102267821286, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1208586857}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 4
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!33 &1208586860
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 33934167732208046, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1208586857}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1208586861
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4558725385767926, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1208586857}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.5, z: 0}
+ m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
+ m_Children: []
+ m_Father: {fileID: 486401524}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1305247359
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1305247360}
+ - component: {fileID: 1305247362}
+ - component: {fileID: 1305247361}
+ m_Layer: 5
+ m_Name: RawImage
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1305247360
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1305247359}
+ 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: 363761400}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 150, y: -128}
+ m_SizeDelta: {x: 200, y: 152}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1305247361
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1305247359}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Texture: {fileID: 8400000, guid: 114608d5384404f89bff4b6f88432958, type: 2}
+ m_UVRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+--- !u!222 &1305247362
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1305247359}
+ m_CullTransparentMesh: 0
+--- !u!1 &1382787853
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1382787854}
+ - component: {fileID: 1382787857}
+ - component: {fileID: 1382787856}
+ - component: {fileID: 1382787855}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1382787854
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1382787853}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 299607778}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1382787855
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1382787853}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1382787856
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1382787853}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1382787857
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1382787853}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1001 &1439638635
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (2)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 9
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1 &1468557421
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1468557422}
+ - component: {fileID: 1468557425}
+ - component: {fileID: 1468557424}
+ - component: {fileID: 1468557423}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1468557422
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1468557421}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 299607778}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1468557423
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1468557421}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1468557424
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1468557421}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1468557425
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1468557421}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1553342942
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1553342943}
+ - component: {fileID: 1553342945}
+ - component: {fileID: 1553342944}
+ m_Layer: 5
+ m_Name: DebugTxt
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1553342943
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553342942}
+ 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: 363761400}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 179.2, y: -78.9}
+ m_SizeDelta: {x: 300, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1553342944
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553342942}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &1553342945
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553342942}
+ m_CullTransparentMesh: 0
+--- !u!1 &1559803814
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1559803815}
+ m_Layer: 8
+ m_Name: Bottom-Red
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1559803815
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1559803814}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.099, z: 0}
+ m_LocalScale: {x: 1, y: 0.7, z: 1}
+ m_Children:
+ - {fileID: 1880938766}
+ - {fileID: 1929077700}
+ - {fileID: 862412532}
+ - {fileID: 703155815}
+ m_Father: {fileID: 125487786}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1564215297
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (1)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 8
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1001 &1673869178
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1625008366184734, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_Name
+ value: AreaColab (6)
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_RootOrder
+ value: 13
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4124767863011510, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9841d390cbbc64944afad281be2e9034, type: 3}
+--- !u!1 &1726089810
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1220141488340396, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1726089814}
+ - component: {fileID: 1726089813}
+ - component: {fileID: 1726089812}
+ - component: {fileID: 1726089811}
+ m_Layer: 0
+ m_Name: sS
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &1726089811
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 23631786362770220, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1726089810}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1726089812
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 65623874337418966, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1726089810}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1726089813
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 33222498917940530, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1726089810}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1726089814
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4007504045862718, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1726089810}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: -1}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 486401524}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!1 &1747589536
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1747589537}
+ - component: {fileID: 1747589540}
+ - component: {fileID: 1747589539}
+ - component: {fileID: 1747589538}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1747589537
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1747589536}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 718770070}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1747589538
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1747589536}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1747589539
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1747589536}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1747589540
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1747589536}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1795599556
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1625008366184734, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1795599558}
+ - component: {fileID: 1795599557}
+ m_Layer: 0
+ m_Name: AreaRenderTexture
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1795599557
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 114704252266302846, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1795599556}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 676658555cb2d4884aa8285062aab2a1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ actorObjs: []
+ players:
+ trueAgent: {fileID: 125487785}
+ GreenPlusPrefab: {fileID: 1508142483324970, guid: 1ec4e4e96e7514d45b7ebc3ba5a9a481,
+ type: 3}
+ RedExPrefab: {fileID: 1811317785436014, guid: d13ee2db77b3a4dcc8664d2fe2a0f219,
+ type: 3}
+ numberOfPlus: 1
+ numberOfEx: 1
+--- !u!4 &1795599558
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4124767863011510, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1795599556}
+ 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:
+ - {fileID: 486401524}
+ - {fileID: 125487786}
+ - {fileID: 797520693}
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1880938765
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1880938766}
+ - component: {fileID: 1880938769}
+ - component: {fileID: 1880938768}
+ - component: {fileID: 1880938767}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1880938766
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1880938765}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1559803815}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1880938767
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1880938765}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1880938768
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1880938765}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1880938769
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1880938765}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1929077699
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1929077700}
+ - component: {fileID: 1929077703}
+ - component: {fileID: 1929077702}
+ - component: {fileID: 1929077701}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1929077700
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1929077699}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.4, y: 0, z: 0}
+ m_LocalScale: {x: 0.2, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1559803815}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1929077701
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1929077699}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1929077702
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1929077699}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1929077703
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1929077699}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1938864789
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 1898983423426052, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1938864793}
+ - component: {fileID: 1938864792}
+ - component: {fileID: 1938864791}
+ - component: {fileID: 1938864790}
+ m_Layer: 0
+ m_Name: sN
+ m_TagString: wall
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!23 &1938864790
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 23171092457376468, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1938864789}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &1938864791
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 65944324207520424, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1938864789}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &1938864792
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 33572314435256338, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1938864789}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1938864793
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 4479182187388718, guid: 5c2bd19e4bbda4991b74387ca5d28156,
+ type: 3}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1938864789}
+ m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 1}
+ m_LocalScale: {x: 1, y: 0.5, z: 2}
+ m_Children: []
+ m_Father: {fileID: 486401524}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
+--- !u!1 &2041478813
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2041478814}
+ - component: {fileID: 2041478817}
+ - component: {fileID: 2041478816}
+ - component: {fileID: 2041478815}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2041478814
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041478813}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.4}
+ m_LocalScale: {x: 1, y: 1, z: 0.2}
+ m_Children: []
+ m_Father: {fileID: 718770070}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &2041478815
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041478813}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 1
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 0
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &2041478816
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041478813}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!33 &2041478817
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2041478813}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColab.unity.meta b/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColab.unity.meta
new file mode 100644
index 0000000000..a7ae7b9e1b
--- /dev/null
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColab.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 52abcf384224f764ba3f6d76f9a89dba
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColabSettings.lighting.meta b/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColabSettings.lighting.meta
new file mode 100644
index 0000000000..ada47b04c7
--- /dev/null
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/Scenes/GridWorldColabSettings.lighting.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0cebef56442944347866a3aa76307a34
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 4890085278179872738
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs b/Project/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs
index eaae7dddce..98325a8f52 100644
--- a/Project/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs
@@ -77,8 +77,12 @@ public override void Initialize()
public override void CollectObservations(VectorSensor sensor)
{
Array values = Enum.GetValues(typeof(GridGoal));
- int goalNum = (int)CurrentGoal;
- m_GoalSensor.GetSensor().AddOneHotObservation(goalNum, values.Length);
+
+ if (m_GoalSensor is object)
+ {
+ int goalNum = (int)CurrentGoal;
+ m_GoalSensor.GetSensor().AddOneHotObservation(goalNum, values.Length);
+ }
}
public override void WriteDiscreteActionMask(IDiscreteActionMask actionMask)
@@ -200,7 +204,14 @@ public override void OnEpisodeBegin()
{
area.AreaReset();
Array values = Enum.GetValues(typeof(GridGoal));
- CurrentGoal = (GridGoal)values.GetValue(UnityEngine.Random.Range(0, values.Length));
+ if (m_GoalSensor is object)
+ {
+ CurrentGoal = (GridGoal)values.GetValue(UnityEngine.Random.Range(0, values.Length));
+ }
+ else
+ {
+ CurrentGoal = GridGoal.GreenPlus;
+ }
}
public void FixedUpdate()
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/TFModels/GridWorldColab.onnx b/Project/Assets/ML-Agents/Examples/GridWorld/TFModels/GridWorldColab.onnx
new file mode 100644
index 0000000000..936a617905
Binary files /dev/null and b/Project/Assets/ML-Agents/Examples/GridWorld/TFModels/GridWorldColab.onnx differ
diff --git a/Project/Assets/ML-Agents/Examples/GridWorld/TFModels/GridWorldColab.onnx.meta b/Project/Assets/ML-Agents/Examples/GridWorld/TFModels/GridWorldColab.onnx.meta
new file mode 100644
index 0000000000..eadbada55b
--- /dev/null
+++ b/Project/Assets/ML-Agents/Examples/GridWorld/TFModels/GridWorldColab.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: fa541e2e31feaa144a9ebcc21e151fb5
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/colab/Colab_UnityEnvironment_2_Train.ipynb b/colab/Colab_UnityEnvironment_2_Train.ipynb
index 0a08aa81ee..7f212c156a 100644
--- a/colab/Colab_UnityEnvironment_2_Train.ipynb
+++ b/colab/Colab_UnityEnvironment_2_Train.ipynb
@@ -1,598 +1,700 @@
{
- "nbformat": 4,
- "nbformat_minor": 0,
- "metadata": {
- "colab": {
- "name": "Colab-UnityEnvironment-2-Train.ipynb",
- "private_outputs": true,
- "provenance": [],
- "collapsed_sections": [],
- "toc_visible": true
- },
- "kernelspec": {
- "name": "python3",
- "language": "python",
- "display_name": "Python 3"
- },
- "pycharm": {
- "stem_cell": {
- "cell_type": "raw",
- "source": [],
- "metadata": {
- "collapsed": false
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "Colab-UnityEnvironment-2-Train.ipynb",
+ "private_outputs": true,
+ "provenance": [],
+ "collapsed_sections": []
+ },
+ "kernelspec": {
+ "name": "python3",
+ "language": "python",
+ "display_name": "Python 3"
+ },
+ "pycharm": {
+ "stem_cell": {
+ "cell_type": "raw",
+ "source": [],
+ "metadata": {
+ "collapsed": false
+ }
+ }
}
- }
- }
- },
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "pbVXrmEsLXDt"
- },
- "source": [
- "# ML-Agents Q-Learning with GridWorld\n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "WNKTwHU3d2-l"
- },
- "source": [
- "## Setup"
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "htb-p1hSNX7D"
- },
- "source": [
- "#@title Install Rendering Dependencies { display-mode: \"form\" }\n",
- "#@markdown (You only need to run this code when using Colab's hosted runtime)\n",
- "\n",
- "import os\n",
- "from IPython.display import HTML, display\n",
- "\n",
- "def progress(value, max=100):\n",
- " return HTML(\"\"\"\n",
- " \n",
- " \"\"\".format(value=value, max=max))\n",
- "\n",
- "pro_bar = display(progress(0, 100), display_id=True)\n",
- "\n",
- "try:\n",
- " import google.colab\n",
- " INSTALL_XVFB = True\n",
- "except ImportError:\n",
- " INSTALL_XVFB = 'COLAB_ALWAYS_INSTALL_XVFB' in os.environ\n",
- "\n",
- "if INSTALL_XVFB:\n",
- " with open('frame-buffer', 'w') as writefile:\n",
- " writefile.write(\"\"\"#taken from https://gist.github.com/jterrace/2911875\n",
- "XVFB=/usr/bin/Xvfb\n",
- "XVFBARGS=\":1 -screen 0 1024x768x24 -ac +extension GLX +render -noreset\"\n",
- "PIDFILE=./frame-buffer.pid\n",
- "case \"$1\" in\n",
- " start)\n",
- " echo -n \"Starting virtual X frame buffer: Xvfb\"\n",
- " /sbin/start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS\n",
- " echo \".\"\n",
- " ;;\n",
- " stop)\n",
- " echo -n \"Stopping virtual X frame buffer: Xvfb\"\n",
- " /sbin/start-stop-daemon --stop --quiet --pidfile $PIDFILE\n",
- " rm $PIDFILE\n",
- " echo \".\"\n",
- " ;;\n",
- " restart)\n",
- " $0 stop\n",
- " $0 start\n",
- " ;;\n",
- " *)\n",
- " echo \"Usage: /etc/init.d/xvfb {start|stop|restart}\"\n",
- " exit 1\n",
- "esac\n",
- "exit 0\n",
- " \"\"\")\n",
- " pro_bar.update(progress(5, 100))\n",
- " !apt-get install daemon >/dev/null 2>&1\n",
- " pro_bar.update(progress(10, 100))\n",
- " !apt-get install wget >/dev/null 2>&1\n",
- " pro_bar.update(progress(20, 100))\n",
- " !wget http://security.ubuntu.com/ubuntu/pool/main/libx/libxfont/libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb >/dev/null 2>&1\n",
- " pro_bar.update(progress(30, 100))\n",
- " !wget --output-document xvfb.deb http://security.ubuntu.com/ubuntu/pool/universe/x/xorg-server/xvfb_1.18.4-0ubuntu0.12_amd64.deb >/dev/null 2>&1\n",
- " pro_bar.update(progress(40, 100))\n",
- " !dpkg -i libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb >/dev/null 2>&1\n",
- " pro_bar.update(progress(50, 100))\n",
- " !dpkg -i xvfb.deb >/dev/null 2>&1\n",
- " pro_bar.update(progress(70, 100))\n",
- " !rm libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb\n",
- " pro_bar.update(progress(80, 100))\n",
- " !rm xvfb.deb\n",
- " pro_bar.update(progress(90, 100))\n",
- " !bash frame-buffer start\n",
- " os.environ[\"DISPLAY\"] = \":1\"\n",
- "pro_bar.update(progress(100, 100))"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "Pzj7wgapAcDs"
- },
- "source": [
- "### Installing ml-agents"
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "N8yfQqkbebQ5"
- },
- "source": [
- "try:\n",
- " import mlagents\n",
- " print(\"ml-agents already installed\")\n",
- "except ImportError:\n",
- " !python -m pip install -q mlagents==0.27.0\n",
- " print(\"Installed ml-agents\")"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "jz81TWAkbuFY"
- },
- "source": [
- "## Train the GridWorld Environment with Q-Learning"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "29n3dt1Zx5ty"
- },
- "source": [
- "### What is the GridWorld Environment"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "pZhVRfdoyPmv"
- },
- "source": [
- "The [GridWorld](https://github.com/Unity-Technologies/ml-agents/blob/release_18_docs/docs/Learning-Environment-Examples.md#gridworld) Environment is a simple Unity visual environment. The Agent is a blue square in a 3x3 grid that is trying to reach a green __`+`__ while avoiding a red __`x`__.\n",
- "\n",
- "The observation is an image obtained by a camera on top of the grid.\n",
- "\n",
- "The Action can be one of 5 :\n",
- " - Do not move\n",
- " - Move up\n",
- " - Move down\n",
- " - Move right\n",
- " - Move left\n",
- "\n",
- "The Agent receives a reward of _1.0_ if it reaches the green __`+`__, a penalty of _-1.0_ if it touches the red __`x`__ and a penalty of `-0.01` at every step (to force the Agent to solve the task as fast as possible)\n",
- "\n",
- "__Note__ There are 9 Agents, each in their own grid, at once in the environment. This alows for faster data collection.\n",
- "\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "4Gt-ZydJyJWD"
- },
- "source": [
- "### The Q-Learning Algorithm\n"
- ]
},
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "KA1qOgfq0Xdv"
- },
- "source": [
- "In this Notebook, we will implement a very simple Q-Learning algorithm. We will use [pytorch](https://pytorch.org/) to do so.\n",
- "\n",
- "Below is the code to create the neural network we will use in the Notebook."
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "q79rUp_Sx6A_"
- },
- "source": [
- "import torch\n",
- "from typing import Tuple\n",
- "from math import floor\n",
- "\n",
- "\n",
- "class VisualQNetwork(torch.nn.Module):\n",
- " def __init__(\n",
- " self,\n",
- " input_shape: Tuple[int, int, int],\n",
- " encoding_size: int,\n",
- " output_size: int\n",
- " ):\n",
- " \"\"\"\n",
- " Creates a neural network that takes as input a batch of images (3\n",
- " dimensional tensors) and outputs a batch of outputs (1 dimensional\n",
- " tensors)\n",
- " \"\"\"\n",
- " super(VisualQNetwork, self).__init__()\n",
- " height = input_shape[0]\n",
- " width = input_shape[1]\n",
- " initial_channels = input_shape[2]\n",
- " conv_1_hw = self.conv_output_shape((height, width), 8, 4)\n",
- " conv_2_hw = self.conv_output_shape(conv_1_hw, 4, 2)\n",
- " self.final_flat = conv_2_hw[0] * conv_2_hw[1] * 32\n",
- " self.conv1 = torch.nn.Conv2d(initial_channels, 16, [8, 8], [4, 4])\n",
- " self.conv2 = torch.nn.Conv2d(16, 32, [4, 4], [2, 2])\n",
- " self.dense1 = torch.nn.Linear(self.final_flat, encoding_size)\n",
- " self.dense2 = torch.nn.Linear(encoding_size, output_size)\n",
- "\n",
- " def forward(self, visual_obs: torch.tensor):\n",
- " visual_obs = visual_obs.permute(0, 3, 1, 2)\n",
- " conv_1 = torch.relu(self.conv1(visual_obs))\n",
- " conv_2 = torch.relu(self.conv2(conv_1))\n",
- " hidden = self.dense1(conv_2.reshape([-1, self.final_flat]))\n",
- " hidden = torch.relu(hidden)\n",
- " hidden = self.dense2(hidden)\n",
- " return hidden\n",
- "\n",
- " @staticmethod\n",
- " def conv_output_shape(\n",
- " h_w: Tuple[int, int],\n",
- " kernel_size: int = 1,\n",
- " stride: int = 1,\n",
- " pad: int = 0,\n",
- " dilation: int = 1,\n",
- " ):\n",
- " \"\"\"\n",
- " Computes the height and width of the output of a convolution layer.\n",
- " \"\"\"\n",
- " h = floor(\n",
- " ((h_w[0] + (2 * pad) - (dilation * (kernel_size - 1)) - 1) / stride) + 1\n",
- " )\n",
- " w = floor(\n",
- " ((h_w[1] + (2 * pad) - (dilation * (kernel_size - 1)) - 1) / stride) + 1\n",
- " )\n",
- " return h, w\n"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "EZoaEBAo2L0F"
- },
- "source": [
- "We will now create a few classes to help us store the data we will use to train the Q-Learning algorithm."
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "L772fe2q39DO"
- },
- "source": [
- "import numpy as np\n",
- "from typing import NamedTuple, List\n",
- "\n",
- "\n",
- "class Experience(NamedTuple):\n",
- " \"\"\"\n",
- " An experience contains the data of one Agent transition.\n",
- " - Observation\n",
- " - Action\n",
- " - Reward\n",
- " - Done flag\n",
- " - Next Observation\n",
- " \"\"\"\n",
- "\n",
- " obs: np.ndarray\n",
- " action: np.ndarray\n",
- " reward: float\n",
- " done: bool\n",
- " next_obs: np.ndarray\n",
- "\n",
- "# A Trajectory is an ordered sequence of Experiences\n",
- "Trajectory = List[Experience]\n",
- "\n",
- "# A Buffer is an unordered list of Experiences from multiple Trajectories\n",
- "Buffer = List[Experience]"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "6HsM1d5I3_Tj"
- },
- "source": [
- "Now, we can create our trainer class. The role of this trainer is to collect data from the Environment according to a Policy, and then train the Q-Network with that data."
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "KkzBoRJCb18t"
- },
- "source": [
- "from mlagents_envs.environment import ActionTuple, BaseEnv\n",
- "from typing import Dict\n",
- "import random\n",
- "\n",
- "\n",
- "class Trainer:\n",
- " @staticmethod\n",
- " def generate_trajectories(\n",
- " env: BaseEnv, q_net: VisualQNetwork, buffer_size: int, epsilon: float\n",
- " ):\n",
- " \"\"\"\n",
- " Given a Unity Environment and a Q-Network, this method will generate a\n",
- " buffer of Experiences obtained by running the Environment with the Policy\n",
- " derived from the Q-Network.\n",
- " :param BaseEnv: The UnityEnvironment used.\n",
- " :param q_net: The Q-Network used to collect the data.\n",
- " :param buffer_size: The minimum size of the buffer this method will return.\n",
- " :param epsilon: Will add a random normal variable with standard deviation.\n",
- " epsilon to the value heads of the Q-Network to encourage exploration.\n",
- " :returns: a Tuple containing the created buffer and the average cumulative\n",
- " the Agents obtained.\n",
- " \"\"\"\n",
- " # Create an empty Buffer\n",
- " buffer: Buffer = []\n",
- "\n",
- " # Reset the environment\n",
- " env.reset()\n",
- " # Read and store the Behavior Name of the Environment\n",
- " behavior_name = list(env.behavior_specs)[0]\n",
- " # Read and store the Behavior Specs of the Environment\n",
- " spec = env.behavior_specs[behavior_name]\n",
- "\n",
- " # Create a Mapping from AgentId to Trajectories. This will help us create\n",
- " # trajectories for each Agents\n",
- " dict_trajectories_from_agent: Dict[int, Trajectory] = {}\n",
- " # Create a Mapping from AgentId to the last observation of the Agent\n",
- " dict_last_obs_from_agent: Dict[int, np.ndarray] = {}\n",
- " # Create a Mapping from AgentId to the last observation of the Agent\n",
- " dict_last_action_from_agent: Dict[int, np.ndarray] = {}\n",
- " # Create a Mapping from AgentId to cumulative reward (Only for reporting)\n",
- " dict_cumulative_reward_from_agent: Dict[int, float] = {}\n",
- " # Create a list to store the cumulative rewards obtained so far\n",
- " cumulative_rewards: List[float] = []\n",
- "\n",
- " while len(buffer) < buffer_size: # While not enough data in the buffer\n",
- " # Get the Decision Steps and Terminal Steps of the Agents\n",
- " decision_steps, terminal_steps = env.get_steps(behavior_name)\n",
- "\n",
- " # For all Agents with a Terminal Step:\n",
- " for agent_id_terminated in terminal_steps:\n",
- " # Create its last experience (is last because the Agent terminated)\n",
- " last_experience = Experience(\n",
- " obs=dict_last_obs_from_agent[agent_id_terminated].copy(),\n",
- " reward=terminal_steps[agent_id_terminated].reward,\n",
- " done=not terminal_steps[agent_id_terminated].interrupted,\n",
- " action=dict_last_action_from_agent[agent_id_terminated].copy(),\n",
- " next_obs=terminal_steps[agent_id_terminated].obs[0],\n",
- " )\n",
- " # Clear its last observation and action (Since the trajectory is over)\n",
- " dict_last_obs_from_agent.pop(agent_id_terminated)\n",
- " dict_last_action_from_agent.pop(agent_id_terminated)\n",
- " # Report the cumulative reward\n",
- " cumulative_reward = (\n",
- " dict_cumulative_reward_from_agent.pop(agent_id_terminated)\n",
- " + terminal_steps[agent_id_terminated].reward\n",
- " )\n",
- " cumulative_rewards.append(cumulative_reward)\n",
- " # Add the Trajectory and the last experience to the buffer\n",
- " buffer.extend(dict_trajectories_from_agent.pop(agent_id_terminated))\n",
- " buffer.append(last_experience)\n",
- "\n",
- " # For all Agents with a Decision Step:\n",
- " for agent_id_decisions in decision_steps:\n",
- " # If the Agent does not have a Trajectory, create an empty one\n",
- " if agent_id_decisions not in dict_trajectories_from_agent:\n",
- " dict_trajectories_from_agent[agent_id_decisions] = []\n",
- " dict_cumulative_reward_from_agent[agent_id_decisions] = 0\n",
- "\n",
- " # If the Agent requesting a decision has a \"last observation\"\n",
- " if agent_id_decisions in dict_last_obs_from_agent:\n",
- " # Create an Experience from the last observation and the Decision Step\n",
- " exp = Experience(\n",
- " obs=dict_last_obs_from_agent[agent_id_decisions].copy(),\n",
- " reward=decision_steps[agent_id_decisions].reward,\n",
- " done=False,\n",
- " action=dict_last_action_from_agent[agent_id_decisions].copy(),\n",
- " next_obs=decision_steps[agent_id_decisions].obs[0],\n",
- " )\n",
- " # Update the Trajectory of the Agent and its cumulative reward\n",
- " dict_trajectories_from_agent[agent_id_decisions].append(exp)\n",
- " dict_cumulative_reward_from_agent[agent_id_decisions] += (\n",
- " decision_steps[agent_id_decisions].reward\n",
- " )\n",
- " # Store the observation as the new \"last observation\"\n",
- " dict_last_obs_from_agent[agent_id_decisions] = (\n",
- " decision_steps[agent_id_decisions].obs[0]\n",
- " )\n",
- "\n",
- " # Generate an action for all the Agents that requested a decision\n",
- " # Compute the values for each action given the observation\n",
- " actions_values = (\n",
- " q_net(torch.from_numpy(decision_steps.obs[0])).detach().numpy()\n",
- " )\n",
- " # Add some noise with epsilon to the values\n",
- " actions_values += epsilon * (\n",
- " np.random.randn(actions_values.shape[0], actions_values.shape[1])\n",
- " ).astype(np.float32)\n",
- " # Pick the best action using argmax\n",
- " actions = np.argmax(actions_values, axis=1)\n",
- " actions.resize((len(decision_steps), 1))\n",
- " # Store the action that was picked, it will be put in the trajectory later\n",
- " for agent_index, agent_id in enumerate(decision_steps.agent_id):\n",
- " dict_last_action_from_agent[agent_id] = actions[agent_index]\n",
- "\n",
- " # Set the actions in the environment\n",
- " # Unity Environments expect ActionTuple instances.\n",
- " action_tuple = ActionTuple()\n",
- " action_tuple.add_discrete(actions)\n",
- " env.set_actions(behavior_name, action_tuple)\n",
- " # Perform a step in the simulation\n",
- " env.step()\n",
- " return buffer, np.mean(cumulative_rewards)\n",
- "\n",
- " @staticmethod\n",
- " def update_q_net(\n",
- " q_net: VisualQNetwork,\n",
- " optimizer: torch.optim,\n",
- " buffer: Buffer,\n",
- " action_size: int\n",
- " ):\n",
- " \"\"\"\n",
- " Performs an update of the Q-Network using the provided optimizer and buffer\n",
- " \"\"\"\n",
- " BATCH_SIZE = 1000\n",
- " NUM_EPOCH = 3\n",
- " GAMMA = 0.9\n",
- " batch_size = min(len(buffer), BATCH_SIZE)\n",
- " random.shuffle(buffer)\n",
- " # Split the buffer into batches\n",
- " batches = [\n",
- " buffer[batch_size * start : batch_size * (start + 1)]\n",
- " for start in range(int(len(buffer) / batch_size))\n",
- " ]\n",
- " for _ in range(NUM_EPOCH):\n",
- " for batch in batches:\n",
- " # Create the Tensors that will be fed in the network\n",
- " obs = torch.from_numpy(np.stack([ex.obs for ex in batch]))\n",
- " reward = torch.from_numpy(\n",
- " np.array([ex.reward for ex in batch], dtype=np.float32).reshape(-1, 1)\n",
- " )\n",
- " done = torch.from_numpy(\n",
- " np.array([ex.done for ex in batch], dtype=np.float32).reshape(-1, 1)\n",
- " )\n",
- " action = torch.from_numpy(np.stack([ex.action for ex in batch]))\n",
- " next_obs = torch.from_numpy(np.stack([ex.next_obs for ex in batch]))\n",
- "\n",
- " # Use the Bellman equation to update the Q-Network\n",
- " target = (\n",
- " reward\n",
- " + (1.0 - done)\n",
- " * GAMMA\n",
- " * torch.max(q_net(next_obs).detach(), dim=1, keepdim=True).values\n",
- " )\n",
- " mask = torch.zeros((len(batch), action_size))\n",
- " mask.scatter_(1, action, 1)\n",
- " prediction = torch.sum(qnet(obs) * mask, dim=1, keepdim=True)\n",
- " criterion = torch.nn.MSELoss()\n",
- " loss = criterion(prediction, target)\n",
- "\n",
- " # Perform the backpropagation\n",
- " optimizer.zero_grad()\n",
- " loss.backward()\n",
- " optimizer.step()\n"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "vcU4ZMAEWCvX"
- },
- "source": [
- "### Run Training"
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "_lIHijQfbYjh"
- },
- "source": [
- "# -----------------\n",
- "# This code is used to close an env that might not have been closed before\n",
- "try:\n",
- " env.close()\n",
- "except:\n",
- " pass\n",
- "# -----------------\n",
- "\n",
- "from mlagents_envs.registry import default_registry\n",
- "from mlagents_envs.environment import UnityEnvironment\n",
- "import matplotlib.pyplot as plt\n",
- "%matplotlib inline\n",
- "\n",
- "# Create the GridWorld Environment from the registry\n",
- "env = default_registry[\"GridWorld\"].make()\n",
- "print(\"GridWorld environment created.\")\n",
- "\n",
- "# Create a new Q-Network.\n",
- "qnet = VisualQNetwork((64, 84, 3), 126, 5)\n",
- "\n",
- "experiences: Buffer = []\n",
- "optim = torch.optim.Adam(qnet.parameters(), lr= 0.001)\n",
- "\n",
- "cumulative_rewards: List[float] = []\n",
- "\n",
- "# The number of training steps that will be performed\n",
- "NUM_TRAINING_STEPS = int(os.getenv('QLEARNING_NUM_TRAINING_STEPS', 70))\n",
- "# The number of experiences to collect per training step\n",
- "NUM_NEW_EXP = int(os.getenv('QLEARNING_NUM_NEW_EXP', 1000))\n",
- "# The maximum size of the Buffer\n",
- "BUFFER_SIZE = int(os.getenv('QLEARNING_BUFFER_SIZE', 10000))\n",
- "\n",
- "for n in range(NUM_TRAINING_STEPS):\n",
- " new_exp,_ = Trainer.generate_trajectories(env, qnet, NUM_NEW_EXP, epsilon=0.1)\n",
- " random.shuffle(experiences)\n",
- " if len(experiences) > BUFFER_SIZE:\n",
- " experiences = experiences[:BUFFER_SIZE]\n",
- " experiences.extend(new_exp)\n",
- " Trainer.update_q_net(qnet, optim, experiences, 5)\n",
- " _, rewards = Trainer.generate_trajectories(env, qnet, 100, epsilon=0)\n",
- " cumulative_rewards.append(rewards)\n",
- " print(\"Training step \", n+1, \"\\treward \", rewards)\n",
- "\n",
- "\n",
- "env.close()\n",
- "\n",
- "# Show the training graph\n",
- "plt.plot(range(NUM_TRAINING_STEPS), cumulative_rewards)\n"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "2ihb_gmYLUsH"
- },
- "source": [
- ""
- ],
- "execution_count": null,
- "outputs": []
- }
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "pbVXrmEsLXDt"
+ },
+ "source": [
+ "# ML-Agents Q-Learning with GridWorld\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "WNKTwHU3d2-l"
+ },
+ "source": [
+ "## Setup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "htb-p1hSNX7D"
+ },
+ "source": [
+ "#@title Install Rendering Dependencies { display-mode: \"form\" }\n",
+ "#@markdown (You only need to run this code when using Colab's hosted runtime)\n",
+ "\n",
+ "import os\n",
+ "from IPython.display import HTML, display\n",
+ "\n",
+ "def progress(value, max=100):\n",
+ " return HTML(\"\"\"\n",
+ " \n",
+ " \"\"\".format(value=value, max=max))\n",
+ "\n",
+ "pro_bar = display(progress(0, 100), display_id=True)\n",
+ "\n",
+ "try:\n",
+ " import google.colab\n",
+ " INSTALL_XVFB = True\n",
+ "except ImportError:\n",
+ " INSTALL_XVFB = 'COLAB_ALWAYS_INSTALL_XVFB' in os.environ\n",
+ "\n",
+ "if INSTALL_XVFB:\n",
+ " with open('frame-buffer', 'w') as writefile:\n",
+ " writefile.write(\"\"\"#taken from https://gist.github.com/jterrace/2911875\n",
+ "XVFB=/usr/bin/Xvfb\n",
+ "XVFBARGS=\":1 -screen 0 1024x768x24 -ac +extension GLX +render -noreset\"\n",
+ "PIDFILE=./frame-buffer.pid\n",
+ "case \"$1\" in\n",
+ " start)\n",
+ " echo -n \"Starting virtual X frame buffer: Xvfb\"\n",
+ " /sbin/start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS\n",
+ " echo \".\"\n",
+ " ;;\n",
+ " stop)\n",
+ " echo -n \"Stopping virtual X frame buffer: Xvfb\"\n",
+ " /sbin/start-stop-daemon --stop --quiet --pidfile $PIDFILE\n",
+ " rm $PIDFILE\n",
+ " echo \".\"\n",
+ " ;;\n",
+ " restart)\n",
+ " $0 stop\n",
+ " $0 start\n",
+ " ;;\n",
+ " *)\n",
+ " echo \"Usage: /etc/init.d/xvfb {start|stop|restart}\"\n",
+ " exit 1\n",
+ "esac\n",
+ "exit 0\n",
+ " \"\"\")\n",
+ " pro_bar.update(progress(5, 100))\n",
+ " !apt-get install daemon >/dev/null 2>&1\n",
+ " pro_bar.update(progress(10, 100))\n",
+ " !apt-get install wget >/dev/null 2>&1\n",
+ " pro_bar.update(progress(20, 100))\n",
+ " !wget http://security.ubuntu.com/ubuntu/pool/main/libx/libxfont/libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb >/dev/null 2>&1\n",
+ " pro_bar.update(progress(30, 100))\n",
+ " !wget --output-document xvfb.deb http://security.ubuntu.com/ubuntu/pool/universe/x/xorg-server/xvfb_1.18.4-0ubuntu0.12_amd64.deb >/dev/null 2>&1\n",
+ " pro_bar.update(progress(40, 100))\n",
+ " !dpkg -i libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb >/dev/null 2>&1\n",
+ " pro_bar.update(progress(50, 100))\n",
+ " !dpkg -i xvfb.deb >/dev/null 2>&1\n",
+ " pro_bar.update(progress(70, 100))\n",
+ " !rm libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb\n",
+ " pro_bar.update(progress(80, 100))\n",
+ " !rm xvfb.deb\n",
+ " pro_bar.update(progress(90, 100))\n",
+ " !bash frame-buffer start\n",
+ " os.environ[\"DISPLAY\"] = \":1\"\n",
+ "pro_bar.update(progress(100, 100))"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Pzj7wgapAcDs"
+ },
+ "source": [
+ "### Installing ml-agents"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "N8yfQqkbebQ5"
+ },
+ "source": [
+ "try:\n",
+ " import mlagents\n",
+ " print(\"ml-agents already installed\")\n",
+ "except ImportError:\n",
+ " !python -m pip install -q mlagents==0.27.0\n",
+ " print(\"Installed ml-agents\")"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "jz81TWAkbuFY"
+ },
+ "source": [
+ "## Train the GridWorld Environment with Q-Learning"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "29n3dt1Zx5ty"
+ },
+ "source": [
+ "### What is the GridWorld Environment"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "pZhVRfdoyPmv"
+ },
+ "source": [
+ "The [GridWorld](https://github.com/Unity-Technologies/ml-agents/blob/release_18_docs/docs/Learning-Environment-Examples.md#gridworld) Environment is a simple Unity visual environment. The Agent is a blue square in a 3x3 grid that is trying to reach a green __`+`__ while avoiding a red __`x`__.\n",
+ "\n",
+ "The observation is an image obtained by a camera on top of the grid.\n",
+ "\n",
+ "The Action can be one of 5 :\n",
+ " - Do not move\n",
+ " - Move up\n",
+ " - Move down\n",
+ " - Move right\n",
+ " - Move left\n",
+ "\n",
+ "The Agent receives a reward of _1.0_ if it reaches the green __`+`__, a penalty of _-1.0_ if it touches the red __`x`__ and a penalty of `-0.01` at every step (to force the Agent to solve the task as fast as possible)\n",
+ "\n",
+ "__Note__ There are 9 Agents, each in their own grid, at once in the environment. This alows for faster data collection.\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "4Gt-ZydJyJWD"
+ },
+ "source": [
+ "### The Q-Learning Algorithm\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "KA1qOgfq0Xdv"
+ },
+ "source": [
+ "In this Notebook, we will implement a very simple Q-Learning algorithm. We will use [pytorch](https://pytorch.org/) to do so.\n",
+ "\n",
+ "Below is the code to create the neural network we will use in the Notebook."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "q79rUp_Sx6A_"
+ },
+ "source": [
+ "import torch\n",
+ "from typing import Tuple\n",
+ "from math import floor\n",
+ "from torch.nn import Parameter\n",
+ "\n",
+ "\n",
+ "class VisualQNetwork(torch.nn.Module):\n",
+ " def __init__(\n",
+ " self,\n",
+ " input_shape: Tuple[int, int, int],\n",
+ " encoding_size: int,\n",
+ " output_size: int\n",
+ " ):\n",
+ " \"\"\"\n",
+ " Creates a neural network that takes as input a batch of images (3\n",
+ " dimensional tensors) and outputs a batch of outputs (1 dimensional\n",
+ " tensors)\n",
+ " \"\"\"\n",
+ " super(VisualQNetwork, self).__init__()\n",
+ " height = input_shape[1]\n",
+ " width = input_shape[2]\n",
+ " initial_channels = input_shape[0]\n",
+ " conv_1_hw = self.conv_output_shape((height, width), 8, 4)\n",
+ " conv_2_hw = self.conv_output_shape(conv_1_hw, 4, 2)\n",
+ " self.final_flat = conv_2_hw[0] * conv_2_hw[1] * 32\n",
+ " self.conv1 = torch.nn.Conv2d(initial_channels, 16, [8, 8], [4, 4])\n",
+ " self.conv2 = torch.nn.Conv2d(16, 32, [4, 4], [2, 2])\n",
+ " self.dense1 = torch.nn.Linear(self.final_flat, encoding_size)\n",
+ " self.dense2 = torch.nn.Linear(encoding_size, output_size)\n",
+ "\n",
+ " def forward(self, visual_obs: torch.tensor):\n",
+ " conv_1 = torch.relu(self.conv1(visual_obs))\n",
+ " conv_2 = torch.relu(self.conv2(conv_1))\n",
+ " hidden = self.dense1(conv_2.reshape([-1, self.final_flat]))\n",
+ " hidden = torch.relu(hidden)\n",
+ " hidden = self.dense2(hidden)\n",
+ " return hidden\n",
+ "\n",
+ " @staticmethod\n",
+ " def conv_output_shape(\n",
+ " h_w: Tuple[int, int],\n",
+ " kernel_size: int = 1,\n",
+ " stride: int = 1,\n",
+ " pad: int = 0,\n",
+ " dilation: int = 1,\n",
+ " ):\n",
+ " \"\"\"\n",
+ " Computes the height and width of the output of a convolution layer.\n",
+ " \"\"\"\n",
+ " h = floor(\n",
+ " ((h_w[0] + (2 * pad) - (dilation * (kernel_size - 1)) - 1) / stride) + 1\n",
+ " )\n",
+ " w = floor(\n",
+ " ((h_w[1] + (2 * pad) - (dilation * (kernel_size - 1)) - 1) / stride) + 1\n",
+ " )\n",
+ " return h, w\n"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EZoaEBAo2L0F"
+ },
+ "source": [
+ "We will now create a few classes to help us store the data we will use to train the Q-Learning algorithm."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "L772fe2q39DO"
+ },
+ "source": [
+ "import numpy as np\n",
+ "from typing import NamedTuple, List\n",
+ "\n",
+ "\n",
+ "class Experience(NamedTuple):\n",
+ " \"\"\"\n",
+ " An experience contains the data of one Agent transition.\n",
+ " - Observation\n",
+ " - Action\n",
+ " - Reward\n",
+ " - Done flag\n",
+ " - Next Observation\n",
+ " \"\"\"\n",
+ "\n",
+ " obs: np.ndarray\n",
+ " action: np.ndarray\n",
+ " reward: float\n",
+ " done: bool\n",
+ " next_obs: np.ndarray\n",
+ "\n",
+ "# A Trajectory is an ordered sequence of Experiences\n",
+ "Trajectory = List[Experience]\n",
+ "\n",
+ "# A Buffer is an unordered list of Experiences from multiple Trajectories\n",
+ "Buffer = List[Experience]"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "6HsM1d5I3_Tj"
+ },
+ "source": [
+ "Now, we can create our trainer class. The role of this trainer is to collect data from the Environment according to a Policy, and then train the Q-Network with that data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "KkzBoRJCb18t"
+ },
+ "source": [
+ "from mlagents_envs.environment import ActionTuple, BaseEnv\n",
+ "from typing import Dict\n",
+ "import random\n",
+ "\n",
+ "\n",
+ "class Trainer:\n",
+ " @staticmethod\n",
+ " def generate_trajectories(\n",
+ " env: BaseEnv, q_net: VisualQNetwork, buffer_size: int, epsilon: float\n",
+ " ):\n",
+ " \"\"\"\n",
+ " Given a Unity Environment and a Q-Network, this method will generate a\n",
+ " buffer of Experiences obtained by running the Environment with the Policy\n",
+ " derived from the Q-Network.\n",
+ " :param BaseEnv: The UnityEnvironment used.\n",
+ " :param q_net: The Q-Network used to collect the data.\n",
+ " :param buffer_size: The minimum size of the buffer this method will return.\n",
+ " :param epsilon: Will add a random normal variable with standard deviation.\n",
+ " epsilon to the value heads of the Q-Network to encourage exploration.\n",
+ " :returns: a Tuple containing the created buffer and the average cumulative\n",
+ " the Agents obtained.\n",
+ " \"\"\"\n",
+ " # Create an empty Buffer\n",
+ " buffer: Buffer = []\n",
+ "\n",
+ " # Reset the environment\n",
+ " env.reset()\n",
+ " # Read and store the Behavior Name of the Environment\n",
+ " behavior_name = list(env.behavior_specs)[0]\n",
+ " # Read and store the Behavior Specs of the Environment\n",
+ " spec = env.behavior_specs[behavior_name]\n",
+ "\n",
+ " # Create a Mapping from AgentId to Trajectories. This will help us create\n",
+ " # trajectories for each Agents\n",
+ " dict_trajectories_from_agent: Dict[int, Trajectory] = {}\n",
+ " # Create a Mapping from AgentId to the last observation of the Agent\n",
+ " dict_last_obs_from_agent: Dict[int, np.ndarray] = {}\n",
+ " # Create a Mapping from AgentId to the last observation of the Agent\n",
+ " dict_last_action_from_agent: Dict[int, np.ndarray] = {}\n",
+ " # Create a Mapping from AgentId to cumulative reward (Only for reporting)\n",
+ " dict_cumulative_reward_from_agent: Dict[int, float] = {}\n",
+ " # Create a list to store the cumulative rewards obtained so far\n",
+ " cumulative_rewards: List[float] = []\n",
+ "\n",
+ " while len(buffer) < buffer_size: # While not enough data in the buffer\n",
+ " # Get the Decision Steps and Terminal Steps of the Agents\n",
+ " decision_steps, terminal_steps = env.get_steps(behavior_name)\n",
+ "\n",
+ " # permute the tensor to go from NHWC to NCHW\n",
+ " order = (0, 3, 1, 2)\n",
+ " decision_steps.obs = [np.transpose(obs, order) for obs in decision_steps.obs]\n",
+ " terminal_steps.obs = [np.transpose(obs, order) for obs in terminal_steps.obs]\n",
+ "\n",
+ " # For all Agents with a Terminal Step:\n",
+ " for agent_id_terminated in terminal_steps:\n",
+ " # Create its last experience (is last because the Agent terminated)\n",
+ " last_experience = Experience(\n",
+ " obs=dict_last_obs_from_agent[agent_id_terminated].copy(),\n",
+ " reward=terminal_steps[agent_id_terminated].reward,\n",
+ " done=not terminal_steps[agent_id_terminated].interrupted,\n",
+ " action=dict_last_action_from_agent[agent_id_terminated].copy(),\n",
+ " next_obs=terminal_steps[agent_id_terminated].obs[0],\n",
+ " )\n",
+ " # Clear its last observation and action (Since the trajectory is over)\n",
+ " dict_last_obs_from_agent.pop(agent_id_terminated)\n",
+ " dict_last_action_from_agent.pop(agent_id_terminated)\n",
+ " # Report the cumulative reward\n",
+ " cumulative_reward = (\n",
+ " dict_cumulative_reward_from_agent.pop(agent_id_terminated)\n",
+ " + terminal_steps[agent_id_terminated].reward\n",
+ " )\n",
+ " cumulative_rewards.append(cumulative_reward)\n",
+ " # Add the Trajectory and the last experience to the buffer\n",
+ " buffer.extend(dict_trajectories_from_agent.pop(agent_id_terminated))\n",
+ " buffer.append(last_experience)\n",
+ "\n",
+ " # For all Agents with a Decision Step:\n",
+ " for agent_id_decisions in decision_steps:\n",
+ " # If the Agent does not have a Trajectory, create an empty one\n",
+ " if agent_id_decisions not in dict_trajectories_from_agent:\n",
+ " dict_trajectories_from_agent[agent_id_decisions] = []\n",
+ " dict_cumulative_reward_from_agent[agent_id_decisions] = 0\n",
+ "\n",
+ " # If the Agent requesting a decision has a \"last observation\"\n",
+ " if agent_id_decisions in dict_last_obs_from_agent:\n",
+ " # Create an Experience from the last observation and the Decision Step\n",
+ " exp = Experience(\n",
+ " obs=dict_last_obs_from_agent[agent_id_decisions].copy(),\n",
+ " reward=decision_steps[agent_id_decisions].reward,\n",
+ " done=False,\n",
+ " action=dict_last_action_from_agent[agent_id_decisions].copy(),\n",
+ " next_obs=decision_steps[agent_id_decisions].obs[0],\n",
+ " )\n",
+ " # Update the Trajectory of the Agent and its cumulative reward\n",
+ " dict_trajectories_from_agent[agent_id_decisions].append(exp)\n",
+ " dict_cumulative_reward_from_agent[agent_id_decisions] += (\n",
+ " decision_steps[agent_id_decisions].reward\n",
+ " )\n",
+ " # Store the observation as the new \"last observation\"\n",
+ " dict_last_obs_from_agent[agent_id_decisions] = (\n",
+ " decision_steps[agent_id_decisions].obs[0]\n",
+ " )\n",
+ "\n",
+ " # Generate an action for all the Agents that requested a decision\n",
+ " # Compute the values for each action given the observation\n",
+ " actions_values = (\n",
+ " q_net(torch.from_numpy(decision_steps.obs[0])).detach().numpy()\n",
+ " )\n",
+ " # Add some noise with epsilon to the values\n",
+ " actions_values += epsilon * (\n",
+ " np.random.randn(actions_values.shape[0], actions_values.shape[1])\n",
+ " ).astype(np.float32)\n",
+ " # Pick the best action using argmax\n",
+ " actions = np.argmax(actions_values, axis=1)\n",
+ " actions.resize((len(decision_steps), 1))\n",
+ " # Store the action that was picked, it will be put in the trajectory later\n",
+ " for agent_index, agent_id in enumerate(decision_steps.agent_id):\n",
+ " dict_last_action_from_agent[agent_id] = actions[agent_index]\n",
+ "\n",
+ " # Set the actions in the environment\n",
+ " # Unity Environments expect ActionTuple instances.\n",
+ " action_tuple = ActionTuple()\n",
+ " action_tuple.add_discrete(actions)\n",
+ " env.set_actions(behavior_name, action_tuple)\n",
+ " # Perform a step in the simulation\n",
+ " env.step()\n",
+ " return buffer, np.mean(cumulative_rewards)\n",
+ "\n",
+ " @staticmethod\n",
+ " def update_q_net(\n",
+ " q_net: VisualQNetwork,\n",
+ " optimizer: torch.optim,\n",
+ " buffer: Buffer,\n",
+ " action_size: int\n",
+ " ):\n",
+ " \"\"\"\n",
+ " Performs an update of the Q-Network using the provided optimizer and buffer\n",
+ " \"\"\"\n",
+ " BATCH_SIZE = 1000\n",
+ " NUM_EPOCH = 3\n",
+ " GAMMA = 0.9\n",
+ " batch_size = min(len(buffer), BATCH_SIZE)\n",
+ " random.shuffle(buffer)\n",
+ " # Split the buffer into batches\n",
+ " batches = [\n",
+ " buffer[batch_size * start : batch_size * (start + 1)]\n",
+ " for start in range(int(len(buffer) / batch_size))\n",
+ " ]\n",
+ " for _ in range(NUM_EPOCH):\n",
+ " for batch in batches:\n",
+ " # Create the Tensors that will be fed in the network\n",
+ " obs = torch.from_numpy(np.stack([ex.obs for ex in batch]))\n",
+ " reward = torch.from_numpy(\n",
+ " np.array([ex.reward for ex in batch], dtype=np.float32).reshape(-1, 1)\n",
+ " )\n",
+ " done = torch.from_numpy(\n",
+ " np.array([ex.done for ex in batch], dtype=np.float32).reshape(-1, 1)\n",
+ " )\n",
+ " action = torch.from_numpy(np.stack([ex.action for ex in batch]))\n",
+ " next_obs = torch.from_numpy(np.stack([ex.next_obs for ex in batch]))\n",
+ "\n",
+ " # Use the Bellman equation to update the Q-Network\n",
+ " target = (\n",
+ " reward\n",
+ " + (1.0 - done)\n",
+ " * GAMMA\n",
+ " * torch.max(q_net(next_obs).detach(), dim=1, keepdim=True).values\n",
+ " )\n",
+ " mask = torch.zeros((len(batch), action_size))\n",
+ " mask.scatter_(1, action, 1)\n",
+ " prediction = torch.sum(q_net(obs) * mask, dim=1, keepdim=True)\n",
+ " criterion = torch.nn.MSELoss()\n",
+ " loss = criterion(prediction, target)\n",
+ "\n",
+ " # Perform the backpropagation\n",
+ " optimizer.zero_grad()\n",
+ " loss.backward()\n",
+ " optimizer.step()\n"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "vcU4ZMAEWCvX"
+ },
+ "source": [
+ "### Run Training"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "_lIHijQfbYjh"
+ },
+ "source": [
+ "# -----------------\n",
+ "# This code is used to close an env that might not have been closed before\n",
+ "try:\n",
+ " env.close()\n",
+ "except:\n",
+ " pass\n",
+ "# -----------------\n",
+ "\n",
+ "from mlagents_envs.registry import default_registry\n",
+ "from mlagents_envs.environment import UnityEnvironment\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "# Create the GridWorld Environment from the registry\n",
+ "env = default_registry[\"GridWorld\"].make()\n",
+ "print(\"GridWorld environment created.\")\n",
+ "\n",
+ "num_actions = 5\n",
+ "\n",
+ "try:\n",
+ " # Create a new Q-Network.\n",
+ " qnet = VisualQNetwork((3, 64, 84), 126, num_actions)\n",
+ "\n",
+ " experiences: Buffer = []\n",
+ " optim = torch.optim.Adam(qnet.parameters(), lr= 0.001)\n",
+ "\n",
+ " cumulative_rewards: List[float] = []\n",
+ "\n",
+ " # The number of training steps that will be performed\n",
+ " NUM_TRAINING_STEPS = int(os.getenv('QLEARNING_NUM_TRAINING_STEPS', 70))\n",
+ " # The number of experiences to collect per training step\n",
+ " NUM_NEW_EXP = int(os.getenv('QLEARNING_NUM_NEW_EXP', 1000))\n",
+ " # The maximum size of the Buffer\n",
+ " BUFFER_SIZE = int(os.getenv('QLEARNING_BUFFER_SIZE', 10000))\n",
+ "\n",
+ " for n in range(NUM_TRAINING_STEPS):\n",
+ " new_exp,_ = Trainer.generate_trajectories(env, qnet, NUM_NEW_EXP, epsilon=0.1)\n",
+ " random.shuffle(experiences)\n",
+ " if len(experiences) > BUFFER_SIZE:\n",
+ " experiences = experiences[:BUFFER_SIZE]\n",
+ " experiences.extend(new_exp)\n",
+ " Trainer.update_q_net(qnet, optim, experiences, num_actions)\n",
+ " _, rewards = Trainer.generate_trajectories(env, qnet, 100, epsilon=0)\n",
+ " cumulative_rewards.append(rewards)\n",
+ " print(\"Training step \", n+1, \"\\treward \", rewards)\n",
+ "except KeyboardInterrupt:\n",
+ " print(\"\\nTraining interrupted, continue to next cell to save to save the model.\")\n",
+ "finally:\n",
+ " env.close()\n",
+ "\n",
+ "# Show the training graph\n",
+ "try:\n",
+ " plt.plot(range(NUM_TRAINING_STEPS), cumulative_rewards)\n",
+ "except ValueError:\n",
+ " print(\"\\nPlot failed on interrupted training.\")\n",
+ " "
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Export PyTorch Model to ONNX"
+ ],
+ "metadata": {
+ "id": "pFEP9JT5KuO-"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "The following cell provides an example of some of the extra tensors a model needs to work for ML-Agents inference with Barracuda. The GridWorldColab scene is configured to work with this ONNX file.\n",
+ "Only policy models need to be exported for inference and they need the following additional tensors: \n",
+ "\n",
+ "* All models need version_number\n",
+ "* All models need memory_size\n",
+ "* Models with continuous outputs need continuous_action_output_shape\n",
+ "* Models with discrete outputs need discrete_action_output_shape and an additional mask input that matches the shape of the discrete outputs\n",
+ "* The mask input must be connected to the outputs or it will be pruned on export, if mask values aren't being set they will be 1, so multiplying the discrete outputs by the mask will have no effect"
+ ],
+ "metadata": {
+ "id": "V0V7bH4mOnUF"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "class WrapperNet(torch.nn.Module):\n",
+ " def __init__(\n",
+ " self,\n",
+ " qnet: VisualQNetwork,\n",
+ " discrete_output_sizes: List[int],\n",
+ " ):\n",
+ " \"\"\"\n",
+ " Wraps the VisualQNetwork adding extra constants and dummy mask inputs\n",
+ " required by runtime inference with Barracuda. \n",
+ "\n",
+ " For environment continuous actions outputs would need to add them\n",
+ " similarly to how discrete action outputs work, both in the wrapper\n",
+ " and in the ONNX output_names / dynamic_axes.\n",
+ " \"\"\"\n",
+ " super(WrapperNet, self).__init__()\n",
+ " self.qnet = qnet\n",
+ "\n",
+ " # version_number\n",
+ " # MLAgents1_0 = 2 (not covered by this example)\n",
+ " # MLAgents2_0 = 3\n",
+ " version_number = torch.Tensor([3])\n",
+ " self.version_number = Parameter(version_number, requires_grad=False)\n",
+ "\n",
+ " # memory_size\n",
+ " # TODO: document case where memory is not zero.\n",
+ " memory_size = torch.Tensor([0])\n",
+ " self.memory_size = Parameter(memory_size, requires_grad=False)\n",
+ "\n",
+ " # discrete_action_output_shape\n",
+ " output_shape=torch.Tensor([discrete_output_sizes])\n",
+ " self.discrete_shape = Parameter(output_shape, requires_grad=False)\n",
+ "\n",
+ "\n",
+ " # if you have discrete actions ML-agents expects corresponding a mask\n",
+ " # tensor with the same shape to exist as input\n",
+ " def forward(self, visual_obs: torch.tensor, mask: torch.tensor):\n",
+ " qnet_result = self.qnet(visual_obs)\n",
+ " # Connect mask to keep it from getting pruned\n",
+ " # Mask values will be 1 if you never call SetActionMask() in\n",
+ " # WriteDiscreteActionMask() \n",
+ " qnet_result = torch.mul(qnet_result, mask)\n",
+ " action = torch.argmax(qnet_result, dim=1, keepdim=True)\n",
+ " return [action], self.discrete_shape, self.version_number, self.memory_size\n",
+ "\n",
+ "\n",
+ "torch.onnx.export(\n",
+ " WrapperNet(qnet, [num_actions]),\n",
+ " # A tuple with an example of the input tensors\n",
+ " (torch.tensor([experiences[0].obs]), torch.ones(1, num_actions)),\n",
+ " 'GridWorldColab.onnx',\n",
+ " opset_version=9,\n",
+ " # input_names must correspond to the WrapperNet forward parameters\n",
+ " # obs will be obs_0, obs_1, etc.\n",
+ " input_names=[\"obs_0\", \"action_masks\"],\n",
+ " # output_names must correspond to the return tuple of the WrapperNet\n",
+ " # forward function.\n",
+ " output_names=[\"discrete_actions\", \"discrete_action_output_shape\",\n",
+ " \"version_number\", \"memory_size\"],\n",
+ " # All inputs and outputs should have their 0th dimension be designated\n",
+ " # as 'batch'\n",
+ " dynamic_axes={'obs_0': {0: 'batch'},\n",
+ " 'action_masks': {0: 'batch'},\n",
+ " 'discrete_actions': {0: 'batch'},\n",
+ " 'discrete_action_output_shape': {0: 'batch'}\n",
+ " }\n",
+ " )"
+ ],
+ "metadata": {
+ "id": "T0zzg8fWpTYO"
+ },
+ "execution_count": null,
+ "outputs": []
+ }
+ ]
}
diff --git a/com.unity.ml-agents/CHANGELOG.md b/com.unity.ml-agents/CHANGELOG.md
index 158e6dde2d..88950d2d28 100755
--- a/com.unity.ml-agents/CHANGELOG.md
+++ b/com.unity.ml-agents/CHANGELOG.md
@@ -35,6 +35,7 @@ and this project adheres to
- Extra tensors are now serialized to support deterministic action selection in onnx. (#5593)
- Support inference with deterministic action selection in editor (#5599)
- Added minimal analytics collection to LL-API (#5511)
+- Update Colab notebooks for GridWorld example with DQN illustrating the use of the Python API and how to export to ONNX (#5643)
### Bug Fixes
#### com.unity.ml-agents / com.unity.ml-agents.extensions (C#)
diff --git a/docs/Training-ML-Agents.md b/docs/Training-ML-Agents.md
index f62402e766..b40277fa70 100644
--- a/docs/Training-ML-Agents.md
+++ b/docs/Training-ML-Agents.md
@@ -2,20 +2,27 @@
**Table of Contents**
-- [Training with mlagents-learn](#training-with-mlagents-learn)
- - [Starting Training](#starting-training)
- - [Observing Training](#observing-training)
- - [Stopping and Resuming Training](#stopping-and-resuming-training)
- - [Loading an Existing Model](#loading-an-existing-model)
-- [Training Configurations](#training-configurations)
- - [Behavior Configurations](#behavior-configurations)
- - [Environment Parameters](#environment-parameters)
- - [Environment Parameter Randomization](#environment-parameter-randomization)
- - [Supported Sampler Types](#supported-sampler-types)
- - [Training with Environment Parameter Randomization](#training-with-environment-parameter-randomization)
- - [Curriculum Learning](#curriculum)
- - [Training with a Curriculum](#training-with-a-curriculum)
- - [Training Using Concurrent Unity Instances](#training-using-concurrent-unity-instances)
+- [Training ML-Agents](#training-ml-agents)
+ - [Training with mlagents-learn](#training-with-mlagents-learn)
+ - [Starting Training](#starting-training)
+ - [Observing Training](#observing-training)
+ - [Stopping and Resuming Training](#stopping-and-resuming-training)
+ - [Loading an Existing Model](#loading-an-existing-model)
+ - [Training Configurations](#training-configurations)
+ - [Adding CLI Arguments to the Training Configuration file](#adding-cli-arguments-to-the-training-configuration-file)
+ - [Environment settings](#environment-settings)
+ - [Engine settings](#engine-settings)
+ - [Checkpoint settings](#checkpoint-settings)
+ - [Torch settings:](#torch-settings)
+ - [Behavior Configurations](#behavior-configurations)
+ - [Default Behavior Settings](#default-behavior-settings)
+ - [Environment Parameters](#environment-parameters)
+ - [Environment Parameter Randomization](#environment-parameter-randomization)
+ - [Supported Sampler Types](#supported-sampler-types)
+ - [Training with Environment Parameter Randomization](#training-with-environment-parameter-randomization)
+ - [Curriculum](#curriculum)
+ - [Training with a Curriculum](#training-with-a-curriculum)
+ - [Training Using Concurrent Unity Instances](#training-using-concurrent-unity-instances)
For a broad overview of reinforcement learning, imitation learning and all the
training scenarios, methods and options within the ML-Agents Toolkit, see
@@ -573,7 +580,7 @@ Each `Lesson` has 3 fields :
| **Setting** | **Description** |
| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `measure` | What to measure learning progress, and advancement in lessons by.
`reward` uses a measure received reward, while `progress` uses the ratio of steps/max_steps. |
+| `measure` | What to measure learning progress, and advancement in lessons by.
`reward` uses a measure of received reward, `progress` uses the ratio of steps/max_steps, while `Elo` is available only for self-play situations and uses Elo score as a curriculum completion measure. |
| `behavior` | Specifies which behavior is being tracked. There can be multiple behaviors with different names, each at different points of training. This setting allows the curriculum to track only one of them. |
| `threshold` | Determines at what point in value of `measure` the lesson should be increased. |
| `min_lesson_length` | The minimum number of episodes that should be completed before the lesson can change. If `measure` is set to `reward`, the average cumulative reward of the last `min_lesson_length` episodes will be used to determine if the lesson should change. Must be nonnegative.
**Important**: the average reward that is compared to the thresholds is different than the mean reward that is logged to the console. For example, if `min_lesson_length` is `100`, the lesson will increment after the average cumulative reward of the last `100` episodes exceeds the current threshold. The mean reward logged to the console is dictated by the `summary_freq` parameter defined above. |