├── Materials ├── cylinder_light.mat ├── cylinder_light.mat.meta ├── glowwalls.mat ├── glowwalls.mat.meta ├── red_cylinder.mat └── red_cylinder.mat.meta ├── Meshes ├── Court.fbx └── Court.fbx.meta ├── Prefabs ├── Agent.prefab ├── Agent.prefab.meta ├── Arena.prefab ├── Arena.prefab.meta ├── Sphere (1).prefab ├── Sphere (1).prefab.meta ├── Sphere.prefab └── Sphere.prefab.meta ├── README.md ├── Scenes ├── Transporters.meta ├── Transporters.unity ├── Transporters.unity.meta └── Transporters │ ├── LightingData.asset │ ├── LightingData.asset.meta │ ├── Lightmap-0_comp_dir.png │ ├── Lightmap-0_comp_dir.png.meta │ ├── Lightmap-0_comp_light.exr │ ├── Lightmap-0_comp_light.exr.meta │ ├── Lightmap-1_comp_dir.png │ ├── Lightmap-1_comp_dir.png.meta │ ├── Lightmap-1_comp_light.exr │ ├── Lightmap-1_comp_light.exr.meta │ ├── Lightmap-2_comp_dir.png │ ├── Lightmap-2_comp_dir.png.meta │ ├── Lightmap-2_comp_light.exr │ ├── Lightmap-2_comp_light.exr.meta │ ├── ReflectionProbe-0.exr │ └── ReflectionProbe-0.exr.meta ├── Scripts ├── Analyze_Specialization.ipynb ├── Analyze_transporter_output.m ├── Reformat_Observation_data.ipynb ├── Transporter_Arena.cs ├── Transporter_Arena.cs.meta ├── Transporter_agent.cs ├── Transporter_agent.cs.meta ├── camera_controller_MAT.cs.meta ├── modefreqchi2.R ├── trainer_config.yaml └── training_notes.txt └── TFModels ├── Transporter_behavior_1.nn ├── Transporter_behavior_1.nn.meta ├── Transporter_behavior_2.nn └── Transporter_behavior_2.nn.meta /Materials/cylinder_light.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: cylinder_light 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0.7830189, b: 0.08636237, a: 1} 77 | - _EmissionColor: {r: 0.047058824, g: 0.4862745, b: 0.047058824, a: 1} 78 | -------------------------------------------------------------------------------- /Materials/cylinder_light.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 002c47f35ad27114cb24fc021e2f7e0c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Materials/glowwalls.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: glowwalls 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.0540673, g: 0.084905684, b: 0.084024586, a: 1} 77 | - _EmissionColor: {r: 0.0071669333, g: 0.030260384, b: 0.093966454, a: 1} 78 | -------------------------------------------------------------------------------- /Materials/glowwalls.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 460397b888a965142b7da6c402c5ec66 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Materials/red_cylinder.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: red_cylinder 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _EMISSION 13 | m_LightmapFlags: 1 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.6037736, g: 0.054111768, b: 0.054111768, a: 1} 77 | - _EmissionColor: {r: 0.49332285, g: 0.030250942, b: 0.04678916, a: 1} 78 | -------------------------------------------------------------------------------- /Materials/red_cylinder.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 339b60d0a4ba25f4b857bbb927c0decb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Meshes/Court.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Meshes/Court.fbx -------------------------------------------------------------------------------- /Meshes/Court.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3db1fa1072807a4ea03f5489c26e250 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: GoalArea 7 | 100002: Ground 8 | 100004: //RootNode 9 | 100006: WallsOuter 10 | 400000: GoalArea 11 | 400002: Ground 12 | 400004: //RootNode 13 | 400006: WallsOuter 14 | 2100000: rep_WhiteWalls 15 | 2100002: rep_Floor 16 | 2100004: rep_Checkers 17 | 2300000: GoalArea 18 | 2300002: Ground 19 | 2300004: WallsOuter 20 | 3300000: GoalArea 21 | 3300002: Ground 22 | 3300004: WallsOuter 23 | 4300000: WallsOuter 24 | 4300002: Ground 25 | 4300004: GoalArea 26 | externalObjects: 27 | - first: 28 | type: UnityEngine:Material 29 | assembly: UnityEngine.CoreModule 30 | name: rep_Checkers 31 | second: {fileID: 2100000, guid: 36c7baa347d68f347a9aa9698aa1bcdd, type: 2} 32 | - first: 33 | type: UnityEngine:Material 34 | assembly: UnityEngine.CoreModule 35 | name: rep_Floor 36 | second: {fileID: 2100000, guid: bc723809e6ff3174fad3e774cae1aed0, type: 2} 37 | - first: 38 | type: UnityEngine:Material 39 | assembly: UnityEngine.CoreModule 40 | name: rep_WhiteWalls 41 | second: {fileID: 2100000, guid: 6a39c0407dd85684384bf0277294e9b6, type: 2} 42 | materials: 43 | importMaterials: 1 44 | materialName: 0 45 | materialSearch: 1 46 | materialLocation: 1 47 | animations: 48 | legacyGenerateAnimations: 4 49 | bakeSimulation: 0 50 | resampleCurves: 1 51 | optimizeGameObjects: 0 52 | motionNodeName: 53 | rigImportErrors: 54 | rigImportWarnings: 55 | animationImportErrors: 56 | animationImportWarnings: 57 | animationRetargetingWarnings: 58 | animationDoRetargetingWarnings: 0 59 | importAnimatedCustomProperties: 0 60 | importConstraints: 0 61 | animationCompression: 1 62 | animationRotationError: 0.5 63 | animationPositionError: 0.5 64 | animationScaleError: 0.5 65 | animationWrapMode: 0 66 | extraExposedTransformPaths: [] 67 | extraUserProperties: [] 68 | clipAnimations: [] 69 | isReadable: 1 70 | meshes: 71 | lODScreenPercentages: [] 72 | globalScale: 1 73 | meshCompression: 0 74 | addColliders: 0 75 | useSRGBMaterialColor: 1 76 | importVisibility: 1 77 | importBlendShapes: 1 78 | importCameras: 1 79 | importLights: 1 80 | swapUVChannels: 0 81 | generateSecondaryUV: 1 82 | useFileUnits: 1 83 | optimizeMeshForGPU: 1 84 | keepQuads: 0 85 | weldVertices: 1 86 | preserveHierarchy: 0 87 | indexFormat: 0 88 | secondaryUVAngleDistortion: 8 89 | secondaryUVAreaDistortion: 15.000001 90 | secondaryUVHardAngle: 88 91 | secondaryUVPackMargin: 4 92 | useFileScale: 1 93 | previousCalculatedGlobalScale: 1 94 | hasPreviousCalculatedGlobalScale: 0 95 | tangentSpace: 96 | normalSmoothAngle: 60 97 | normalImportMode: 0 98 | tangentImportMode: 3 99 | normalCalculationMode: 4 100 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1 101 | blendShapeNormalImportMode: 1 102 | normalSmoothingSource: 0 103 | importAnimation: 1 104 | copyAvatar: 0 105 | humanDescription: 106 | serializedVersion: 2 107 | human: [] 108 | skeleton: [] 109 | armTwist: 0.5 110 | foreArmTwist: 0.5 111 | upperLegTwist: 0.5 112 | legTwist: 0.5 113 | armStretch: 0.05 114 | legStretch: 0.05 115 | feetSpacing: 0 116 | rootMotionBoneName: 117 | hasTranslationDoF: 0 118 | hasExtraRoot: 0 119 | skeletonHasParents: 1 120 | lastHumanDescriptionAvatarSource: {instanceID: 0} 121 | animationType: 0 122 | humanoidOversampling: 1 123 | additionalBone: 0 124 | userData: 125 | assetBundleName: 126 | assetBundleVariant: 127 | -------------------------------------------------------------------------------- /Prefabs/Agent.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &101377387023044827 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 3134697347161375854} 12 | - component: {fileID: 4544228898517800426} 13 | - component: {fileID: 8389227137874781685} 14 | m_Layer: 0 15 | m_Name: Cube 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &3134697347161375854 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 101377387023044827} 28 | m_LocalRotation: {x: -0, y: -0.30792555, z: -0, w: 0.9514104} 29 | m_LocalPosition: {x: -0.293, y: 0.505, z: 0.364} 30 | m_LocalScale: {x: 0.2143536, y: 0.33225256, z: 0.17499872} 31 | m_Children: [] 32 | m_Father: {fileID: 3397899325613547956} 33 | m_RootOrder: 1 34 | m_LocalEulerAnglesHint: {x: 0, y: -35.869003, z: 0} 35 | --- !u!33 &4544228898517800426 36 | MeshFilter: 37 | m_ObjectHideFlags: 0 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInstance: {fileID: 0} 40 | m_PrefabAsset: {fileID: 0} 41 | m_GameObject: {fileID: 101377387023044827} 42 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 43 | --- !u!23 &8389227137874781685 44 | MeshRenderer: 45 | m_ObjectHideFlags: 0 46 | m_CorrespondingSourceObject: {fileID: 0} 47 | m_PrefabInstance: {fileID: 0} 48 | m_PrefabAsset: {fileID: 0} 49 | m_GameObject: {fileID: 101377387023044827} 50 | m_Enabled: 1 51 | m_CastShadows: 1 52 | m_ReceiveShadows: 1 53 | m_DynamicOccludee: 1 54 | m_MotionVectors: 1 55 | m_LightProbeUsage: 1 56 | m_ReflectionProbeUsage: 1 57 | m_RayTracingMode: 2 58 | m_RenderingLayerMask: 1 59 | m_RendererPriority: 0 60 | m_Materials: 61 | - {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2} 62 | m_StaticBatchInfo: 63 | firstSubMesh: 0 64 | subMeshCount: 0 65 | m_StaticBatchRoot: {fileID: 0} 66 | m_ProbeAnchor: {fileID: 0} 67 | m_LightProbeVolumeOverride: {fileID: 0} 68 | m_ScaleInLightmap: 1 69 | m_ReceiveGI: 1 70 | m_PreserveUVs: 0 71 | m_IgnoreNormalsForChartDetection: 0 72 | m_ImportantGI: 0 73 | m_StitchLightmapSeams: 1 74 | m_SelectedEditorRenderState: 3 75 | m_MinimumChartSize: 4 76 | m_AutoUVMaxDistance: 0.5 77 | m_AutoUVMaxAngle: 89 78 | m_LightmapParameters: {fileID: 0} 79 | m_SortingLayerID: 0 80 | m_SortingLayer: 0 81 | m_SortingOrder: 0 82 | --- !u!1 &3397899325613547954 83 | GameObject: 84 | m_ObjectHideFlags: 0 85 | m_CorrespondingSourceObject: {fileID: 0} 86 | m_PrefabInstance: {fileID: 0} 87 | m_PrefabAsset: {fileID: 0} 88 | serializedVersion: 6 89 | m_Component: 90 | - component: {fileID: 3397899325613547956} 91 | - component: {fileID: 3397899325613547957} 92 | - component: {fileID: 3397899325613547958} 93 | - component: {fileID: 3397899325613547952} 94 | - component: {fileID: 3397899325613547953} 95 | - component: {fileID: 3397899325613547978} 96 | - component: {fileID: 3397899325613547979} 97 | - component: {fileID: 3397899325613547977} 98 | - component: {fileID: 3397899325613547976} 99 | - component: {fileID: 7829189118973858816} 100 | - component: {fileID: 2343436093487775180} 101 | m_Layer: 0 102 | m_Name: Agent 103 | m_TagString: agent 104 | m_Icon: {fileID: 0} 105 | m_NavMeshLayer: 0 106 | m_StaticEditorFlags: 0 107 | m_IsActive: 1 108 | --- !u!4 &3397899325613547956 109 | Transform: 110 | m_ObjectHideFlags: 0 111 | m_CorrespondingSourceObject: {fileID: 0} 112 | m_PrefabInstance: {fileID: 0} 113 | m_PrefabAsset: {fileID: 0} 114 | m_GameObject: {fileID: 3397899325613547954} 115 | m_LocalRotation: {x: -0, y: 0.112064436, z: -0, w: 0.993701} 116 | m_LocalPosition: {x: 0, y: 0.35, z: 0} 117 | m_LocalScale: {x: 0.45802647, y: 0.36633268, z: 0.47288844} 118 | m_Children: 119 | - {fileID: 520014365767289015} 120 | - {fileID: 3134697347161375854} 121 | - {fileID: 7591012642396508349} 122 | m_Father: {fileID: 0} 123 | m_RootOrder: 0 124 | m_LocalEulerAnglesHint: {x: 0, y: 12.869, z: 0} 125 | --- !u!33 &3397899325613547957 126 | MeshFilter: 127 | m_ObjectHideFlags: 0 128 | m_CorrespondingSourceObject: {fileID: 0} 129 | m_PrefabInstance: {fileID: 0} 130 | m_PrefabAsset: {fileID: 0} 131 | m_GameObject: {fileID: 3397899325613547954} 132 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 133 | --- !u!23 &3397899325613547958 134 | MeshRenderer: 135 | m_ObjectHideFlags: 0 136 | m_CorrespondingSourceObject: {fileID: 0} 137 | m_PrefabInstance: {fileID: 0} 138 | m_PrefabAsset: {fileID: 0} 139 | m_GameObject: {fileID: 3397899325613547954} 140 | m_Enabled: 1 141 | m_CastShadows: 1 142 | m_ReceiveShadows: 1 143 | m_DynamicOccludee: 1 144 | m_MotionVectors: 1 145 | m_LightProbeUsage: 1 146 | m_ReflectionProbeUsage: 1 147 | m_RayTracingMode: 2 148 | m_RenderingLayerMask: 1 149 | m_RendererPriority: 0 150 | m_Materials: 151 | - {fileID: 2100000, guid: 52eab8ab5010f438fab93da85735ba1d, type: 2} 152 | m_StaticBatchInfo: 153 | firstSubMesh: 0 154 | subMeshCount: 0 155 | m_StaticBatchRoot: {fileID: 0} 156 | m_ProbeAnchor: {fileID: 0} 157 | m_LightProbeVolumeOverride: {fileID: 0} 158 | m_ScaleInLightmap: 1 159 | m_ReceiveGI: 1 160 | m_PreserveUVs: 0 161 | m_IgnoreNormalsForChartDetection: 0 162 | m_ImportantGI: 0 163 | m_StitchLightmapSeams: 1 164 | m_SelectedEditorRenderState: 3 165 | m_MinimumChartSize: 4 166 | m_AutoUVMaxDistance: 0.5 167 | m_AutoUVMaxAngle: 89 168 | m_LightmapParameters: {fileID: 0} 169 | m_SortingLayerID: 0 170 | m_SortingLayer: 0 171 | m_SortingOrder: 0 172 | --- !u!114 &3397899325613547952 173 | MonoBehaviour: 174 | m_ObjectHideFlags: 0 175 | m_CorrespondingSourceObject: {fileID: 0} 176 | m_PrefabInstance: {fileID: 0} 177 | m_PrefabAsset: {fileID: 0} 178 | m_GameObject: {fileID: 3397899325613547954} 179 | m_Enabled: 1 180 | m_EditorHideFlags: 0 181 | m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} 182 | m_Name: 183 | m_EditorClassIdentifier: 184 | m_BrainParameters: 185 | vectorObservationSize: 12 186 | numStackedVectorObservations: 1 187 | vectorActionSize: 0200000003000000 188 | vectorActionDescriptions: [] 189 | vectorActionSpaceType: 0 190 | m_Model: {fileID: 11400000, guid: 31c27fed551b7e54786a4b80af1e36eb, type: 3} 191 | m_InferenceDevice: 0 192 | m_BehaviorType: 0 193 | m_BehaviorName: Transporter_behavior_2 194 | TeamId: 0 195 | m_UseChildSensors: 1 196 | --- !u!54 &3397899325613547953 197 | Rigidbody: 198 | m_ObjectHideFlags: 0 199 | m_CorrespondingSourceObject: {fileID: 0} 200 | m_PrefabInstance: {fileID: 0} 201 | m_PrefabAsset: {fileID: 0} 202 | m_GameObject: {fileID: 3397899325613547954} 203 | serializedVersion: 2 204 | m_Mass: 10 205 | m_Drag: 0 206 | m_AngularDrag: 0.2 207 | m_UseGravity: 1 208 | m_IsKinematic: 0 209 | m_Interpolate: 0 210 | m_Constraints: 84 211 | m_CollisionDetection: 0 212 | --- !u!114 &3397899325613547978 213 | MonoBehaviour: 214 | m_ObjectHideFlags: 0 215 | m_CorrespondingSourceObject: {fileID: 0} 216 | m_PrefabInstance: {fileID: 0} 217 | m_PrefabAsset: {fileID: 0} 218 | m_GameObject: {fileID: 3397899325613547954} 219 | m_Enabled: 1 220 | m_EditorHideFlags: 0 221 | m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3} 222 | m_Name: 223 | m_EditorClassIdentifier: 224 | m_SensorName: LowerRaycast 225 | m_DetectableTags: 226 | - agent 227 | - spawn_box 228 | - sink_box 229 | m_RaysPerDirection: 3 230 | m_MaxRayDegrees: 80 231 | m_SphereCastRadius: 1.6 232 | m_RayLength: 30 233 | m_RayLayerMask: 234 | serializedVersion: 2 235 | m_Bits: 4294967291 236 | m_ObservationStacks: 1 237 | rayHitColor: {r: 1, g: 0, b: 0, a: 1} 238 | rayMissColor: {r: 1, g: 1, b: 1, a: 1} 239 | m_StartVerticalOffset: -0.9 240 | m_EndVerticalOffset: -0.9 241 | --- !u!114 &3397899325613547979 242 | MonoBehaviour: 243 | m_ObjectHideFlags: 0 244 | m_CorrespondingSourceObject: {fileID: 0} 245 | m_PrefabInstance: {fileID: 0} 246 | m_PrefabAsset: {fileID: 0} 247 | m_GameObject: {fileID: 3397899325613547954} 248 | m_Enabled: 1 249 | m_EditorHideFlags: 0 250 | m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3} 251 | m_Name: 252 | m_EditorClassIdentifier: 253 | m_SensorName: UpperRaycast 254 | m_DetectableTags: 255 | - Sphere 256 | - Sphere1 257 | - wall 258 | m_RaysPerDirection: 3 259 | m_MaxRayDegrees: 80 260 | m_SphereCastRadius: 1.6 261 | m_RayLength: 30 262 | m_RayLayerMask: 263 | serializedVersion: 2 264 | m_Bits: 4294967291 265 | m_ObservationStacks: 1 266 | rayHitColor: {r: 1, g: 0, b: 0, a: 1} 267 | rayMissColor: {r: 1, g: 1, b: 1, a: 1} 268 | m_StartVerticalOffset: 3 269 | m_EndVerticalOffset: 3 270 | --- !u!114 &3397899325613547977 271 | MonoBehaviour: 272 | m_ObjectHideFlags: 0 273 | m_CorrespondingSourceObject: {fileID: 0} 274 | m_PrefabInstance: {fileID: 0} 275 | m_PrefabAsset: {fileID: 0} 276 | m_GameObject: {fileID: 3397899325613547954} 277 | m_Enabled: 1 278 | m_EditorHideFlags: 0 279 | m_Script: {fileID: 11500000, guid: 81f89b1f2f584f146bd1f372578f2890, type: 3} 280 | m_Name: 281 | m_EditorClassIdentifier: 282 | agentParameters: 283 | maxStep: 0 284 | hasUpgradedFromAgentParameters: 1 285 | maxStep: 3000 286 | RotationRate: 250 287 | speed: 20 288 | ID: 0 289 | Sphere: {fileID: 2234621092686004936, guid: b944975c4abd8314e88abf459caf1cc7, type: 3} 290 | Sphere1: {fileID: 7760933995656093545, guid: 34589815e9b1cbf488a3e94b822abe1c, type: 3} 291 | item_carried: 0 292 | has_passed: 0 293 | has_received: 0 294 | --- !u!114 &3397899325613547976 295 | MonoBehaviour: 296 | m_ObjectHideFlags: 0 297 | m_CorrespondingSourceObject: {fileID: 0} 298 | m_PrefabInstance: {fileID: 0} 299 | m_PrefabAsset: {fileID: 0} 300 | m_GameObject: {fileID: 3397899325613547954} 301 | m_Enabled: 1 302 | m_EditorHideFlags: 0 303 | m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} 304 | m_Name: 305 | m_EditorClassIdentifier: 306 | DecisionPeriod: 5 307 | TakeActionsBetweenDecisions: 1 308 | offsetStep: 0 309 | --- !u!136 &7829189118973858816 310 | CapsuleCollider: 311 | m_ObjectHideFlags: 0 312 | m_CorrespondingSourceObject: {fileID: 0} 313 | m_PrefabInstance: {fileID: 0} 314 | m_PrefabAsset: {fileID: 0} 315 | m_GameObject: {fileID: 3397899325613547954} 316 | m_Material: {fileID: 0} 317 | m_IsTrigger: 0 318 | m_Enabled: 0 319 | m_Radius: 0.94990003 320 | m_Height: 2.452398 321 | m_Direction: 1 322 | m_Center: {x: -3.6371274e-11, y: 0, z: -0.0035917435} 323 | --- !u!65 &2343436093487775180 324 | BoxCollider: 325 | m_ObjectHideFlags: 0 326 | m_CorrespondingSourceObject: {fileID: 0} 327 | m_PrefabInstance: {fileID: 0} 328 | m_PrefabAsset: {fileID: 0} 329 | m_GameObject: {fileID: 3397899325613547954} 330 | m_Material: {fileID: 0} 331 | m_IsTrigger: 0 332 | m_Enabled: 1 333 | serializedVersion: 2 334 | m_Size: {x: 1.4147424, y: 2, z: 1.4594833} 335 | m_Center: {x: -0.018378023, y: 0, z: 0.012677483} 336 | --- !u!1 &3946473830434934244 337 | GameObject: 338 | m_ObjectHideFlags: 0 339 | m_CorrespondingSourceObject: {fileID: 0} 340 | m_PrefabInstance: {fileID: 0} 341 | m_PrefabAsset: {fileID: 0} 342 | serializedVersion: 6 343 | m_Component: 344 | - component: {fileID: 520014365767289015} 345 | - component: {fileID: 7959948417187792622} 346 | - component: {fileID: 5787336843955951615} 347 | m_Layer: 0 348 | m_Name: Sphere 349 | m_TagString: Untagged 350 | m_Icon: {fileID: 0} 351 | m_NavMeshLayer: 0 352 | m_StaticEditorFlags: 0 353 | m_IsActive: 1 354 | --- !u!4 &520014365767289015 355 | Transform: 356 | m_ObjectHideFlags: 0 357 | m_CorrespondingSourceObject: {fileID: 0} 358 | m_PrefabInstance: {fileID: 0} 359 | m_PrefabAsset: {fileID: 0} 360 | m_GameObject: {fileID: 3946473830434934244} 361 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 362 | m_LocalPosition: {x: 0, y: 0.28, z: 0.19} 363 | m_LocalScale: {x: 0.37555182, y: 0.5901675, z: 2.0359778} 364 | m_Children: [] 365 | m_Father: {fileID: 3397899325613547956} 366 | m_RootOrder: 0 367 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 368 | --- !u!33 &7959948417187792622 369 | MeshFilter: 370 | m_ObjectHideFlags: 0 371 | m_CorrespondingSourceObject: {fileID: 0} 372 | m_PrefabInstance: {fileID: 0} 373 | m_PrefabAsset: {fileID: 0} 374 | m_GameObject: {fileID: 3946473830434934244} 375 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 376 | --- !u!23 &5787336843955951615 377 | MeshRenderer: 378 | m_ObjectHideFlags: 0 379 | m_CorrespondingSourceObject: {fileID: 0} 380 | m_PrefabInstance: {fileID: 0} 381 | m_PrefabAsset: {fileID: 0} 382 | m_GameObject: {fileID: 3946473830434934244} 383 | m_Enabled: 1 384 | m_CastShadows: 1 385 | m_ReceiveShadows: 1 386 | m_DynamicOccludee: 1 387 | m_MotionVectors: 1 388 | m_LightProbeUsage: 1 389 | m_ReflectionProbeUsage: 1 390 | m_RayTracingMode: 2 391 | m_RenderingLayerMask: 1 392 | m_RendererPriority: 0 393 | m_Materials: 394 | - {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2} 395 | m_StaticBatchInfo: 396 | firstSubMesh: 0 397 | subMeshCount: 0 398 | m_StaticBatchRoot: {fileID: 0} 399 | m_ProbeAnchor: {fileID: 0} 400 | m_LightProbeVolumeOverride: {fileID: 0} 401 | m_ScaleInLightmap: 1 402 | m_ReceiveGI: 1 403 | m_PreserveUVs: 0 404 | m_IgnoreNormalsForChartDetection: 0 405 | m_ImportantGI: 0 406 | m_StitchLightmapSeams: 1 407 | m_SelectedEditorRenderState: 3 408 | m_MinimumChartSize: 4 409 | m_AutoUVMaxDistance: 0.5 410 | m_AutoUVMaxAngle: 89 411 | m_LightmapParameters: {fileID: 0} 412 | m_SortingLayerID: 0 413 | m_SortingLayer: 0 414 | m_SortingOrder: 0 415 | --- !u!1 &8193288440754562483 416 | GameObject: 417 | m_ObjectHideFlags: 0 418 | m_CorrespondingSourceObject: {fileID: 0} 419 | m_PrefabInstance: {fileID: 0} 420 | m_PrefabAsset: {fileID: 0} 421 | serializedVersion: 6 422 | m_Component: 423 | - component: {fileID: 7591012642396508349} 424 | - component: {fileID: 5849885238873309386} 425 | - component: {fileID: 6602859240844950606} 426 | m_Layer: 0 427 | m_Name: Cube (1) 428 | m_TagString: Untagged 429 | m_Icon: {fileID: 0} 430 | m_NavMeshLayer: 0 431 | m_StaticEditorFlags: 0 432 | m_IsActive: 1 433 | --- !u!4 &7591012642396508349 434 | Transform: 435 | m_ObjectHideFlags: 0 436 | m_CorrespondingSourceObject: {fileID: 0} 437 | m_PrefabInstance: {fileID: 0} 438 | m_PrefabAsset: {fileID: 0} 439 | m_GameObject: {fileID: 8193288440754562483} 440 | m_LocalRotation: {x: -0, y: -0.43520555, z: -0, w: 0.90033114} 441 | m_LocalPosition: {x: 0.277, y: 0.505, z: 0.358} 442 | m_LocalScale: {x: 0.17499872, y: 0.26562762, z: 0.17499872} 443 | m_Children: [] 444 | m_Father: {fileID: 3397899325613547956} 445 | m_RootOrder: 2 446 | m_LocalEulerAnglesHint: {x: 0, y: -51.597004, z: 0} 447 | --- !u!33 &5849885238873309386 448 | MeshFilter: 449 | m_ObjectHideFlags: 0 450 | m_CorrespondingSourceObject: {fileID: 0} 451 | m_PrefabInstance: {fileID: 0} 452 | m_PrefabAsset: {fileID: 0} 453 | m_GameObject: {fileID: 8193288440754562483} 454 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 455 | --- !u!23 &6602859240844950606 456 | MeshRenderer: 457 | m_ObjectHideFlags: 0 458 | m_CorrespondingSourceObject: {fileID: 0} 459 | m_PrefabInstance: {fileID: 0} 460 | m_PrefabAsset: {fileID: 0} 461 | m_GameObject: {fileID: 8193288440754562483} 462 | m_Enabled: 1 463 | m_CastShadows: 1 464 | m_ReceiveShadows: 1 465 | m_DynamicOccludee: 1 466 | m_MotionVectors: 1 467 | m_LightProbeUsage: 1 468 | m_ReflectionProbeUsage: 1 469 | m_RayTracingMode: 2 470 | m_RenderingLayerMask: 1 471 | m_RendererPriority: 0 472 | m_Materials: 473 | - {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2} 474 | m_StaticBatchInfo: 475 | firstSubMesh: 0 476 | subMeshCount: 0 477 | m_StaticBatchRoot: {fileID: 0} 478 | m_ProbeAnchor: {fileID: 0} 479 | m_LightProbeVolumeOverride: {fileID: 0} 480 | m_ScaleInLightmap: 1 481 | m_ReceiveGI: 1 482 | m_PreserveUVs: 0 483 | m_IgnoreNormalsForChartDetection: 0 484 | m_ImportantGI: 0 485 | m_StitchLightmapSeams: 1 486 | m_SelectedEditorRenderState: 3 487 | m_MinimumChartSize: 4 488 | m_AutoUVMaxDistance: 0.5 489 | m_AutoUVMaxAngle: 89 490 | m_LightmapParameters: {fileID: 0} 491 | m_SortingLayerID: 0 492 | m_SortingLayer: 0 493 | m_SortingOrder: 0 494 | -------------------------------------------------------------------------------- /Prefabs/Agent.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e784427ae3417ad4c9097c1c9d4b7d35 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Prefabs/Arena.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1125452240183160 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 4006990431719496} 12 | m_Layer: 0 13 | m_Name: Arena 14 | m_TagString: Untagged 15 | m_Icon: {fileID: 0} 16 | m_NavMeshLayer: 0 17 | m_StaticEditorFlags: 0 18 | m_IsActive: 1 19 | --- !u!4 &4006990431719496 20 | Transform: 21 | m_ObjectHideFlags: 0 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInstance: {fileID: 0} 24 | m_PrefabAsset: {fileID: 0} 25 | m_GameObject: {fileID: 1125452240183160} 26 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 27 | m_LocalPosition: {x: 0, y: -0.49509, z: 0} 28 | m_LocalScale: {x: 2.9804, y: 2.9804, z: 2.9804} 29 | m_Children: 30 | - {fileID: 4643236529171504} 31 | - {fileID: 4662886693952972} 32 | m_Father: {fileID: 0} 33 | m_RootOrder: 0 34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 35 | --- !u!1 &1500989011945850 36 | GameObject: 37 | m_ObjectHideFlags: 0 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInstance: {fileID: 0} 40 | m_PrefabAsset: {fileID: 0} 41 | serializedVersion: 6 42 | m_Component: 43 | - component: {fileID: 4643236529171504} 44 | - component: {fileID: 33737551691836984} 45 | - component: {fileID: 23549423015434358} 46 | - component: {fileID: 65513349759460256} 47 | m_Layer: 0 48 | m_Name: Ground 49 | m_TagString: ground 50 | m_Icon: {fileID: 0} 51 | m_NavMeshLayer: 0 52 | m_StaticEditorFlags: 0 53 | m_IsActive: 1 54 | --- !u!4 &4643236529171504 55 | Transform: 56 | m_ObjectHideFlags: 0 57 | m_CorrespondingSourceObject: {fileID: 0} 58 | m_PrefabInstance: {fileID: 0} 59 | m_PrefabAsset: {fileID: 0} 60 | m_GameObject: {fileID: 1500989011945850} 61 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 62 | m_LocalPosition: {x: -0, y: 0, z: -0.00000030517577} 63 | m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} 64 | m_Children: [] 65 | m_Father: {fileID: 4006990431719496} 66 | m_RootOrder: 0 67 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 68 | --- !u!33 &33737551691836984 69 | MeshFilter: 70 | m_ObjectHideFlags: 0 71 | m_CorrespondingSourceObject: {fileID: 0} 72 | m_PrefabInstance: {fileID: 0} 73 | m_PrefabAsset: {fileID: 0} 74 | m_GameObject: {fileID: 1500989011945850} 75 | m_Mesh: {fileID: 4300002, guid: c639386c12f5f7841892163a199dfacc, type: 3} 76 | --- !u!23 &23549423015434358 77 | MeshRenderer: 78 | m_ObjectHideFlags: 0 79 | m_CorrespondingSourceObject: {fileID: 0} 80 | m_PrefabInstance: {fileID: 0} 81 | m_PrefabAsset: {fileID: 0} 82 | m_GameObject: {fileID: 1500989011945850} 83 | m_Enabled: 1 84 | m_CastShadows: 1 85 | m_ReceiveShadows: 1 86 | m_DynamicOccludee: 1 87 | m_MotionVectors: 1 88 | m_LightProbeUsage: 1 89 | m_ReflectionProbeUsage: 1 90 | m_RayTracingMode: 2 91 | m_RenderingLayerMask: 1 92 | m_RendererPriority: 0 93 | m_Materials: 94 | - {fileID: 2100000, guid: acba6bf2a290a496bb8989b42bf8698d, type: 2} 95 | m_StaticBatchInfo: 96 | firstSubMesh: 0 97 | subMeshCount: 0 98 | m_StaticBatchRoot: {fileID: 0} 99 | m_ProbeAnchor: {fileID: 0} 100 | m_LightProbeVolumeOverride: {fileID: 0} 101 | m_ScaleInLightmap: 1 102 | m_ReceiveGI: 1 103 | m_PreserveUVs: 0 104 | m_IgnoreNormalsForChartDetection: 0 105 | m_ImportantGI: 0 106 | m_StitchLightmapSeams: 0 107 | m_SelectedEditorRenderState: 3 108 | m_MinimumChartSize: 4 109 | m_AutoUVMaxDistance: 0.5 110 | m_AutoUVMaxAngle: 89 111 | m_LightmapParameters: {fileID: 0} 112 | m_SortingLayerID: 0 113 | m_SortingLayer: 0 114 | m_SortingOrder: 0 115 | --- !u!65 &65513349759460256 116 | BoxCollider: 117 | m_ObjectHideFlags: 0 118 | m_CorrespondingSourceObject: {fileID: 0} 119 | m_PrefabInstance: {fileID: 0} 120 | m_PrefabAsset: {fileID: 0} 121 | m_GameObject: {fileID: 1500989011945850} 122 | m_Material: {fileID: 0} 123 | m_IsTrigger: 0 124 | m_Enabled: 1 125 | serializedVersion: 2 126 | m_Size: {x: 2500, y: 100, z: 2500} 127 | m_Center: {x: 0, y: -50, z: 0} 128 | --- !u!1 &1948183181472910 129 | GameObject: 130 | m_ObjectHideFlags: 0 131 | m_CorrespondingSourceObject: {fileID: 0} 132 | m_PrefabInstance: {fileID: 0} 133 | m_PrefabAsset: {fileID: 0} 134 | serializedVersion: 6 135 | m_Component: 136 | - component: {fileID: 4662886693952972} 137 | - component: {fileID: 33923598962272346} 138 | - component: {fileID: 23386727129662884} 139 | - component: {fileID: 65537431973827738} 140 | - component: {fileID: 65603921567931242} 141 | - component: {fileID: 65701990377179520} 142 | - component: {fileID: 65220627410631168} 143 | m_Layer: 0 144 | m_Name: WallsOuter 145 | m_TagString: wall 146 | m_Icon: {fileID: 0} 147 | m_NavMeshLayer: 0 148 | m_StaticEditorFlags: 0 149 | m_IsActive: 1 150 | --- !u!4 &4662886693952972 151 | Transform: 152 | m_ObjectHideFlags: 0 153 | m_CorrespondingSourceObject: {fileID: 0} 154 | m_PrefabInstance: {fileID: 0} 155 | m_PrefabAsset: {fileID: 0} 156 | m_GameObject: {fileID: 1948183181472910} 157 | m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} 158 | m_LocalPosition: {x: -0, y: 0, z: 0} 159 | m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} 160 | m_Children: [] 161 | m_Father: {fileID: 4006990431719496} 162 | m_RootOrder: 1 163 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 164 | --- !u!33 &33923598962272346 165 | MeshFilter: 166 | m_ObjectHideFlags: 0 167 | m_CorrespondingSourceObject: {fileID: 0} 168 | m_PrefabInstance: {fileID: 0} 169 | m_PrefabAsset: {fileID: 0} 170 | m_GameObject: {fileID: 1948183181472910} 171 | m_Mesh: {fileID: 4300000, guid: c639386c12f5f7841892163a199dfacc, type: 3} 172 | --- !u!23 &23386727129662884 173 | MeshRenderer: 174 | m_ObjectHideFlags: 0 175 | m_CorrespondingSourceObject: {fileID: 0} 176 | m_PrefabInstance: {fileID: 0} 177 | m_PrefabAsset: {fileID: 0} 178 | m_GameObject: {fileID: 1948183181472910} 179 | m_Enabled: 1 180 | m_CastShadows: 1 181 | m_ReceiveShadows: 1 182 | m_DynamicOccludee: 1 183 | m_MotionVectors: 1 184 | m_LightProbeUsage: 1 185 | m_ReflectionProbeUsage: 1 186 | m_RayTracingMode: 2 187 | m_RenderingLayerMask: 1 188 | m_RendererPriority: 0 189 | m_Materials: 190 | - {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} 191 | m_StaticBatchInfo: 192 | firstSubMesh: 0 193 | subMeshCount: 0 194 | m_StaticBatchRoot: {fileID: 0} 195 | m_ProbeAnchor: {fileID: 0} 196 | m_LightProbeVolumeOverride: {fileID: 0} 197 | m_ScaleInLightmap: 1 198 | m_ReceiveGI: 1 199 | m_PreserveUVs: 0 200 | m_IgnoreNormalsForChartDetection: 0 201 | m_ImportantGI: 0 202 | m_StitchLightmapSeams: 0 203 | m_SelectedEditorRenderState: 3 204 | m_MinimumChartSize: 4 205 | m_AutoUVMaxDistance: 0.5 206 | m_AutoUVMaxAngle: 89 207 | m_LightmapParameters: {fileID: 0} 208 | m_SortingLayerID: 0 209 | m_SortingLayer: 0 210 | m_SortingOrder: 0 211 | --- !u!65 &65537431973827738 212 | BoxCollider: 213 | m_ObjectHideFlags: 0 214 | m_CorrespondingSourceObject: {fileID: 0} 215 | m_PrefabInstance: {fileID: 0} 216 | m_PrefabAsset: {fileID: 0} 217 | m_GameObject: {fileID: 1948183181472910} 218 | m_Material: {fileID: 0} 219 | m_IsTrigger: 0 220 | m_Enabled: 1 221 | serializedVersion: 2 222 | m_Size: {x: 50, y: 200, z: 2600} 223 | m_Center: {x: -1275, y: 50, z: 0} 224 | --- !u!65 &65603921567931242 225 | BoxCollider: 226 | m_ObjectHideFlags: 0 227 | m_CorrespondingSourceObject: {fileID: 0} 228 | m_PrefabInstance: {fileID: 0} 229 | m_PrefabAsset: {fileID: 0} 230 | m_GameObject: {fileID: 1948183181472910} 231 | m_Material: {fileID: 0} 232 | m_IsTrigger: 0 233 | m_Enabled: 1 234 | serializedVersion: 2 235 | m_Size: {x: 50, y: 200, z: 2600} 236 | m_Center: {x: 1275, y: 50, z: 0} 237 | --- !u!65 &65701990377179520 238 | BoxCollider: 239 | m_ObjectHideFlags: 0 240 | m_CorrespondingSourceObject: {fileID: 0} 241 | m_PrefabInstance: {fileID: 0} 242 | m_PrefabAsset: {fileID: 0} 243 | m_GameObject: {fileID: 1948183181472910} 244 | m_Material: {fileID: 0} 245 | m_IsTrigger: 0 246 | m_Enabled: 1 247 | serializedVersion: 2 248 | m_Size: {x: 2500, y: 200, z: 50} 249 | m_Center: {x: 0, y: 50, z: -1275} 250 | --- !u!65 &65220627410631168 251 | BoxCollider: 252 | m_ObjectHideFlags: 0 253 | m_CorrespondingSourceObject: {fileID: 0} 254 | m_PrefabInstance: {fileID: 0} 255 | m_PrefabAsset: {fileID: 0} 256 | m_GameObject: {fileID: 1948183181472910} 257 | m_Material: {fileID: 0} 258 | m_IsTrigger: 0 259 | m_Enabled: 1 260 | serializedVersion: 2 261 | m_Size: {x: 2500, y: 200, z: 50} 262 | m_Center: {x: 0, y: 50, z: 1275} 263 | -------------------------------------------------------------------------------- /Prefabs/Arena.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 094477becb5c66d478f920b68fdde50a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Prefabs/Sphere (1).prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &7760933995656093545 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 4051444448144858066} 12 | - component: {fileID: 6780477101767882114} 13 | - component: {fileID: 1602196379167065472} 14 | - component: {fileID: 3322472924749073569} 15 | m_Layer: 0 16 | m_Name: Sphere (1) 17 | m_TagString: Sphere1 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &4051444448144858066 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 7760933995656093545} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: 0, y: 0, z: 0} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!33 &6780477101767882114 37 | MeshFilter: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 7760933995656093545} 43 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 44 | --- !u!23 &1602196379167065472 45 | MeshRenderer: 46 | m_ObjectHideFlags: 0 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInstance: {fileID: 0} 49 | m_PrefabAsset: {fileID: 0} 50 | m_GameObject: {fileID: 7760933995656093545} 51 | m_Enabled: 1 52 | m_CastShadows: 1 53 | m_ReceiveShadows: 1 54 | m_DynamicOccludee: 1 55 | m_MotionVectors: 1 56 | m_LightProbeUsage: 1 57 | m_ReflectionProbeUsage: 1 58 | m_RayTracingMode: 2 59 | m_RenderingLayerMask: 1 60 | m_RendererPriority: 0 61 | m_Materials: 62 | - {fileID: 2100000, guid: 339b60d0a4ba25f4b857bbb927c0decb, type: 2} 63 | m_StaticBatchInfo: 64 | firstSubMesh: 0 65 | subMeshCount: 0 66 | m_StaticBatchRoot: {fileID: 0} 67 | m_ProbeAnchor: {fileID: 0} 68 | m_LightProbeVolumeOverride: {fileID: 0} 69 | m_ScaleInLightmap: 1 70 | m_ReceiveGI: 1 71 | m_PreserveUVs: 0 72 | m_IgnoreNormalsForChartDetection: 0 73 | m_ImportantGI: 0 74 | m_StitchLightmapSeams: 1 75 | m_SelectedEditorRenderState: 3 76 | m_MinimumChartSize: 4 77 | m_AutoUVMaxDistance: 0.5 78 | m_AutoUVMaxAngle: 89 79 | m_LightmapParameters: {fileID: 0} 80 | m_SortingLayerID: 0 81 | m_SortingLayer: 0 82 | m_SortingOrder: 0 83 | --- !u!135 &3322472924749073569 84 | SphereCollider: 85 | m_ObjectHideFlags: 0 86 | m_CorrespondingSourceObject: {fileID: 0} 87 | m_PrefabInstance: {fileID: 0} 88 | m_PrefabAsset: {fileID: 0} 89 | m_GameObject: {fileID: 7760933995656093545} 90 | m_Material: {fileID: 0} 91 | m_IsTrigger: 0 92 | m_Enabled: 1 93 | serializedVersion: 2 94 | m_Radius: 0.5 95 | m_Center: {x: 0, y: 0, z: 0} 96 | -------------------------------------------------------------------------------- /Prefabs/Sphere (1).prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34589815e9b1cbf488a3e94b822abe1c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Prefabs/Sphere.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &2234621092686004936 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 6372158834234499087} 12 | - component: {fileID: 6818547113156026919} 13 | - component: {fileID: 616440146407172682} 14 | - component: {fileID: 6042801965093730073} 15 | m_Layer: 0 16 | m_Name: Sphere 17 | m_TagString: Sphere 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &6372158834234499087 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 2234621092686004936} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: 0, y: 0, z: 0} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!33 &6818547113156026919 37 | MeshFilter: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 2234621092686004936} 43 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 44 | --- !u!23 &616440146407172682 45 | MeshRenderer: 46 | m_ObjectHideFlags: 0 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInstance: {fileID: 0} 49 | m_PrefabAsset: {fileID: 0} 50 | m_GameObject: {fileID: 2234621092686004936} 51 | m_Enabled: 1 52 | m_CastShadows: 1 53 | m_ReceiveShadows: 1 54 | m_DynamicOccludee: 1 55 | m_MotionVectors: 1 56 | m_LightProbeUsage: 1 57 | m_ReflectionProbeUsage: 1 58 | m_RayTracingMode: 2 59 | m_RenderingLayerMask: 1 60 | m_RendererPriority: 0 61 | m_Materials: 62 | - {fileID: 2100000, guid: 002c47f35ad27114cb24fc021e2f7e0c, type: 2} 63 | m_StaticBatchInfo: 64 | firstSubMesh: 0 65 | subMeshCount: 0 66 | m_StaticBatchRoot: {fileID: 0} 67 | m_ProbeAnchor: {fileID: 0} 68 | m_LightProbeVolumeOverride: {fileID: 0} 69 | m_ScaleInLightmap: 1 70 | m_ReceiveGI: 1 71 | m_PreserveUVs: 0 72 | m_IgnoreNormalsForChartDetection: 0 73 | m_ImportantGI: 0 74 | m_StitchLightmapSeams: 1 75 | m_SelectedEditorRenderState: 3 76 | m_MinimumChartSize: 4 77 | m_AutoUVMaxDistance: 0.5 78 | m_AutoUVMaxAngle: 89 79 | m_LightmapParameters: {fileID: 0} 80 | m_SortingLayerID: 0 81 | m_SortingLayer: 0 82 | m_SortingOrder: 0 83 | --- !u!135 &6042801965093730073 84 | SphereCollider: 85 | m_ObjectHideFlags: 0 86 | m_CorrespondingSourceObject: {fileID: 0} 87 | m_PrefabInstance: {fileID: 0} 88 | m_PrefabAsset: {fileID: 0} 89 | m_GameObject: {fileID: 2234621092686004936} 90 | m_Material: {fileID: 0} 91 | m_IsTrigger: 0 92 | m_Enabled: 1 93 | serializedVersion: 2 94 | m_Radius: 0.5 95 | m_Center: {x: 0, y: 0, z: 0} 96 | -------------------------------------------------------------------------------- /Prefabs/Sphere.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b944975c4abd8314e88abf459caf1cc7 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Multi-Agent-Transporters 2 | Training Agents in a cooperative multi-agent deep reinforcement learning setting to transport objects across a space 3 | 4 | A detailed description of this project can be found here. 5 | [https://m-lin-dm.github.io/Transporters/](https://m-lin-dm.github.io/Transporters/) 6 | 7 | Youtube video presenting my results: 8 | [https://www.youtube.com/watch?v=Gv-8X6tNPNw](https://www.youtube.com/watch?v=Gv-8X6tNPNw) 9 | -------------------------------------------------------------------------------- /Scenes/Transporters.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2cdebc5c5f10ce4fbb37ecd4c157866 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scenes/Transporters.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 0.87 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 2100000, guid: 4067de1a02072244798361060c5e7325, type: 2} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 32 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0.54441315, g: 0.50701135, b: 0.52427095, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 2.03 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 50 60 | m_AtlasSize: 64 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, 68 | type: 0} 69 | m_LightmapsBakeMode: 1 70 | m_TextureCompression: 1 71 | m_FinalGather: 0 72 | m_FinalGatherFiltering: 1 73 | m_FinalGatherRayCount: 256 74 | m_ReflectionCompression: 2 75 | m_MixedBakeMode: 2 76 | m_BakeBackend: 1 77 | m_PVRSampling: 1 78 | m_PVRDirectSampleCount: 32 79 | m_PVRSampleCount: 512 80 | m_PVRBounces: 2 81 | m_PVREnvironmentSampleCount: 512 82 | m_PVREnvironmentReferencePointCount: 2048 83 | m_PVRFilteringMode: 0 84 | m_PVRDenoiserTypeDirect: 0 85 | m_PVRDenoiserTypeIndirect: 0 86 | m_PVRDenoiserTypeAO: 0 87 | m_PVRFilterTypeDirect: 0 88 | m_PVRFilterTypeIndirect: 0 89 | m_PVRFilterTypeAO: 0 90 | m_PVREnvironmentMIS: 0 91 | m_PVRCulling: 1 92 | m_PVRFilteringGaussRadiusDirect: 1 93 | m_PVRFilteringGaussRadiusIndirect: 5 94 | m_PVRFilteringGaussRadiusAO: 2 95 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 96 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 97 | m_PVRFilteringAtrousPositionSigmaAO: 1 98 | m_ExportTrainingData: 0 99 | m_TrainingDataDestination: TrainingData 100 | m_LightProbeSampleCountMultiplier: 4 101 | m_LightingDataAsset: {fileID: 112000000, guid: b71bf92534619ce49ab4c35664419051, 102 | type: 2} 103 | m_UseShadowmask: 1 104 | --- !u!196 &4 105 | NavMeshSettings: 106 | serializedVersion: 2 107 | m_ObjectHideFlags: 0 108 | m_BuildSettings: 109 | serializedVersion: 2 110 | agentTypeID: 0 111 | agentRadius: 0.5 112 | agentHeight: 2 113 | agentSlope: 45 114 | agentClimb: 0.4 115 | ledgeDropHeight: 0 116 | maxJumpAcrossDistance: 0 117 | minRegionArea: 2 118 | manualCellSize: 0 119 | cellSize: 0.16666667 120 | manualTileSize: 0 121 | tileSize: 256 122 | accuratePlacement: 0 123 | debug: 124 | m_Flags: 0 125 | m_NavMeshData: {fileID: 0} 126 | --- !u!1001 &177603581 127 | PrefabInstance: 128 | m_ObjectHideFlags: 0 129 | serializedVersion: 2 130 | m_Modification: 131 | m_TransformParent: {fileID: 1187565614} 132 | m_Modifications: 133 | - target: {fileID: 3397899325613547952, guid: e784427ae3417ad4c9097c1c9d4b7d35, 134 | type: 3} 135 | propertyPath: m_Model 136 | value: 137 | objectReference: {fileID: 11400000, guid: 31c27fed551b7e54786a4b80af1e36eb, 138 | type: 3} 139 | - target: {fileID: 3397899325613547952, guid: e784427ae3417ad4c9097c1c9d4b7d35, 140 | type: 3} 141 | propertyPath: m_BrainParameters.vectorObservationSize 142 | value: 12 143 | objectReference: {fileID: 0} 144 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 145 | type: 3} 146 | propertyPath: m_Name 147 | value: Agent (1) 148 | objectReference: {fileID: 0} 149 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 150 | type: 3} 151 | propertyPath: m_LocalPosition.x 152 | value: 2.22 153 | objectReference: {fileID: 0} 154 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 155 | type: 3} 156 | propertyPath: m_LocalPosition.y 157 | value: 0.35 158 | objectReference: {fileID: 0} 159 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 160 | type: 3} 161 | propertyPath: m_LocalPosition.z 162 | value: 1.39 163 | objectReference: {fileID: 0} 164 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 165 | type: 3} 166 | propertyPath: m_LocalRotation.x 167 | value: -0 168 | objectReference: {fileID: 0} 169 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 170 | type: 3} 171 | propertyPath: m_LocalRotation.y 172 | value: 0.112064436 173 | objectReference: {fileID: 0} 174 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 175 | type: 3} 176 | propertyPath: m_LocalRotation.z 177 | value: -0 178 | objectReference: {fileID: 0} 179 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 180 | type: 3} 181 | propertyPath: m_LocalRotation.w 182 | value: 0.993701 183 | objectReference: {fileID: 0} 184 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 185 | type: 3} 186 | propertyPath: m_RootOrder 187 | value: 6 188 | objectReference: {fileID: 0} 189 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 190 | type: 3} 191 | propertyPath: m_LocalEulerAnglesHint.x 192 | value: 0 193 | objectReference: {fileID: 0} 194 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 195 | type: 3} 196 | propertyPath: m_LocalEulerAnglesHint.y 197 | value: 12.869 198 | objectReference: {fileID: 0} 199 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 200 | type: 3} 201 | propertyPath: m_LocalEulerAnglesHint.z 202 | value: 0 203 | objectReference: {fileID: 0} 204 | - target: {fileID: 3397899325613547977, guid: e784427ae3417ad4c9097c1c9d4b7d35, 205 | type: 3} 206 | propertyPath: RotationRate 207 | value: 250 208 | objectReference: {fileID: 0} 209 | - target: {fileID: 3397899325613547977, guid: e784427ae3417ad4c9097c1c9d4b7d35, 210 | type: 3} 211 | propertyPath: ID 212 | value: 1 213 | objectReference: {fileID: 0} 214 | m_RemovedComponents: [] 215 | m_SourcePrefab: {fileID: 100100000, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 216 | --- !u!1 &225198474 217 | GameObject: 218 | m_ObjectHideFlags: 0 219 | m_CorrespondingSourceObject: {fileID: 0} 220 | m_PrefabInstance: {fileID: 0} 221 | m_PrefabAsset: {fileID: 0} 222 | serializedVersion: 6 223 | m_Component: 224 | - component: {fileID: 225198478} 225 | - component: {fileID: 225198477} 226 | - component: {fileID: 225198476} 227 | - component: {fileID: 225198475} 228 | m_Layer: 0 229 | m_Name: Cylinder (0) 230 | m_TagString: spawn_box 231 | m_Icon: {fileID: 0} 232 | m_NavMeshLayer: 0 233 | m_StaticEditorFlags: 4294967295 234 | m_IsActive: 1 235 | --- !u!136 &225198475 236 | CapsuleCollider: 237 | m_ObjectHideFlags: 0 238 | m_CorrespondingSourceObject: {fileID: 0} 239 | m_PrefabInstance: {fileID: 0} 240 | m_PrefabAsset: {fileID: 0} 241 | m_GameObject: {fileID: 225198474} 242 | m_Material: {fileID: 0} 243 | m_IsTrigger: 0 244 | m_Enabled: 1 245 | m_Radius: 0.5000001 246 | m_Height: 4.0510397 247 | m_Direction: 1 248 | m_Center: {x: 0.000000040795545, y: 0.008880602, z: -0.00000008159109} 249 | --- !u!23 &225198476 250 | MeshRenderer: 251 | m_ObjectHideFlags: 0 252 | m_CorrespondingSourceObject: {fileID: 0} 253 | m_PrefabInstance: {fileID: 0} 254 | m_PrefabAsset: {fileID: 0} 255 | m_GameObject: {fileID: 225198474} 256 | m_Enabled: 1 257 | m_CastShadows: 1 258 | m_ReceiveShadows: 1 259 | m_DynamicOccludee: 1 260 | m_MotionVectors: 1 261 | m_LightProbeUsage: 1 262 | m_ReflectionProbeUsage: 1 263 | m_RayTracingMode: 2 264 | m_RenderingLayerMask: 1 265 | m_RendererPriority: 0 266 | m_Materials: 267 | - {fileID: 2100000, guid: 002c47f35ad27114cb24fc021e2f7e0c, type: 2} 268 | m_StaticBatchInfo: 269 | firstSubMesh: 0 270 | subMeshCount: 0 271 | m_StaticBatchRoot: {fileID: 0} 272 | m_ProbeAnchor: {fileID: 0} 273 | m_LightProbeVolumeOverride: {fileID: 0} 274 | m_ScaleInLightmap: 1 275 | m_ReceiveGI: 1 276 | m_PreserveUVs: 0 277 | m_IgnoreNormalsForChartDetection: 0 278 | m_ImportantGI: 0 279 | m_StitchLightmapSeams: 1 280 | m_SelectedEditorRenderState: 3 281 | m_MinimumChartSize: 4 282 | m_AutoUVMaxDistance: 0.5 283 | m_AutoUVMaxAngle: 89 284 | m_LightmapParameters: {fileID: 0} 285 | m_SortingLayerID: 0 286 | m_SortingLayer: 0 287 | m_SortingOrder: 0 288 | --- !u!33 &225198477 289 | MeshFilter: 290 | m_ObjectHideFlags: 0 291 | m_CorrespondingSourceObject: {fileID: 0} 292 | m_PrefabInstance: {fileID: 0} 293 | m_PrefabAsset: {fileID: 0} 294 | m_GameObject: {fileID: 225198474} 295 | m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} 296 | --- !u!4 &225198478 297 | Transform: 298 | m_ObjectHideFlags: 0 299 | m_CorrespondingSourceObject: {fileID: 0} 300 | m_PrefabInstance: {fileID: 0} 301 | m_PrefabAsset: {fileID: 0} 302 | m_GameObject: {fileID: 225198474} 303 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 304 | m_LocalPosition: {x: -8.34, y: 1.59, z: -0.39} 305 | m_LocalScale: {x: 2.7077901, y: 1.7555023, z: 2.7077901} 306 | m_Children: [] 307 | m_Father: {fileID: 1187565614} 308 | m_RootOrder: 2 309 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 310 | --- !u!1 &332035334 311 | GameObject: 312 | m_ObjectHideFlags: 0 313 | m_CorrespondingSourceObject: {fileID: 0} 314 | m_PrefabInstance: {fileID: 0} 315 | m_PrefabAsset: {fileID: 0} 316 | serializedVersion: 6 317 | m_Component: 318 | - component: {fileID: 332035335} 319 | - component: {fileID: 332035338} 320 | - component: {fileID: 332035337} 321 | - component: {fileID: 332035336} 322 | m_Layer: 0 323 | m_Name: Cylinder (1) 324 | m_TagString: sink_box 325 | m_Icon: {fileID: 0} 326 | m_NavMeshLayer: 0 327 | m_StaticEditorFlags: 0 328 | m_IsActive: 1 329 | --- !u!4 &332035335 330 | Transform: 331 | m_ObjectHideFlags: 0 332 | m_CorrespondingSourceObject: {fileID: 0} 333 | m_PrefabInstance: {fileID: 0} 334 | m_PrefabAsset: {fileID: 0} 335 | m_GameObject: {fileID: 332035334} 336 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 337 | m_LocalPosition: {x: 8.54, y: 2.46, z: -0.4} 338 | m_LocalScale: {x: 3.0014997, y: 2.794903, z: 3.0014997} 339 | m_Children: [] 340 | m_Father: {fileID: 1187565614} 341 | m_RootOrder: 3 342 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 343 | --- !u!136 &332035336 344 | CapsuleCollider: 345 | m_ObjectHideFlags: 0 346 | m_CorrespondingSourceObject: {fileID: 0} 347 | m_PrefabInstance: {fileID: 0} 348 | m_PrefabAsset: {fileID: 0} 349 | m_GameObject: {fileID: 332035334} 350 | m_Material: {fileID: 0} 351 | m_IsTrigger: 0 352 | m_Enabled: 1 353 | m_Radius: 0.5000001 354 | m_Height: 4.080217 355 | m_Direction: 1 356 | m_Center: {x: 0.000000040795545, y: 0.0007922858, z: -0.00000008159109} 357 | --- !u!23 &332035337 358 | MeshRenderer: 359 | m_ObjectHideFlags: 0 360 | m_CorrespondingSourceObject: {fileID: 0} 361 | m_PrefabInstance: {fileID: 0} 362 | m_PrefabAsset: {fileID: 0} 363 | m_GameObject: {fileID: 332035334} 364 | m_Enabled: 1 365 | m_CastShadows: 1 366 | m_ReceiveShadows: 0 367 | m_DynamicOccludee: 1 368 | m_MotionVectors: 1 369 | m_LightProbeUsage: 1 370 | m_ReflectionProbeUsage: 1 371 | m_RayTracingMode: 2 372 | m_RenderingLayerMask: 1 373 | m_RendererPriority: 0 374 | m_Materials: 375 | - {fileID: 2100000, guid: 339b60d0a4ba25f4b857bbb927c0decb, type: 2} 376 | m_StaticBatchInfo: 377 | firstSubMesh: 0 378 | subMeshCount: 0 379 | m_StaticBatchRoot: {fileID: 0} 380 | m_ProbeAnchor: {fileID: 0} 381 | m_LightProbeVolumeOverride: {fileID: 0} 382 | m_ScaleInLightmap: 1 383 | m_ReceiveGI: 1 384 | m_PreserveUVs: 0 385 | m_IgnoreNormalsForChartDetection: 0 386 | m_ImportantGI: 0 387 | m_StitchLightmapSeams: 1 388 | m_SelectedEditorRenderState: 3 389 | m_MinimumChartSize: 4 390 | m_AutoUVMaxDistance: 0.5 391 | m_AutoUVMaxAngle: 89 392 | m_LightmapParameters: {fileID: 0} 393 | m_SortingLayerID: 0 394 | m_SortingLayer: 0 395 | m_SortingOrder: 0 396 | --- !u!33 &332035338 397 | MeshFilter: 398 | m_ObjectHideFlags: 0 399 | m_CorrespondingSourceObject: {fileID: 0} 400 | m_PrefabInstance: {fileID: 0} 401 | m_PrefabAsset: {fileID: 0} 402 | m_GameObject: {fileID: 332035334} 403 | m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} 404 | --- !u!1001 &470274353 405 | PrefabInstance: 406 | m_ObjectHideFlags: 0 407 | serializedVersion: 2 408 | m_Modification: 409 | m_TransformParent: {fileID: 1187565614} 410 | m_Modifications: 411 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 412 | type: 3} 413 | propertyPath: m_Name 414 | value: Agent 415 | objectReference: {fileID: 0} 416 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 417 | type: 3} 418 | propertyPath: m_LocalPosition.x 419 | value: -2.71 420 | objectReference: {fileID: 0} 421 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 422 | type: 3} 423 | propertyPath: m_LocalPosition.y 424 | value: 0.35 425 | objectReference: {fileID: 0} 426 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 427 | type: 3} 428 | propertyPath: m_LocalPosition.z 429 | value: 1.23 430 | objectReference: {fileID: 0} 431 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 432 | type: 3} 433 | propertyPath: m_LocalRotation.x 434 | value: -0 435 | objectReference: {fileID: 0} 436 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 437 | type: 3} 438 | propertyPath: m_LocalRotation.y 439 | value: 0.112064436 440 | objectReference: {fileID: 0} 441 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 442 | type: 3} 443 | propertyPath: m_LocalRotation.z 444 | value: -0 445 | objectReference: {fileID: 0} 446 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 447 | type: 3} 448 | propertyPath: m_LocalRotation.w 449 | value: 0.993701 450 | objectReference: {fileID: 0} 451 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 452 | type: 3} 453 | propertyPath: m_RootOrder 454 | value: 7 455 | objectReference: {fileID: 0} 456 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 457 | type: 3} 458 | propertyPath: m_LocalEulerAnglesHint.x 459 | value: 0 460 | objectReference: {fileID: 0} 461 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 462 | type: 3} 463 | propertyPath: m_LocalEulerAnglesHint.y 464 | value: 12.869 465 | objectReference: {fileID: 0} 466 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 467 | type: 3} 468 | propertyPath: m_LocalEulerAnglesHint.z 469 | value: 0 470 | objectReference: {fileID: 0} 471 | m_RemovedComponents: [] 472 | m_SourcePrefab: {fileID: 100100000, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 473 | --- !u!1 &586033313 474 | GameObject: 475 | m_ObjectHideFlags: 0 476 | m_CorrespondingSourceObject: {fileID: 0} 477 | m_PrefabInstance: {fileID: 0} 478 | m_PrefabAsset: {fileID: 0} 479 | serializedVersion: 6 480 | m_Component: 481 | - component: {fileID: 586033315} 482 | - component: {fileID: 586033314} 483 | m_Layer: 0 484 | m_Name: Directional Light 485 | m_TagString: Untagged 486 | m_Icon: {fileID: 0} 487 | m_NavMeshLayer: 0 488 | m_StaticEditorFlags: 0 489 | m_IsActive: 1 490 | --- !u!108 &586033314 491 | Light: 492 | m_ObjectHideFlags: 0 493 | m_CorrespondingSourceObject: {fileID: 0} 494 | m_PrefabInstance: {fileID: 0} 495 | m_PrefabAsset: {fileID: 0} 496 | m_GameObject: {fileID: 586033313} 497 | m_Enabled: 1 498 | serializedVersion: 10 499 | m_Type: 1 500 | m_Shape: 0 501 | m_Color: {r: 1, g: 0.7818283, b: 0.5424528, a: 1} 502 | m_Intensity: 1.33 503 | m_Range: 10 504 | m_SpotAngle: 30 505 | m_InnerSpotAngle: 21.80208 506 | m_CookieSize: 10 507 | m_Shadows: 508 | m_Type: 2 509 | m_Resolution: 0 510 | m_CustomResolution: -1 511 | m_Strength: 1 512 | m_Bias: 0.05 513 | m_NormalBias: 0.4 514 | m_NearPlane: 0.2 515 | m_CullingMatrixOverride: 516 | e00: 1 517 | e01: 0 518 | e02: 0 519 | e03: 0 520 | e10: 0 521 | e11: 1 522 | e12: 0 523 | e13: 0 524 | e20: 0 525 | e21: 0 526 | e22: 1 527 | e23: 0 528 | e30: 0 529 | e31: 0 530 | e32: 0 531 | e33: 1 532 | m_UseCullingMatrixOverride: 0 533 | m_Cookie: {fileID: 0} 534 | m_DrawHalo: 0 535 | m_Flare: {fileID: 0} 536 | m_RenderMode: 0 537 | m_CullingMask: 538 | serializedVersion: 2 539 | m_Bits: 4294967295 540 | m_RenderingLayerMask: 1 541 | m_Lightmapping: 4 542 | m_LightShadowCasterMode: 0 543 | m_AreaSize: {x: 1, y: 1} 544 | m_BounceIntensity: 1 545 | m_ColorTemperature: 6570 546 | m_UseColorTemperature: 0 547 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 548 | m_UseBoundingSphereOverride: 0 549 | m_ShadowRadius: 0 550 | m_ShadowAngle: 0 551 | --- !u!4 &586033315 552 | Transform: 553 | m_ObjectHideFlags: 0 554 | m_CorrespondingSourceObject: {fileID: 0} 555 | m_PrefabInstance: {fileID: 0} 556 | m_PrefabAsset: {fileID: 0} 557 | m_GameObject: {fileID: 586033313} 558 | m_LocalRotation: {x: 0.871988, y: -0.093736246, z: 0.027672363, w: 0.4796715} 559 | m_LocalPosition: {x: 17.8, y: 51.6, z: 83.8} 560 | m_LocalScale: {x: 1, y: 0.79379, z: 1} 561 | m_Children: [] 562 | m_Father: {fileID: 0} 563 | m_RootOrder: 2 564 | m_LocalEulerAnglesHint: {x: 57.323, y: -175.574, z: -165.309} 565 | --- !u!1001 &657712746 566 | PrefabInstance: 567 | m_ObjectHideFlags: 0 568 | serializedVersion: 2 569 | m_Modification: 570 | m_TransformParent: {fileID: 1187565614} 571 | m_Modifications: 572 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 573 | type: 3} 574 | propertyPath: m_Name 575 | value: Agent (3) 576 | objectReference: {fileID: 0} 577 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 578 | type: 3} 579 | propertyPath: m_LocalPosition.x 580 | value: 2.74 581 | objectReference: {fileID: 0} 582 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 583 | type: 3} 584 | propertyPath: m_LocalPosition.y 585 | value: 0.35 586 | objectReference: {fileID: 0} 587 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 588 | type: 3} 589 | propertyPath: m_LocalPosition.z 590 | value: -2.56 591 | objectReference: {fileID: 0} 592 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 593 | type: 3} 594 | propertyPath: m_LocalRotation.x 595 | value: -0 596 | objectReference: {fileID: 0} 597 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 598 | type: 3} 599 | propertyPath: m_LocalRotation.y 600 | value: 0.112064436 601 | objectReference: {fileID: 0} 602 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 603 | type: 3} 604 | propertyPath: m_LocalRotation.z 605 | value: -0 606 | objectReference: {fileID: 0} 607 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 608 | type: 3} 609 | propertyPath: m_LocalRotation.w 610 | value: 0.993701 611 | objectReference: {fileID: 0} 612 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 613 | type: 3} 614 | propertyPath: m_RootOrder 615 | value: 10 616 | objectReference: {fileID: 0} 617 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 618 | type: 3} 619 | propertyPath: m_LocalEulerAnglesHint.x 620 | value: 0 621 | objectReference: {fileID: 0} 622 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 623 | type: 3} 624 | propertyPath: m_LocalEulerAnglesHint.y 625 | value: 12.869 626 | objectReference: {fileID: 0} 627 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 628 | type: 3} 629 | propertyPath: m_LocalEulerAnglesHint.z 630 | value: 0 631 | objectReference: {fileID: 0} 632 | m_RemovedComponents: [] 633 | m_SourcePrefab: {fileID: 100100000, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 634 | --- !u!1001 &786005982 635 | PrefabInstance: 636 | m_ObjectHideFlags: 0 637 | serializedVersion: 2 638 | m_Modification: 639 | m_TransformParent: {fileID: 0} 640 | m_Modifications: 641 | - target: {fileID: 1125452240183160, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 642 | propertyPath: m_Name 643 | value: Arena 644 | objectReference: {fileID: 0} 645 | - target: {fileID: 1500989011945850, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 646 | propertyPath: m_StaticEditorFlags 647 | value: 4294967295 648 | objectReference: {fileID: 0} 649 | - target: {fileID: 1948183181472910, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 650 | propertyPath: m_StaticEditorFlags 651 | value: 4294967295 652 | objectReference: {fileID: 0} 653 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 654 | propertyPath: m_LocalPosition.x 655 | value: 9.5 656 | objectReference: {fileID: 0} 657 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 658 | propertyPath: m_LocalPosition.y 659 | value: 0 660 | objectReference: {fileID: 0} 661 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 662 | propertyPath: m_LocalPosition.z 663 | value: -3.9 664 | objectReference: {fileID: 0} 665 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 666 | propertyPath: m_LocalRotation.x 667 | value: 0 668 | objectReference: {fileID: 0} 669 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 670 | propertyPath: m_LocalRotation.y 671 | value: 0 672 | objectReference: {fileID: 0} 673 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 674 | propertyPath: m_LocalRotation.z 675 | value: 0 676 | objectReference: {fileID: 0} 677 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 678 | propertyPath: m_LocalRotation.w 679 | value: 1 680 | objectReference: {fileID: 0} 681 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 682 | propertyPath: m_RootOrder 683 | value: 3 684 | objectReference: {fileID: 0} 685 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 686 | propertyPath: m_LocalEulerAnglesHint.x 687 | value: 0 688 | objectReference: {fileID: 0} 689 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 690 | propertyPath: m_LocalEulerAnglesHint.y 691 | value: 0 692 | objectReference: {fileID: 0} 693 | - target: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 694 | propertyPath: m_LocalEulerAnglesHint.z 695 | value: 0 696 | objectReference: {fileID: 0} 697 | - target: {fileID: 4643236529171504, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 698 | propertyPath: m_LocalPosition.y 699 | value: -0.18 700 | objectReference: {fileID: 0} 701 | - target: {fileID: 23386727129662884, guid: 094477becb5c66d478f920b68fdde50a, 702 | type: 3} 703 | propertyPath: m_Materials.Array.data[0] 704 | value: 705 | objectReference: {fileID: 2100000, guid: dc7340babc47c45c987fee58e013ed3f, type: 2} 706 | - target: {fileID: 23386727129662884, guid: 094477becb5c66d478f920b68fdde50a, 707 | type: 3} 708 | propertyPath: m_ReceiveShadows 709 | value: 0 710 | objectReference: {fileID: 0} 711 | - target: {fileID: 23549423015434358, guid: 094477becb5c66d478f920b68fdde50a, 712 | type: 3} 713 | propertyPath: m_Materials.Array.data[0] 714 | value: 715 | objectReference: {fileID: 2100000, guid: dc7340babc47c45c987fee58e013ed3f, type: 2} 716 | - target: {fileID: 23549423015434358, guid: 094477becb5c66d478f920b68fdde50a, 717 | type: 3} 718 | propertyPath: m_ReceiveShadows 719 | value: 1 720 | objectReference: {fileID: 0} 721 | - target: {fileID: 23549423015434358, guid: 094477becb5c66d478f920b68fdde50a, 722 | type: 3} 723 | propertyPath: m_ScaleInLightmap 724 | value: 1 725 | objectReference: {fileID: 0} 726 | - target: {fileID: 65220627410631168, guid: 094477becb5c66d478f920b68fdde50a, 727 | type: 3} 728 | propertyPath: m_Size.y 729 | value: 387.38275 730 | objectReference: {fileID: 0} 731 | - target: {fileID: 65220627410631168, guid: 094477becb5c66d478f920b68fdde50a, 732 | type: 3} 733 | propertyPath: m_Size.z 734 | value: 50.00013 735 | objectReference: {fileID: 0} 736 | - target: {fileID: 65220627410631168, guid: 094477becb5c66d478f920b68fdde50a, 737 | type: 3} 738 | propertyPath: m_Center.y 739 | value: 143.69138 740 | objectReference: {fileID: 0} 741 | - target: {fileID: 65537431973827738, guid: 094477becb5c66d478f920b68fdde50a, 742 | type: 3} 743 | propertyPath: m_Size.x 744 | value: 50.00013 745 | objectReference: {fileID: 0} 746 | - target: {fileID: 65537431973827738, guid: 094477becb5c66d478f920b68fdde50a, 747 | type: 3} 748 | propertyPath: m_Size.y 749 | value: 381.63803 750 | objectReference: {fileID: 0} 751 | - target: {fileID: 65537431973827738, guid: 094477becb5c66d478f920b68fdde50a, 752 | type: 3} 753 | propertyPath: m_Center.y 754 | value: 140.8189 755 | objectReference: {fileID: 0} 756 | - target: {fileID: 65603921567931242, guid: 094477becb5c66d478f920b68fdde50a, 757 | type: 3} 758 | propertyPath: m_Size.x 759 | value: 50.00013 760 | objectReference: {fileID: 0} 761 | - target: {fileID: 65603921567931242, guid: 094477becb5c66d478f920b68fdde50a, 762 | type: 3} 763 | propertyPath: m_Size.y 764 | value: 377.65735 765 | objectReference: {fileID: 0} 766 | - target: {fileID: 65603921567931242, guid: 094477becb5c66d478f920b68fdde50a, 767 | type: 3} 768 | propertyPath: m_Center.y 769 | value: 138.82866 770 | objectReference: {fileID: 0} 771 | - target: {fileID: 65701990377179520, guid: 094477becb5c66d478f920b68fdde50a, 772 | type: 3} 773 | propertyPath: m_Size.y 774 | value: 378.9676 775 | objectReference: {fileID: 0} 776 | - target: {fileID: 65701990377179520, guid: 094477becb5c66d478f920b68fdde50a, 777 | type: 3} 778 | propertyPath: m_Size.z 779 | value: 50.00013 780 | objectReference: {fileID: 0} 781 | - target: {fileID: 65701990377179520, guid: 094477becb5c66d478f920b68fdde50a, 782 | type: 3} 783 | propertyPath: m_Center.y 784 | value: 139.4838 785 | objectReference: {fileID: 0} 786 | - target: {fileID: 7524457446257243440, guid: 094477becb5c66d478f920b68fdde50a, 787 | type: 3} 788 | propertyPath: m_Enabled 789 | value: 0 790 | objectReference: {fileID: 0} 791 | m_RemovedComponents: 792 | - {fileID: 7524457446257243440, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 793 | m_SourcePrefab: {fileID: 100100000, guid: 094477becb5c66d478f920b68fdde50a, type: 3} 794 | --- !u!1 &877104425 795 | GameObject: 796 | m_ObjectHideFlags: 0 797 | m_CorrespondingSourceObject: {fileID: 0} 798 | m_PrefabInstance: {fileID: 0} 799 | m_PrefabAsset: {fileID: 0} 800 | serializedVersion: 6 801 | m_Component: 802 | - component: {fileID: 877104426} 803 | - component: {fileID: 877104430} 804 | - component: {fileID: 877104429} 805 | - component: {fileID: 877104428} 806 | - component: {fileID: 877104427} 807 | m_Layer: 0 808 | m_Name: timeText (TMP) 809 | m_TagString: Untagged 810 | m_Icon: {fileID: 0} 811 | m_NavMeshLayer: 0 812 | m_StaticEditorFlags: 0 813 | m_IsActive: 1 814 | --- !u!224 &877104426 815 | RectTransform: 816 | m_ObjectHideFlags: 0 817 | m_CorrespondingSourceObject: {fileID: 0} 818 | m_PrefabInstance: {fileID: 0} 819 | m_PrefabAsset: {fileID: 0} 820 | m_GameObject: {fileID: 877104425} 821 | m_LocalRotation: {x: -0, y: 0.9998547, z: -0, w: -0.01704772} 822 | m_LocalPosition: {x: 0, y: 0, z: -12.19} 823 | m_LocalScale: {x: 0.33552542, y: 0.33552542, z: 0.33552542} 824 | m_Children: [] 825 | m_Father: {fileID: 1187565614} 826 | m_RootOrder: 5 827 | m_LocalEulerAnglesHint: {x: 0, y: 181.954, z: 0} 828 | m_AnchorMin: {x: 0.5, y: 0.5} 829 | m_AnchorMax: {x: 0.5, y: 0.5} 830 | m_AnchoredPosition: {x: 7.03, y: 0.66} 831 | m_SizeDelta: {x: 20, y: 5} 832 | m_Pivot: {x: 0.5, y: 0.5} 833 | --- !u!114 &877104427 834 | MonoBehaviour: 835 | m_ObjectHideFlags: 0 836 | m_CorrespondingSourceObject: {fileID: 0} 837 | m_PrefabInstance: {fileID: 0} 838 | m_PrefabAsset: {fileID: 0} 839 | m_GameObject: {fileID: 877104425} 840 | m_Enabled: 1 841 | m_EditorHideFlags: 0 842 | m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} 843 | m_Name: 844 | m_EditorClassIdentifier: 845 | m_Material: {fileID: 0} 846 | m_Color: {r: 1, g: 1, b: 1, a: 1} 847 | m_RaycastTarget: 1 848 | m_OnCullStateChanged: 849 | m_PersistentCalls: 850 | m_Calls: [] 851 | m_text: 0 852 | m_isRightToLeft: 0 853 | m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 854 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 855 | m_fontSharedMaterials: [] 856 | m_fontMaterial: {fileID: 0} 857 | m_fontMaterials: [] 858 | m_fontColor32: 859 | serializedVersion: 2 860 | rgba: 4291149486 861 | m_fontColor: {r: 0.6823603, g: 0.7431767, b: 0.7735849, a: 1} 862 | m_enableVertexGradient: 0 863 | m_colorMode: 3 864 | m_fontColorGradient: 865 | topLeft: {r: 1, g: 1, b: 1, a: 1} 866 | topRight: {r: 1, g: 1, b: 1, a: 1} 867 | bottomLeft: {r: 1, g: 1, b: 1, a: 1} 868 | bottomRight: {r: 1, g: 1, b: 1, a: 1} 869 | m_fontColorGradientPreset: {fileID: 0} 870 | m_spriteAsset: {fileID: 0} 871 | m_tintAllSprites: 0 872 | m_overrideHtmlColors: 0 873 | m_faceColor: 874 | serializedVersion: 2 875 | rgba: 4294967295 876 | m_outlineColor: 877 | serializedVersion: 2 878 | rgba: 4278190080 879 | m_fontSize: 30 880 | m_fontSizeBase: 30 881 | m_fontWeight: 400 882 | m_enableAutoSizing: 0 883 | m_fontSizeMin: 18 884 | m_fontSizeMax: 72 885 | m_fontStyle: 1 886 | m_textAlignment: 257 887 | m_characterSpacing: 0 888 | m_wordSpacing: 0 889 | m_lineSpacing: 0 890 | m_lineSpacingMax: 0 891 | m_paragraphSpacing: 0 892 | m_charWidthMaxAdj: 0 893 | m_enableWordWrapping: 1 894 | m_wordWrappingRatios: 0.4 895 | m_overflowMode: 0 896 | m_firstOverflowCharacterIndex: -1 897 | m_linkedTextComponent: {fileID: 0} 898 | m_isLinkedTextComponent: 0 899 | m_isTextTruncated: 0 900 | m_enableKerning: 1 901 | m_enableExtraPadding: 0 902 | checkPaddingRequired: 0 903 | m_isRichText: 1 904 | m_parseCtrlCharacters: 1 905 | m_isOrthographic: 0 906 | m_isCullingEnabled: 0 907 | m_ignoreRectMaskCulling: 0 908 | m_ignoreCulling: 1 909 | m_horizontalMapping: 0 910 | m_verticalMapping: 0 911 | m_uvLineOffset: 0 912 | m_geometrySortingOrder: 0 913 | m_VertexBufferAutoSizeReduction: 1 914 | m_firstVisibleCharacter: 0 915 | m_useMaxVisibleDescender: 1 916 | m_pageToDisplay: 1 917 | m_margin: {x: 0, y: 0, z: 0, w: 0} 918 | m_textInfo: 919 | textComponent: {fileID: 877104427} 920 | characterCount: 1 921 | spriteCount: 0 922 | spaceCount: 0 923 | wordCount: 1 924 | linkCount: 0 925 | lineCount: 1 926 | pageCount: 1 927 | materialCount: 1 928 | m_isUsingLegacyAnimationComponent: 0 929 | m_isVolumetricText: 0 930 | m_spriteAnimator: {fileID: 0} 931 | m_hasFontAssetChanged: 0 932 | m_renderer: {fileID: 877104430} 933 | m_subTextObjects: 934 | - {fileID: 0} 935 | - {fileID: 0} 936 | - {fileID: 0} 937 | - {fileID: 0} 938 | - {fileID: 0} 939 | - {fileID: 0} 940 | - {fileID: 0} 941 | - {fileID: 0} 942 | m_maskType: 0 943 | --- !u!222 &877104428 944 | CanvasRenderer: 945 | m_ObjectHideFlags: 2 946 | m_CorrespondingSourceObject: {fileID: 0} 947 | m_PrefabInstance: {fileID: 0} 948 | m_PrefabAsset: {fileID: 0} 949 | m_GameObject: {fileID: 877104425} 950 | m_CullTransparentMesh: 0 951 | --- !u!33 &877104429 952 | MeshFilter: 953 | m_ObjectHideFlags: 2 954 | m_CorrespondingSourceObject: {fileID: 0} 955 | m_PrefabInstance: {fileID: 0} 956 | m_PrefabAsset: {fileID: 0} 957 | m_GameObject: {fileID: 877104425} 958 | m_Mesh: {fileID: 0} 959 | --- !u!23 &877104430 960 | MeshRenderer: 961 | m_ObjectHideFlags: 0 962 | m_CorrespondingSourceObject: {fileID: 0} 963 | m_PrefabInstance: {fileID: 0} 964 | m_PrefabAsset: {fileID: 0} 965 | m_GameObject: {fileID: 877104425} 966 | m_Enabled: 1 967 | m_CastShadows: 0 968 | m_ReceiveShadows: 0 969 | m_DynamicOccludee: 1 970 | m_MotionVectors: 1 971 | m_LightProbeUsage: 1 972 | m_ReflectionProbeUsage: 1 973 | m_RayTracingMode: 2 974 | m_RenderingLayerMask: 1 975 | m_RendererPriority: 0 976 | m_Materials: 977 | - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 978 | m_StaticBatchInfo: 979 | firstSubMesh: 0 980 | subMeshCount: 0 981 | m_StaticBatchRoot: {fileID: 0} 982 | m_ProbeAnchor: {fileID: 0} 983 | m_LightProbeVolumeOverride: {fileID: 0} 984 | m_ScaleInLightmap: 1 985 | m_ReceiveGI: 1 986 | m_PreserveUVs: 0 987 | m_IgnoreNormalsForChartDetection: 0 988 | m_ImportantGI: 0 989 | m_StitchLightmapSeams: 1 990 | m_SelectedEditorRenderState: 3 991 | m_MinimumChartSize: 4 992 | m_AutoUVMaxDistance: 0.5 993 | m_AutoUVMaxAngle: 89 994 | m_LightmapParameters: {fileID: 0} 995 | m_SortingLayerID: 0 996 | m_SortingLayer: 0 997 | m_SortingOrder: 0 998 | --- !u!114 &1167039816 stripped 999 | MonoBehaviour: 1000 | m_CorrespondingSourceObject: {fileID: 3397899325613547977, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1001 | type: 3} 1002 | m_PrefabInstance: {fileID: 470274353} 1003 | m_PrefabAsset: {fileID: 0} 1004 | m_GameObject: {fileID: 0} 1005 | m_Enabled: 1 1006 | m_EditorHideFlags: 0 1007 | m_Script: {fileID: 11500000, guid: 81f89b1f2f584f146bd1f372578f2890, type: 3} 1008 | m_Name: 1009 | m_EditorClassIdentifier: 1010 | --- !u!4 &1187565614 stripped 1011 | Transform: 1012 | m_CorrespondingSourceObject: {fileID: 4006990431719496, guid: 094477becb5c66d478f920b68fdde50a, 1013 | type: 3} 1014 | m_PrefabInstance: {fileID: 786005982} 1015 | m_PrefabAsset: {fileID: 0} 1016 | --- !u!1 &1257883716 1017 | GameObject: 1018 | m_ObjectHideFlags: 0 1019 | m_CorrespondingSourceObject: {fileID: 0} 1020 | m_PrefabInstance: {fileID: 0} 1021 | m_PrefabAsset: {fileID: 0} 1022 | serializedVersion: 6 1023 | m_Component: 1024 | - component: {fileID: 1257883717} 1025 | - component: {fileID: 1257883721} 1026 | - component: {fileID: 1257883720} 1027 | - component: {fileID: 1257883719} 1028 | - component: {fileID: 1257883718} 1029 | m_Layer: 0 1030 | m_Name: CumulativeR 1031 | m_TagString: Untagged 1032 | m_Icon: {fileID: 0} 1033 | m_NavMeshLayer: 0 1034 | m_StaticEditorFlags: 0 1035 | m_IsActive: 1 1036 | --- !u!224 &1257883717 1037 | RectTransform: 1038 | m_ObjectHideFlags: 0 1039 | m_CorrespondingSourceObject: {fileID: 0} 1040 | m_PrefabInstance: {fileID: 0} 1041 | m_PrefabAsset: {fileID: 0} 1042 | m_GameObject: {fileID: 1257883716} 1043 | m_LocalRotation: {x: -0, y: 0.999538, z: -0, w: -0.030393137} 1044 | m_LocalPosition: {x: 0, y: 0, z: -12.19} 1045 | m_LocalScale: {x: 0.33552542, y: 0.33552542, z: 0.33552542} 1046 | m_Children: [] 1047 | m_Father: {fileID: 1187565614} 1048 | m_RootOrder: 4 1049 | m_LocalEulerAnglesHint: {x: 0, y: 183.48299, z: 0} 1050 | m_AnchorMin: {x: 0.5, y: 0.5} 1051 | m_AnchorMax: {x: 0.5, y: 0.5} 1052 | m_AnchoredPosition: {x: -6.85, y: 0.66} 1053 | m_SizeDelta: {x: 20, y: 5} 1054 | m_Pivot: {x: 0.5, y: 0.5} 1055 | --- !u!114 &1257883718 1056 | MonoBehaviour: 1057 | m_ObjectHideFlags: 0 1058 | m_CorrespondingSourceObject: {fileID: 0} 1059 | m_PrefabInstance: {fileID: 0} 1060 | m_PrefabAsset: {fileID: 0} 1061 | m_GameObject: {fileID: 1257883716} 1062 | m_Enabled: 1 1063 | m_EditorHideFlags: 0 1064 | m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} 1065 | m_Name: 1066 | m_EditorClassIdentifier: 1067 | m_Material: {fileID: 0} 1068 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1069 | m_RaycastTarget: 1 1070 | m_OnCullStateChanged: 1071 | m_PersistentCalls: 1072 | m_Calls: [] 1073 | m_text: 0 1074 | m_isRightToLeft: 0 1075 | m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 1076 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 1077 | m_fontSharedMaterials: [] 1078 | m_fontMaterial: {fileID: 0} 1079 | m_fontMaterials: [] 1080 | m_fontColor32: 1081 | serializedVersion: 2 1082 | rgba: 4294967295 1083 | m_fontColor: {r: 1, g: 1, b: 1, a: 1} 1084 | m_enableVertexGradient: 0 1085 | m_colorMode: 3 1086 | m_fontColorGradient: 1087 | topLeft: {r: 1, g: 1, b: 1, a: 1} 1088 | topRight: {r: 1, g: 1, b: 1, a: 1} 1089 | bottomLeft: {r: 1, g: 1, b: 1, a: 1} 1090 | bottomRight: {r: 1, g: 1, b: 1, a: 1} 1091 | m_fontColorGradientPreset: {fileID: 0} 1092 | m_spriteAsset: {fileID: 0} 1093 | m_tintAllSprites: 0 1094 | m_overrideHtmlColors: 0 1095 | m_faceColor: 1096 | serializedVersion: 2 1097 | rgba: 4294967295 1098 | m_outlineColor: 1099 | serializedVersion: 2 1100 | rgba: 4278190080 1101 | m_fontSize: 36 1102 | m_fontSizeBase: 36 1103 | m_fontWeight: 400 1104 | m_enableAutoSizing: 0 1105 | m_fontSizeMin: 18 1106 | m_fontSizeMax: 72 1107 | m_fontStyle: 1 1108 | m_textAlignment: 257 1109 | m_characterSpacing: 0 1110 | m_wordSpacing: 0 1111 | m_lineSpacing: 0 1112 | m_lineSpacingMax: 0 1113 | m_paragraphSpacing: 0 1114 | m_charWidthMaxAdj: 0 1115 | m_enableWordWrapping: 1 1116 | m_wordWrappingRatios: 0.4 1117 | m_overflowMode: 0 1118 | m_firstOverflowCharacterIndex: -1 1119 | m_linkedTextComponent: {fileID: 0} 1120 | m_isLinkedTextComponent: 0 1121 | m_isTextTruncated: 0 1122 | m_enableKerning: 1 1123 | m_enableExtraPadding: 0 1124 | checkPaddingRequired: 0 1125 | m_isRichText: 1 1126 | m_parseCtrlCharacters: 1 1127 | m_isOrthographic: 0 1128 | m_isCullingEnabled: 0 1129 | m_ignoreRectMaskCulling: 0 1130 | m_ignoreCulling: 1 1131 | m_horizontalMapping: 0 1132 | m_verticalMapping: 0 1133 | m_uvLineOffset: 0 1134 | m_geometrySortingOrder: 0 1135 | m_VertexBufferAutoSizeReduction: 1 1136 | m_firstVisibleCharacter: 0 1137 | m_useMaxVisibleDescender: 1 1138 | m_pageToDisplay: 1 1139 | m_margin: {x: 0, y: 0, z: 0, w: 0} 1140 | m_textInfo: 1141 | textComponent: {fileID: 1257883718} 1142 | characterCount: 1 1143 | spriteCount: 0 1144 | spaceCount: 0 1145 | wordCount: 1 1146 | linkCount: 0 1147 | lineCount: 1 1148 | pageCount: 1 1149 | materialCount: 1 1150 | m_isUsingLegacyAnimationComponent: 0 1151 | m_isVolumetricText: 0 1152 | m_spriteAnimator: {fileID: 0} 1153 | m_hasFontAssetChanged: 0 1154 | m_renderer: {fileID: 1257883721} 1155 | m_subTextObjects: 1156 | - {fileID: 0} 1157 | - {fileID: 0} 1158 | - {fileID: 0} 1159 | - {fileID: 0} 1160 | - {fileID: 0} 1161 | - {fileID: 0} 1162 | - {fileID: 0} 1163 | - {fileID: 0} 1164 | m_maskType: 0 1165 | --- !u!222 &1257883719 1166 | CanvasRenderer: 1167 | m_ObjectHideFlags: 2 1168 | m_CorrespondingSourceObject: {fileID: 0} 1169 | m_PrefabInstance: {fileID: 0} 1170 | m_PrefabAsset: {fileID: 0} 1171 | m_GameObject: {fileID: 1257883716} 1172 | m_CullTransparentMesh: 0 1173 | --- !u!33 &1257883720 1174 | MeshFilter: 1175 | m_ObjectHideFlags: 2 1176 | m_CorrespondingSourceObject: {fileID: 0} 1177 | m_PrefabInstance: {fileID: 0} 1178 | m_PrefabAsset: {fileID: 0} 1179 | m_GameObject: {fileID: 1257883716} 1180 | m_Mesh: {fileID: 0} 1181 | --- !u!23 &1257883721 1182 | MeshRenderer: 1183 | m_ObjectHideFlags: 0 1184 | m_CorrespondingSourceObject: {fileID: 0} 1185 | m_PrefabInstance: {fileID: 0} 1186 | m_PrefabAsset: {fileID: 0} 1187 | m_GameObject: {fileID: 1257883716} 1188 | m_Enabled: 1 1189 | m_CastShadows: 0 1190 | m_ReceiveShadows: 0 1191 | m_DynamicOccludee: 1 1192 | m_MotionVectors: 1 1193 | m_LightProbeUsage: 1 1194 | m_ReflectionProbeUsage: 1 1195 | m_RayTracingMode: 2 1196 | m_RenderingLayerMask: 1 1197 | m_RendererPriority: 0 1198 | m_Materials: 1199 | - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 1200 | m_StaticBatchInfo: 1201 | firstSubMesh: 0 1202 | subMeshCount: 0 1203 | m_StaticBatchRoot: {fileID: 0} 1204 | m_ProbeAnchor: {fileID: 0} 1205 | m_LightProbeVolumeOverride: {fileID: 0} 1206 | m_ScaleInLightmap: 1 1207 | m_ReceiveGI: 1 1208 | m_PreserveUVs: 0 1209 | m_IgnoreNormalsForChartDetection: 0 1210 | m_ImportantGI: 0 1211 | m_StitchLightmapSeams: 1 1212 | m_SelectedEditorRenderState: 3 1213 | m_MinimumChartSize: 4 1214 | m_AutoUVMaxDistance: 0.5 1215 | m_AutoUVMaxAngle: 89 1216 | m_LightmapParameters: {fileID: 0} 1217 | m_SortingLayerID: 0 1218 | m_SortingLayer: 0 1219 | m_SortingOrder: 0 1220 | --- !u!1 &1391492624 1221 | GameObject: 1222 | m_ObjectHideFlags: 0 1223 | m_CorrespondingSourceObject: {fileID: 0} 1224 | m_PrefabInstance: {fileID: 0} 1225 | m_PrefabAsset: {fileID: 0} 1226 | serializedVersion: 6 1227 | m_Component: 1228 | - component: {fileID: 1391492627} 1229 | - component: {fileID: 1391492626} 1230 | - component: {fileID: 1391492625} 1231 | - component: {fileID: 1391492628} 1232 | m_Layer: 0 1233 | m_Name: Main Camera 1234 | m_TagString: MainCamera 1235 | m_Icon: {fileID: 0} 1236 | m_NavMeshLayer: 0 1237 | m_StaticEditorFlags: 0 1238 | m_IsActive: 1 1239 | --- !u!81 &1391492625 1240 | AudioListener: 1241 | m_ObjectHideFlags: 0 1242 | m_CorrespondingSourceObject: {fileID: 0} 1243 | m_PrefabInstance: {fileID: 0} 1244 | m_PrefabAsset: {fileID: 0} 1245 | m_GameObject: {fileID: 1391492624} 1246 | m_Enabled: 0 1247 | --- !u!20 &1391492626 1248 | Camera: 1249 | m_ObjectHideFlags: 0 1250 | m_CorrespondingSourceObject: {fileID: 0} 1251 | m_PrefabInstance: {fileID: 0} 1252 | m_PrefabAsset: {fileID: 0} 1253 | m_GameObject: {fileID: 1391492624} 1254 | m_Enabled: 1 1255 | serializedVersion: 2 1256 | m_ClearFlags: 1 1257 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 1258 | m_projectionMatrixMode: 1 1259 | m_GateFitMode: 2 1260 | m_FOVAxisMode: 0 1261 | m_SensorSize: {x: 36, y: 24} 1262 | m_LensShift: {x: 0, y: 0} 1263 | m_FocalLength: 50 1264 | m_NormalizedViewPortRect: 1265 | serializedVersion: 2 1266 | x: 0 1267 | y: 0 1268 | width: 1 1269 | height: 1 1270 | near clip plane: 0.3 1271 | far clip plane: 1000 1272 | field of view: 46 1273 | orthographic: 0 1274 | orthographic size: 5 1275 | m_Depth: -1 1276 | m_CullingMask: 1277 | serializedVersion: 2 1278 | m_Bits: 4294967295 1279 | m_RenderingPath: -1 1280 | m_TargetTexture: {fileID: 0} 1281 | m_TargetDisplay: 0 1282 | m_TargetEye: 3 1283 | m_HDR: 1 1284 | m_AllowMSAA: 0 1285 | m_AllowDynamicResolution: 0 1286 | m_ForceIntoRT: 0 1287 | m_OcclusionCulling: 1 1288 | m_StereoConvergence: 10 1289 | m_StereoSeparation: 0.022 1290 | --- !u!4 &1391492627 1291 | Transform: 1292 | m_ObjectHideFlags: 0 1293 | m_CorrespondingSourceObject: {fileID: 0} 1294 | m_PrefabInstance: {fileID: 0} 1295 | m_PrefabAsset: {fileID: 0} 1296 | m_GameObject: {fileID: 1391492624} 1297 | m_LocalRotation: {x: -0.0061185705, y: 0.9656537, z: -0.2597287, w: -0.0040690107} 1298 | m_LocalPosition: {x: 11.22, y: 22.92, z: 53} 1299 | m_LocalScale: {x: 1.0659, y: 1.0659, z: 2.7669697} 1300 | m_Children: [] 1301 | m_Father: {fileID: 0} 1302 | m_RootOrder: 0 1303 | m_LocalEulerAnglesHint: {x: 30.11, y: 180.31, z: -0.643} 1304 | --- !u!114 &1391492628 1305 | MonoBehaviour: 1306 | m_ObjectHideFlags: 0 1307 | m_CorrespondingSourceObject: {fileID: 0} 1308 | m_PrefabInstance: {fileID: 0} 1309 | m_PrefabAsset: {fileID: 0} 1310 | m_GameObject: {fileID: 1391492624} 1311 | m_Enabled: 1 1312 | m_EditorHideFlags: 0 1313 | m_Script: {fileID: 11500000, guid: 2d687537154440a3913a9a3c7977978c, type: 3} 1314 | m_Name: 1315 | m_EditorClassIdentifier: 1316 | CameraTarget: {fileID: 0} 1317 | FollowDistance: 24.1 1318 | MaxFollowDistance: 100 1319 | MinFollowDistance: 2 1320 | ElevationAngle: 30 1321 | MaxElevationAngle: 85 1322 | MinElevationAngle: 0 1323 | OrbitalAngle: 90 1324 | CameraMode: 0 1325 | MovementSmoothing: 1 1326 | RotationSmoothing: 1 1327 | MovementSmoothingValue: 25 1328 | RotationSmoothingValue: 5 1329 | MoveSensitivity: 2 1330 | --- !u!1 &1532040006 1331 | GameObject: 1332 | m_ObjectHideFlags: 0 1333 | m_CorrespondingSourceObject: {fileID: 0} 1334 | m_PrefabInstance: {fileID: 0} 1335 | m_PrefabAsset: {fileID: 0} 1336 | serializedVersion: 6 1337 | m_Component: 1338 | - component: {fileID: 1532040008} 1339 | - component: {fileID: 1532040007} 1340 | m_Layer: 0 1341 | m_Name: Directional Light (1) 1342 | m_TagString: Untagged 1343 | m_Icon: {fileID: 0} 1344 | m_NavMeshLayer: 0 1345 | m_StaticEditorFlags: 0 1346 | m_IsActive: 1 1347 | --- !u!108 &1532040007 1348 | Light: 1349 | m_ObjectHideFlags: 0 1350 | m_CorrespondingSourceObject: {fileID: 0} 1351 | m_PrefabInstance: {fileID: 0} 1352 | m_PrefabAsset: {fileID: 0} 1353 | m_GameObject: {fileID: 1532040006} 1354 | m_Enabled: 1 1355 | serializedVersion: 10 1356 | m_Type: 1 1357 | m_Shape: 0 1358 | m_Color: {r: 1, g: 0.7818283, b: 0.5424528, a: 1} 1359 | m_Intensity: 0.11 1360 | m_Range: 10 1361 | m_SpotAngle: 30 1362 | m_InnerSpotAngle: 21.80208 1363 | m_CookieSize: 10 1364 | m_Shadows: 1365 | m_Type: 2 1366 | m_Resolution: 0 1367 | m_CustomResolution: -1 1368 | m_Strength: 1 1369 | m_Bias: 0.05 1370 | m_NormalBias: 0.4 1371 | m_NearPlane: 0.2 1372 | m_CullingMatrixOverride: 1373 | e00: 1 1374 | e01: 0 1375 | e02: 0 1376 | e03: 0 1377 | e10: 0 1378 | e11: 1 1379 | e12: 0 1380 | e13: 0 1381 | e20: 0 1382 | e21: 0 1383 | e22: 1 1384 | e23: 0 1385 | e30: 0 1386 | e31: 0 1387 | e32: 0 1388 | e33: 1 1389 | m_UseCullingMatrixOverride: 0 1390 | m_Cookie: {fileID: 0} 1391 | m_DrawHalo: 0 1392 | m_Flare: {fileID: 0} 1393 | m_RenderMode: 0 1394 | m_CullingMask: 1395 | serializedVersion: 2 1396 | m_Bits: 4294967295 1397 | m_RenderingLayerMask: 1 1398 | m_Lightmapping: 4 1399 | m_LightShadowCasterMode: 0 1400 | m_AreaSize: {x: 1, y: 1} 1401 | m_BounceIntensity: 1 1402 | m_ColorTemperature: 6570 1403 | m_UseColorTemperature: 0 1404 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 1405 | m_UseBoundingSphereOverride: 0 1406 | m_ShadowRadius: 0 1407 | m_ShadowAngle: 0 1408 | --- !u!4 &1532040008 1409 | Transform: 1410 | m_ObjectHideFlags: 0 1411 | m_CorrespondingSourceObject: {fileID: 0} 1412 | m_PrefabInstance: {fileID: 0} 1413 | m_PrefabAsset: {fileID: 0} 1414 | m_GameObject: {fileID: 1532040006} 1415 | m_LocalRotation: {x: 0.37558383, y: -0.469195, z: 0.78744256, w: 0.13684654} 1416 | m_LocalPosition: {x: 12.79, y: 51.6, z: 75.3} 1417 | m_LocalScale: {x: 1, y: 0.79379, z: 1} 1418 | m_Children: [] 1419 | m_Father: {fileID: 0} 1420 | m_RootOrder: 1 1421 | m_LocalEulerAnglesHint: {x: 57.322002, y: -300.94, z: -165.309} 1422 | --- !u!1 &1688904264 stripped 1423 | GameObject: 1424 | m_CorrespondingSourceObject: {fileID: 1125452240183160, guid: 094477becb5c66d478f920b68fdde50a, 1425 | type: 3} 1426 | m_PrefabInstance: {fileID: 786005982} 1427 | m_PrefabAsset: {fileID: 0} 1428 | --- !u!114 &1688904265 1429 | MonoBehaviour: 1430 | m_ObjectHideFlags: 0 1431 | m_CorrespondingSourceObject: {fileID: 0} 1432 | m_PrefabInstance: {fileID: 0} 1433 | m_PrefabAsset: {fileID: 0} 1434 | m_GameObject: {fileID: 1688904264} 1435 | m_Enabled: 1 1436 | m_EditorHideFlags: 0 1437 | m_Script: {fileID: 11500000, guid: caef41b72774f8f459ad1cdf86984f1a, type: 3} 1438 | m_Name: 1439 | m_EditorClassIdentifier: 1440 | agent_p: {fileID: 1167039816} 1441 | spawnbox: {fileID: 225198474} 1442 | sinkbox: {fileID: 332035334} 1443 | cumulative_R: {fileID: 1257883718} 1444 | timeText: {fileID: 877104427} 1445 | EpisodeText: {fileID: 1862991225} 1446 | NumberAgents: 0 1447 | --- !u!1001 &1832168380 1448 | PrefabInstance: 1449 | m_ObjectHideFlags: 0 1450 | serializedVersion: 2 1451 | m_Modification: 1452 | m_TransformParent: {fileID: 0} 1453 | m_Modifications: 1454 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1455 | type: 3} 1456 | propertyPath: m_Name 1457 | value: Agent (16) 1458 | objectReference: {fileID: 0} 1459 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1460 | type: 3} 1461 | propertyPath: m_TagString 1462 | value: Untagged 1463 | objectReference: {fileID: 0} 1464 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1465 | type: 3} 1466 | propertyPath: m_LocalPosition.x 1467 | value: -14.21 1468 | objectReference: {fileID: 0} 1469 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1470 | type: 3} 1471 | propertyPath: m_LocalPosition.y 1472 | value: 3.77 1473 | objectReference: {fileID: 0} 1474 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1475 | type: 3} 1476 | propertyPath: m_LocalPosition.z 1477 | value: -5.04 1478 | objectReference: {fileID: 0} 1479 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1480 | type: 3} 1481 | propertyPath: m_LocalRotation.x 1482 | value: -0 1483 | objectReference: {fileID: 0} 1484 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1485 | type: 3} 1486 | propertyPath: m_LocalRotation.y 1487 | value: -0.68957746 1488 | objectReference: {fileID: 0} 1489 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1490 | type: 3} 1491 | propertyPath: m_LocalRotation.z 1492 | value: -0 1493 | objectReference: {fileID: 0} 1494 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1495 | type: 3} 1496 | propertyPath: m_LocalRotation.w 1497 | value: -0.7242119 1498 | objectReference: {fileID: 0} 1499 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1500 | type: 3} 1501 | propertyPath: m_RootOrder 1502 | value: 5 1503 | objectReference: {fileID: 0} 1504 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1505 | type: 3} 1506 | propertyPath: m_LocalEulerAnglesHint.x 1507 | value: 0 1508 | objectReference: {fileID: 0} 1509 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1510 | type: 3} 1511 | propertyPath: m_LocalEulerAnglesHint.y 1512 | value: -272.807 1513 | objectReference: {fileID: 0} 1514 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1515 | type: 3} 1516 | propertyPath: m_LocalEulerAnglesHint.z 1517 | value: 0 1518 | objectReference: {fileID: 0} 1519 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1520 | type: 3} 1521 | propertyPath: m_LocalScale.x 1522 | value: 5.5222754 1523 | objectReference: {fileID: 0} 1524 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1525 | type: 3} 1526 | propertyPath: m_LocalScale.y 1527 | value: 4.4167533 1528 | objectReference: {fileID: 0} 1529 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1530 | type: 3} 1531 | propertyPath: m_LocalScale.z 1532 | value: 5.7014613 1533 | objectReference: {fileID: 0} 1534 | m_RemovedComponents: 1535 | - {fileID: 3397899325613547977, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1536 | - {fileID: 3397899325613547976, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1537 | - {fileID: 2343436093487775180, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1538 | - {fileID: 7829189118973858816, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1539 | - {fileID: 3397899325613547953, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1540 | - {fileID: 3397899325613547978, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1541 | - {fileID: 3397899325613547979, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1542 | - {fileID: 3397899325613547952, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1543 | m_SourcePrefab: {fileID: 100100000, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1544 | --- !u!1 &1862991224 1545 | GameObject: 1546 | m_ObjectHideFlags: 0 1547 | m_CorrespondingSourceObject: {fileID: 0} 1548 | m_PrefabInstance: {fileID: 0} 1549 | m_PrefabAsset: {fileID: 0} 1550 | serializedVersion: 6 1551 | m_Component: 1552 | - component: {fileID: 1862991229} 1553 | - component: {fileID: 1862991226} 1554 | - component: {fileID: 1862991228} 1555 | - component: {fileID: 1862991227} 1556 | - component: {fileID: 1862991225} 1557 | m_Layer: 0 1558 | m_Name: EpisodeText 1559 | m_TagString: Untagged 1560 | m_Icon: {fileID: 0} 1561 | m_NavMeshLayer: 0 1562 | m_StaticEditorFlags: 0 1563 | m_IsActive: 1 1564 | --- !u!114 &1862991225 1565 | MonoBehaviour: 1566 | m_ObjectHideFlags: 0 1567 | m_CorrespondingSourceObject: {fileID: 0} 1568 | m_PrefabInstance: {fileID: 0} 1569 | m_PrefabAsset: {fileID: 0} 1570 | m_GameObject: {fileID: 1862991224} 1571 | m_Enabled: 1 1572 | m_EditorHideFlags: 0 1573 | m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} 1574 | m_Name: 1575 | m_EditorClassIdentifier: 1576 | m_Material: {fileID: 0} 1577 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1578 | m_RaycastTarget: 1 1579 | m_OnCullStateChanged: 1580 | m_PersistentCalls: 1581 | m_Calls: [] 1582 | m_text: 0 1583 | m_isRightToLeft: 0 1584 | m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 1585 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 1586 | m_fontSharedMaterials: [] 1587 | m_fontMaterial: {fileID: 0} 1588 | m_fontMaterials: [] 1589 | m_fontColor32: 1590 | serializedVersion: 2 1591 | rgba: 4282370298 1592 | m_fontColor: {r: 0.9811321, g: 0.7843016, b: 0.24528302, a: 1} 1593 | m_enableVertexGradient: 0 1594 | m_colorMode: 3 1595 | m_fontColorGradient: 1596 | topLeft: {r: 1, g: 1, b: 1, a: 1} 1597 | topRight: {r: 1, g: 1, b: 1, a: 1} 1598 | bottomLeft: {r: 1, g: 1, b: 1, a: 1} 1599 | bottomRight: {r: 1, g: 1, b: 1, a: 1} 1600 | m_fontColorGradientPreset: {fileID: 0} 1601 | m_spriteAsset: {fileID: 0} 1602 | m_tintAllSprites: 0 1603 | m_overrideHtmlColors: 0 1604 | m_faceColor: 1605 | serializedVersion: 2 1606 | rgba: 4294967295 1607 | m_outlineColor: 1608 | serializedVersion: 2 1609 | rgba: 4278190080 1610 | m_fontSize: 30 1611 | m_fontSizeBase: 30 1612 | m_fontWeight: 400 1613 | m_enableAutoSizing: 0 1614 | m_fontSizeMin: 18 1615 | m_fontSizeMax: 72 1616 | m_fontStyle: 1 1617 | m_textAlignment: 257 1618 | m_characterSpacing: 0 1619 | m_wordSpacing: 0 1620 | m_lineSpacing: 0 1621 | m_lineSpacingMax: 0 1622 | m_paragraphSpacing: 0 1623 | m_charWidthMaxAdj: 0 1624 | m_enableWordWrapping: 1 1625 | m_wordWrappingRatios: 0.4 1626 | m_overflowMode: 0 1627 | m_firstOverflowCharacterIndex: -1 1628 | m_linkedTextComponent: {fileID: 0} 1629 | m_isLinkedTextComponent: 0 1630 | m_isTextTruncated: 0 1631 | m_enableKerning: 1 1632 | m_enableExtraPadding: 0 1633 | checkPaddingRequired: 0 1634 | m_isRichText: 1 1635 | m_parseCtrlCharacters: 1 1636 | m_isOrthographic: 0 1637 | m_isCullingEnabled: 0 1638 | m_ignoreRectMaskCulling: 0 1639 | m_ignoreCulling: 1 1640 | m_horizontalMapping: 0 1641 | m_verticalMapping: 0 1642 | m_uvLineOffset: 0 1643 | m_geometrySortingOrder: 0 1644 | m_VertexBufferAutoSizeReduction: 1 1645 | m_firstVisibleCharacter: 0 1646 | m_useMaxVisibleDescender: 1 1647 | m_pageToDisplay: 1 1648 | m_margin: {x: 0, y: 0, z: 0, w: 0} 1649 | m_textInfo: 1650 | textComponent: {fileID: 1862991225} 1651 | characterCount: 1 1652 | spriteCount: 0 1653 | spaceCount: 0 1654 | wordCount: 1 1655 | linkCount: 0 1656 | lineCount: 1 1657 | pageCount: 1 1658 | materialCount: 1 1659 | m_isUsingLegacyAnimationComponent: 0 1660 | m_isVolumetricText: 0 1661 | m_spriteAnimator: {fileID: 0} 1662 | m_hasFontAssetChanged: 0 1663 | m_renderer: {fileID: 1862991226} 1664 | m_subTextObjects: 1665 | - {fileID: 0} 1666 | - {fileID: 0} 1667 | - {fileID: 0} 1668 | - {fileID: 0} 1669 | - {fileID: 0} 1670 | - {fileID: 0} 1671 | - {fileID: 0} 1672 | - {fileID: 0} 1673 | m_maskType: 0 1674 | --- !u!23 &1862991226 1675 | MeshRenderer: 1676 | m_ObjectHideFlags: 0 1677 | m_CorrespondingSourceObject: {fileID: 0} 1678 | m_PrefabInstance: {fileID: 0} 1679 | m_PrefabAsset: {fileID: 0} 1680 | m_GameObject: {fileID: 1862991224} 1681 | m_Enabled: 1 1682 | m_CastShadows: 0 1683 | m_ReceiveShadows: 0 1684 | m_DynamicOccludee: 1 1685 | m_MotionVectors: 1 1686 | m_LightProbeUsage: 1 1687 | m_ReflectionProbeUsage: 1 1688 | m_RayTracingMode: 2 1689 | m_RenderingLayerMask: 1 1690 | m_RendererPriority: 0 1691 | m_Materials: 1692 | - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 1693 | m_StaticBatchInfo: 1694 | firstSubMesh: 0 1695 | subMeshCount: 0 1696 | m_StaticBatchRoot: {fileID: 0} 1697 | m_ProbeAnchor: {fileID: 0} 1698 | m_LightProbeVolumeOverride: {fileID: 0} 1699 | m_ScaleInLightmap: 1 1700 | m_ReceiveGI: 1 1701 | m_PreserveUVs: 0 1702 | m_IgnoreNormalsForChartDetection: 0 1703 | m_ImportantGI: 0 1704 | m_StitchLightmapSeams: 1 1705 | m_SelectedEditorRenderState: 3 1706 | m_MinimumChartSize: 4 1707 | m_AutoUVMaxDistance: 0.5 1708 | m_AutoUVMaxAngle: 89 1709 | m_LightmapParameters: {fileID: 0} 1710 | m_SortingLayerID: 0 1711 | m_SortingLayer: 0 1712 | m_SortingOrder: 0 1713 | --- !u!222 &1862991227 1714 | CanvasRenderer: 1715 | m_ObjectHideFlags: 2 1716 | m_CorrespondingSourceObject: {fileID: 0} 1717 | m_PrefabInstance: {fileID: 0} 1718 | m_PrefabAsset: {fileID: 0} 1719 | m_GameObject: {fileID: 1862991224} 1720 | m_CullTransparentMesh: 0 1721 | --- !u!33 &1862991228 1722 | MeshFilter: 1723 | m_ObjectHideFlags: 2 1724 | m_CorrespondingSourceObject: {fileID: 0} 1725 | m_PrefabInstance: {fileID: 0} 1726 | m_PrefabAsset: {fileID: 0} 1727 | m_GameObject: {fileID: 1862991224} 1728 | m_Mesh: {fileID: 0} 1729 | --- !u!224 &1862991229 1730 | RectTransform: 1731 | m_ObjectHideFlags: 0 1732 | m_CorrespondingSourceObject: {fileID: 0} 1733 | m_PrefabInstance: {fileID: 0} 1734 | m_PrefabAsset: {fileID: 0} 1735 | m_GameObject: {fileID: 1862991224} 1736 | m_LocalRotation: {x: -0, y: 0.9997064, z: -0, w: -0.024233755} 1737 | m_LocalPosition: {x: 0, y: 0, z: -12.146019} 1738 | m_LocalScale: {x: 0.33552545, y: 0.33552542, z: 0.33552545} 1739 | m_Children: [] 1740 | m_Father: {fileID: 1187565614} 1741 | m_RootOrder: 8 1742 | m_LocalEulerAnglesHint: {x: 0, y: 182.777, z: 0} 1743 | m_AnchorMin: {x: 0.5, y: 0.5} 1744 | m_AnchorMax: {x: 0.5, y: 0.5} 1745 | m_AnchoredPosition: {x: -0.13, y: 0.56} 1746 | m_SizeDelta: {x: 20, y: 5} 1747 | m_Pivot: {x: 0.5, y: 0.5} 1748 | --- !u!1001 &1926992994 1749 | PrefabInstance: 1750 | m_ObjectHideFlags: 0 1751 | serializedVersion: 2 1752 | m_Modification: 1753 | m_TransformParent: {fileID: 1187565614} 1754 | m_Modifications: 1755 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1756 | type: 3} 1757 | propertyPath: m_Name 1758 | value: Agent (2) 1759 | objectReference: {fileID: 0} 1760 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1761 | type: 3} 1762 | propertyPath: m_LocalPosition.x 1763 | value: -2.62 1764 | objectReference: {fileID: 0} 1765 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1766 | type: 3} 1767 | propertyPath: m_LocalPosition.y 1768 | value: 0.35 1769 | objectReference: {fileID: 0} 1770 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1771 | type: 3} 1772 | propertyPath: m_LocalPosition.z 1773 | value: -2.33 1774 | objectReference: {fileID: 0} 1775 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1776 | type: 3} 1777 | propertyPath: m_LocalRotation.x 1778 | value: -0 1779 | objectReference: {fileID: 0} 1780 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1781 | type: 3} 1782 | propertyPath: m_LocalRotation.y 1783 | value: 0.112064436 1784 | objectReference: {fileID: 0} 1785 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1786 | type: 3} 1787 | propertyPath: m_LocalRotation.z 1788 | value: -0 1789 | objectReference: {fileID: 0} 1790 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1791 | type: 3} 1792 | propertyPath: m_LocalRotation.w 1793 | value: 0.993701 1794 | objectReference: {fileID: 0} 1795 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1796 | type: 3} 1797 | propertyPath: m_RootOrder 1798 | value: 9 1799 | objectReference: {fileID: 0} 1800 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1801 | type: 3} 1802 | propertyPath: m_LocalEulerAnglesHint.x 1803 | value: 0 1804 | objectReference: {fileID: 0} 1805 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1806 | type: 3} 1807 | propertyPath: m_LocalEulerAnglesHint.y 1808 | value: 12.869 1809 | objectReference: {fileID: 0} 1810 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1811 | type: 3} 1812 | propertyPath: m_LocalEulerAnglesHint.z 1813 | value: 0 1814 | objectReference: {fileID: 0} 1815 | m_RemovedComponents: [] 1816 | m_SourcePrefab: {fileID: 100100000, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1817 | --- !u!1001 &2026084166 1818 | PrefabInstance: 1819 | m_ObjectHideFlags: 0 1820 | serializedVersion: 2 1821 | m_Modification: 1822 | m_TransformParent: {fileID: 0} 1823 | m_Modifications: 1824 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1825 | type: 3} 1826 | propertyPath: m_Name 1827 | value: Agent (15) 1828 | objectReference: {fileID: 0} 1829 | - target: {fileID: 3397899325613547954, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1830 | type: 3} 1831 | propertyPath: m_TagString 1832 | value: Untagged 1833 | objectReference: {fileID: 0} 1834 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1835 | type: 3} 1836 | propertyPath: m_LocalPosition.x 1837 | value: 34.16 1838 | objectReference: {fileID: 0} 1839 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1840 | type: 3} 1841 | propertyPath: m_LocalPosition.y 1842 | value: 7.94 1843 | objectReference: {fileID: 0} 1844 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1845 | type: 3} 1846 | propertyPath: m_LocalPosition.z 1847 | value: -5.16 1848 | objectReference: {fileID: 0} 1849 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1850 | type: 3} 1851 | propertyPath: m_LocalRotation.x 1852 | value: -0 1853 | objectReference: {fileID: 0} 1854 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1855 | type: 3} 1856 | propertyPath: m_LocalRotation.y 1857 | value: -0.74100685 1858 | objectReference: {fileID: 0} 1859 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1860 | type: 3} 1861 | propertyPath: m_LocalRotation.z 1862 | value: -0 1863 | objectReference: {fileID: 0} 1864 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1865 | type: 3} 1866 | propertyPath: m_LocalRotation.w 1867 | value: 0.67149746 1868 | objectReference: {fileID: 0} 1869 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1870 | type: 3} 1871 | propertyPath: m_RootOrder 1872 | value: 4 1873 | objectReference: {fileID: 0} 1874 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1875 | type: 3} 1876 | propertyPath: m_LocalEulerAnglesHint.x 1877 | value: 0 1878 | objectReference: {fileID: 0} 1879 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1880 | type: 3} 1881 | propertyPath: m_LocalEulerAnglesHint.y 1882 | value: -95.635 1883 | objectReference: {fileID: 0} 1884 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1885 | type: 3} 1886 | propertyPath: m_LocalEulerAnglesHint.z 1887 | value: 0 1888 | objectReference: {fileID: 0} 1889 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1890 | type: 3} 1891 | propertyPath: m_LocalScale.x 1892 | value: 7.0265107 1893 | objectReference: {fileID: 0} 1894 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1895 | type: 3} 1896 | propertyPath: m_LocalScale.y 1897 | value: 5.619851 1898 | objectReference: {fileID: 0} 1899 | - target: {fileID: 3397899325613547956, guid: e784427ae3417ad4c9097c1c9d4b7d35, 1900 | type: 3} 1901 | propertyPath: m_LocalScale.z 1902 | value: 7.2545056 1903 | objectReference: {fileID: 0} 1904 | m_RemovedComponents: 1905 | - {fileID: 3397899325613547977, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1906 | - {fileID: 3397899325613547976, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1907 | - {fileID: 2343436093487775180, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1908 | - {fileID: 7829189118973858816, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1909 | - {fileID: 3397899325613547953, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1910 | - {fileID: 3397899325613547978, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1911 | - {fileID: 3397899325613547979, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1912 | - {fileID: 3397899325613547952, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1913 | m_SourcePrefab: {fileID: 100100000, guid: e784427ae3417ad4c9097c1c9d4b7d35, type: 3} 1914 | -------------------------------------------------------------------------------- /Scenes/Transporters.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c26a29699353e244ba19d4651a51ee8 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Scenes/Transporters/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/LightingData.asset -------------------------------------------------------------------------------- /Scenes/Transporters/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b71bf92534619ce49ab4c35664419051 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-0_comp_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/Lightmap-0_comp_dir.png -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-0_comp_dir.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e710fc40160c414991a6fa87d8e9b30 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-0_comp_light.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/Lightmap-0_comp_light.exr -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-0_comp_light.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d5ef064318bc0e41bede86128380170 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 0 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 6 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-1_comp_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/Lightmap-1_comp_dir.png -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-1_comp_dir.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e166018d686cc2c4389e8899569ec606 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-1_comp_light.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/Lightmap-1_comp_light.exr -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-1_comp_light.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9507c6d3d07fdb04091ccfcd454149e7 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 0 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 6 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-2_comp_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/Lightmap-2_comp_dir.png -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-2_comp_dir.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee6819324ae1b0242b6622aecd111afe 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-2_comp_light.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/Lightmap-2_comp_light.exr -------------------------------------------------------------------------------- /Scenes/Transporters/Lightmap-2_comp_light.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9aa39b170252e514395ead2595d15a72 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 0 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 6 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scenes/Transporters/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/Scenes/Transporters/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Scenes/Transporters/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 102e8a891f82bbb4ca4bb10f0ef028e1 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 1 29 | seamlessCubemap: 1 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 2 35 | aniso: 0 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 2 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 100 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Scripts/Analyze_Specialization.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "# import matplotlib.pyplot as plt\n", 10 | "import numpy as np\n", 11 | "import sys\n", 12 | "\n", 13 | "from mlagents_envs.environment import UnityEnvironment\n", 14 | "from mlagents_envs.side_channel.engine_configuration_channel import EngineConfig, EngineConfigurationChannel\n", 15 | "\n", 16 | "import os\n", 17 | "# print(os.getcwd())\n", 18 | "# print(os.listdir(os.getcwd()))\n", 19 | "import pandas as pd\n", 20 | "\n", 21 | "env_name = \"D:/ml-agents-release-0.15.1/ml-agents-release-0.15.1/ml-agents-envs/Builds/UnityEnvironment\" # Name of the Unity environment binary to launch\n" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 60, 27 | "metadata": {}, 28 | "outputs": [ 29 | { 30 | "ename": "UnityTimeOutException", 31 | "evalue": "The Unity environment took too long to respond. Make sure that :\n\t The environment does not need user interaction to launch\n\t The Agents are linked to the appropriate Brains\n\t The environment and the Python interface have compatible versions.", 32 | "output_type": "error", 33 | "traceback": [ 34 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 35 | "\u001b[1;31mUnityTimeOutException\u001b[0m Traceback (most recent call last)", 36 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mengine_configuration_channel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mEngineConfigurationChannel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0menv\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUnityEnvironment\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile_name\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0menv_name\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mside_channels\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mengine_configuration_channel\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mengine_configuration_channel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_configuration_parameters\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mwidth\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m160\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mheight\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m90\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtime_scale\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtarget_frame_rate\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m2000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0menv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 37 | "\u001b[1;32m~\\Anaconda3\\envs\\ml-agents-2\\lib\\site-packages\\mlagents_envs\\environment.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, file_name, worker_id, base_port, seed, docker_training, no_graphics, timeout_wait, args, side_channels)\u001b[0m\n\u001b[0;32m 141\u001b[0m )\n\u001b[0;32m 142\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 143\u001b[1;33m \u001b[0maca_output\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend_academy_parameters\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrl_init_parameters_in\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 144\u001b[0m \u001b[0maca_params\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0maca_output\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrl_initialization_output\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 145\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mUnityTimeOutException\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 38 | "\u001b[1;32m~\\Anaconda3\\envs\\ml-agents-2\\lib\\site-packages\\mlagents_envs\\environment.py\u001b[0m in \u001b[0;36msend_academy_parameters\u001b[1;34m(self, init_parameters)\u001b[0m\n\u001b[0;32m 556\u001b[0m \u001b[0minputs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUnityInputProto\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 557\u001b[0m \u001b[0minputs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrl_initialization_input\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mCopyFrom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minit_parameters\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 558\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcommunicator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minitialize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 559\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 560\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mstaticmethod\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 39 | "\u001b[1;32m~\\Anaconda3\\envs\\ml-agents-2\\lib\\site-packages\\mlagents_envs\\rpc_communicator.py\u001b[0m in \u001b[0;36minitialize\u001b[1;34m(self, inputs)\u001b[0m\n\u001b[0;32m 96\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 97\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0minitialize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mUnityInputProto\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mUnityOutputProto\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 98\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpoll_for_timeout\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 99\u001b[0m \u001b[0maca_param\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munity_to_external\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparent_conn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munity_output\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 100\u001b[0m \u001b[0mmessage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUnityMessageProto\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 40 | "\u001b[1;32m~\\Anaconda3\\envs\\ml-agents-2\\lib\\site-packages\\mlagents_envs\\rpc_communicator.py\u001b[0m in \u001b[0;36mpoll_for_timeout\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 89\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munity_to_external\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparent_conn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpoll\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtimeout_wait\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 90\u001b[0m raise UnityTimeOutException(\n\u001b[1;32m---> 91\u001b[1;33m \u001b[1;34m\"The Unity environment took too long to respond. Make sure that :\\n\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 92\u001b[0m \u001b[1;34m\"\\t The environment does not need user interaction to launch\\n\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 93\u001b[0m \u001b[1;34m\"\\t The Agents are linked to the appropriate Brains\\n\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 41 | "\u001b[1;31mUnityTimeOutException\u001b[0m: The Unity environment took too long to respond. Make sure that :\n\t The environment does not need user interaction to launch\n\t The Agents are linked to the appropriate Brains\n\t The environment and the Python interface have compatible versions." 42 | ] 43 | } 44 | ], 45 | "source": [ 46 | "engine_configuration_channel = EngineConfigurationChannel()\n", 47 | "env = UnityEnvironment(file_name=env_name, side_channels = [engine_configuration_channel])\n", 48 | "engine_configuration_channel.set_configuration_parameters(width = 2*160, height = 2*90, time_scale = 1, target_frame_rate = 2000)\n", 49 | "env.reset()" 50 | ] 51 | }, 52 | { 53 | "cell_type": "code", 54 | "execution_count": 59, 55 | "metadata": {}, 56 | "outputs": [ 57 | { 58 | "name": "stdout", 59 | "output_type": "stream", 60 | "text": [ 61 | "mode frequencies: [[1001. 0. 0.]\n", 62 | " [1001. 0. 0.]\n", 63 | " [1001. 0. 0.]\n", 64 | " [1001. 0. 0.]]\n" 65 | ] 66 | } 67 | ], 68 | "source": [ 69 | "group_name = env.get_agent_groups()\n", 70 | "mode_freqs = np.zeros((4,3))\n", 71 | "\n", 72 | "\n", 73 | "def tabulate_behavioral_modes():\n", 74 | " for p in range(step_result.n_agents()): #loop over each row INDEX down the obs[2]. The reason were doing this this way is that agent IDs is not necessarily preserved between episodes or time steps\n", 75 | " ID = np.where(onehotID[p,:]==1) #get ID of agent in this row\n", 76 | " item = np.where(item_carried[p,:] ==1) #get Item carried of agent in this row\n", 77 | "# print(\"ID\" + str(ID) + \"item\" + str(item))\n", 78 | " mode_freqs[ID, item] += 1\n", 79 | "\n", 80 | "for d in range(1000):\n", 81 | "# action_size = group_spec.action_size\n", 82 | "# branch_sizes = group_spec.discrete_action_branches\n", 83 | " env.step()\n", 84 | " step_result = env.get_step_result(group_name[0])\n", 85 | " \n", 86 | " item_carried = step_result.obs[2][:,3:6] \n", 87 | " onehotID = step_result.obs[2][:,6:10]\n", 88 | " tabulate_behavioral_modes()\n", 89 | " \n", 90 | "# print(str(d) + ' ' + str(step_result.agent_id[:]))\n", 91 | "# done = step_result.done[0]\n", 92 | "\n", 93 | "print(\"mode frequencies: {}\".format(mode_freqs))" 94 | ] 95 | }, 96 | { 97 | "cell_type": "markdown", 98 | "metadata": {}, 99 | "source": [ 100 | "step_result = env.get_step_result(group_name[0])\n", 101 | "\n", 102 | "obs = step_result.obs[2][:,3:6]\n", 103 | "onehotID = step_result.obs[2][:,6:10]\n", 104 | "\n", 105 | "p=1\n", 106 | "np.where(onehotID[p,:]==2)" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 46, 112 | "metadata": {}, 113 | "outputs": [], 114 | "source": [ 115 | "step_result = env.get_step_result(group_name[0])\n", 116 | "\n", 117 | "item_carried = step_result.obs[2][:,3:6] \n", 118 | "onehotID = step_result.obs[2][:,6:10]\n", 119 | "def tabulate_behavioral_modes():\n", 120 | " for p in range(onehotID.shape[0]): #loop over each row INDEX down the obs[2]. The reason were doing this this way is that agent IDs is not necessarily preserved between episodes or time steps\n", 121 | " ID = np.where(onehotID[p,:]==1) #get ID of agent in this row\n", 122 | " item = np.where(item_carried[p,:] ==1) #get Item carried of agent in this row\n", 123 | " mode_freqs[ID, item] += 1\n", 124 | " return mode_freqs\n", 125 | "# print(mode_freqs)" 126 | ] 127 | }, 128 | { 129 | "cell_type": "code", 130 | "execution_count": null, 131 | "metadata": {}, 132 | "outputs": [], 133 | "source": [ 134 | "env.close()" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 64, 140 | "metadata": {}, 141 | "outputs": [ 142 | { 143 | "name": "stdout", 144 | "output_type": "stream", 145 | "text": [ 146 | "3 1616.0\n", 147 | "4 1050.0\n", 148 | "5 1346.0\n", 149 | "dtype: float64\n", 150 | "[1616. 1050. 1346.]\n" 151 | ] 152 | } 153 | ], 154 | "source": [ 155 | "import pandas as pd\n", 156 | "import numpy as np\n", 157 | "# from sklearn.decomposition import PCA\n", 158 | "# \n", 159 | "df_p = pd.read_csv(\"TAgent_1.csv\", sep=',', header = None, engine='python')\n", 160 | "print(df_p.loc[:,3:5].sum(axis = 0))\n", 161 | "p_data = np.array(df_p)\n", 162 | "print(p_data[:,3:6].sum(axis = 0))\n", 163 | "# print(p_data)\n" 164 | ] 165 | } 166 | ], 167 | "metadata": { 168 | "kernelspec": { 169 | "display_name": "Python 3", 170 | "language": "python", 171 | "name": "python3" 172 | }, 173 | "language_info": { 174 | "codemirror_mode": { 175 | "name": "ipython", 176 | "version": 3 177 | }, 178 | "file_extension": ".py", 179 | "mimetype": "text/x-python", 180 | "name": "python", 181 | "nbconvert_exporter": "python", 182 | "pygments_lexer": "ipython3", 183 | "version": "3.7.7" 184 | } 185 | }, 186 | "nbformat": 4, 187 | "nbformat_minor": 4 188 | } 189 | -------------------------------------------------------------------------------- /Scripts/Analyze_transporter_output.m: -------------------------------------------------------------------------------- 1 | %% perform chi2 test of contigency with the null hypothesis that agent ID and the number of timesteps doing each of the three behavioral modes are independent 2 | mf=csvread('mode_freq_episode.csv'); 3 | % mf=csvread('mode_freq_episode_agent0.csv'); 4 | % mf=csvread('mode_freq_episode_agent1.csv'); 5 | % mf=csvread('mode_freq_episode_agent0_set2.csv'); 6 | 7 | total = sum(mf(:)); 8 | marginalP_col = sum(mf,1)/total; 9 | marginalP_row = sum(mf,2)/total; 10 | 11 | [XX, YY] = meshgrid(marginalP_col, marginalP_row); 12 | expected = XX.*YY*total; 13 | chi2 = sum(sum((mf-expected).^2./expected)) 14 | df = (size(mf,1)-1)*(size(mf,2)-1)%degrees of freedom 15 | 16 | imagesc((mf-expected).^1./expected) 17 | % sd = (mf-expected).^1./expected; 18 | sd0 = (mf-expected).^1./expected; 19 | % sd1 = (mf-expected).^1./expected; 20 | %% 3d bar 21 | colormap jet 22 | figure(3) 23 | bar(sd1, 'grouped') 24 | % alpha(0.4) 25 | xlabel('Agent ID', 'fontsize', 14); ylabel('$\frac{f_o - f_e}{f_e}$', 'interpreter', 'latex', 'fontsize', 25) 26 | legend('item carried = 0', 'item carried = 1', 'item carried = 2', 'fontsize', 10) 27 | ylim([-0.04, 0.04]) 28 | % title('All IDs = 0') 29 | title('All Unique IDs') 30 | 31 | 32 | %% look at sum of rewards 33 | 34 | % R=csvread('episode_rewards.csv'); 35 | % R0=csvread('episode_rewards_agent0.csv'); 36 | % R1=csvread('episode_rewards_agent1.csv'); 37 | % Remove episodes where they got stuck in all itemcarried=1 38 | Rgood=R(R(:, 2)>21,2); 39 | R1good=R1(R1(:, 2)>21,2); 40 | R0good=R0(R0(:, 2)>21,2); 41 | 42 | %do a t test comparing the distributions 43 | mean(Rgood) 44 | mean(R0good) 45 | mean(R1good) 46 | 47 | boxplot([Rgood(1:226), R0good(1:226), R1good(1:226)],'orientation', 'horizontal','labels',{'unique IDs', 'IDs = 0', 'IDs = 1'}) 48 | xlabel('Episode-wise Total Cumulative Reward', 'fontsize', 14) 49 | % histogram(Rgood,30) 50 | %% plot mode tracks 51 | tracks=csvread('mode_tracks_uniqueID.csv'); 52 | T= length(tracks); 53 | 54 | % scatter(tracks(:,1), 0*ones(T,1), 30, tracks(:, 2), 's'); hold on 55 | % scatter(tracks(:,1), 1*ones(T,1), 30, tracks(:, 3), 's'); 56 | % scatter(tracks(:,1), 2*ones(T,1), 30, tracks(:, 4), 's'); 57 | 58 | imagesc(tracks(:,2:end)') 59 | colormap jet 60 | title('Behavioral mode of each Agent over time', 'fontsize', 14) 61 | 62 | xlabel('frame number', 'fontsize', 14) 63 | ylabel('Agent ID', 'fontsize', 14) 64 | %% scaling experiment 65 | R=csvread('episode_rewards_Nagents_16.csv'); %inspect values and get threshhold 66 | histogram(R(:,2),13) 67 | Rgood=R(R(:, 2)>0,2); 68 | %% 69 | RoN(4,:) = [16, mean(Rgood), std(Rgood), length(Rgood)] %[nagents, mean std, number of good episodes] 70 | %% plot 71 | subplot(1,2,2) 72 | errorbar(RoN(:,1), RoN(:,2)./RoN(:,1), (RoN(:,3)./sqrt(RoN(:,4))./RoN(:,1)), 'k-o') 73 | xlim([0, 18]) 74 | xlabel('Group Size', 'fontsize', 14) 75 | ylabel('Mean Cumulative reward per-capita', 'fontsize', 14) 76 | subplot(1,2,1) 77 | errorbar(RoN(:,1), RoN(:,2), RoN(:,3)./sqrt(RoN(:,4)), 'k-o') 78 | xlim([0, 18]) 79 | xlabel('Group Size', 'fontsize', 14) 80 | ylabel('Mean Cumulative reward', 'fontsize', 14) -------------------------------------------------------------------------------- /Scripts/Transporter_Arena.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using TMPro; 5 | using System; 6 | using System.Linq; 7 | using System.IO; 8 | using MLAgents; 9 | using MLAgents.Sensors; 10 | 11 | public class Transporter_Arena : MonoBehaviour 12 | { 13 | public Transporter_agent agent_p; 14 | // public Tball tball; 15 | public GameObject spawnbox; 16 | public GameObject sinkbox; 17 | public TextMeshPro cumulative_R; 18 | public TextMeshPro timeText; 19 | public TextMeshPro EpisodeText; 20 | public int NumberAgents; 21 | float[,] mode_freqs = new float[4,3]; //first index is agent id and second is counts(must be as floats for writecsv function) of the number of steps they were in a certain state namely item-carried = 0,1,2 22 | 23 | bool record_mode_tracks = false; 24 | bool write_mode_freqs = false; 25 | bool write_rewards = false; 26 | 27 | 28 | string filename_modefreq = "D:/Unity/Transporters/mode_freq_episode_toss.csv"; 29 | string filename_rewards = "D:/Unity/Transporters/episode_rewards_Nagents_16.csv"; 30 | string filename_modetrack = "D:/Unity/Transporters/mode_tracks_uniqueID.csv"; 31 | 32 | 33 | 34 | private void Start() 35 | { 36 | // WriteArrayToCSV(agent_p.mode_freqs, filename); 37 | ResetArea(); 38 | // List A = new List(); // for a potentially quicker fix just write each row separately and attach the id number to the right side. 39 | 40 | } 41 | 42 | 43 | public void ResetArea() 44 | { 45 | PlaceAgents(); 46 | ClearObjects(GameObject.FindGameObjectsWithTag("Sphere")); 47 | ClearObjects(GameObject.FindGameObjectsWithTag("Sphere1")); 48 | } 49 | 50 | void ClearObjects(GameObject[] objects) 51 | { 52 | foreach (var j in objects) 53 | { 54 | Destroy(j); 55 | } 56 | } 57 | 58 | 59 | public void UpdateAgentProperties() 60 | { 61 | GameObject[] agents = GameObject.FindGameObjectsWithTag("agent"); 62 | foreach (GameObject p in agents) 63 | { 64 | if (p.GetComponent().has_passed == 1) 65 | { 66 | p.GetComponent().has_passed = 0; 67 | p.GetComponent().item_carried = 0; 68 | } 69 | else if (p.GetComponent().has_received == 1) 70 | { 71 | p.GetComponent().has_received = 0; 72 | p.GetComponent().item_carried = 2; 73 | } 74 | 75 | CheckViolations(p); 76 | //INCREMENT COUNTS based on the state the agents are in this frame: 77 | mode_freqs[p.GetComponent().ID, p.GetComponent().item_carried] += 1f; //record data on each agent! 78 | 79 | } 80 | 81 | } 82 | 83 | public void CheckViolations(GameObject p) 84 | { 85 | if (Vector3.Angle(Vector3.up, p.GetComponent().up) > 20f)//((Math.Abs(p.GetComponent().up.x) > 0.1f) | (Math.Abs(p.GetComponent().up.z) > 0.1f)) 86 | { 87 | // Debug.Log(p.GetComponent().forward); 88 | p.GetComponent().LookAt(new Vector3(p.GetComponent().forward.x, 0, p.GetComponent().forward.z), Vector3.up); 89 | } 90 | // else if (p.GetComponent().childCount > 3) 91 | // { 92 | // // Debug.Log("too many balls carried.." + p.GetComponent().childCount.ToString()); 93 | // p.GetComponent().OnEpisodeBegin(); 94 | // // 95 | // } 96 | 97 | } 98 | 99 | private void FixedUpdate() 100 | { 101 | float tt = Time.fixedTime; 102 | // Update the cumulative reward text 103 | // GameObject[] agents = GameObject.FindGameObjectsWithTag("agent"); 104 | // float cum_R = 0; 105 | // foreach (GameObject p in agents) 106 | // { 107 | // cum_R += p.GetComponent().GetCumulativeReward(); 108 | 109 | // } 110 | // Debug.Log(cum_R); 111 | // cumulative_R.text = agent_p.GetCumulativeReward().ToString("0.0"); 112 | // cumulative_R.text = cum_R.ToString("0.00"); 113 | 114 | timeText.text = "Steps: " + Academy.Instance.StepCount.ToString("0"); //STEPS 115 | EpisodeText.text = "Episode: " + Math.Floor((double)Academy.Instance.TotalStepCount / agent_p.GetComponent().maxStep).ToString("0"); //episode counter 116 | // timeText.text = agent_p.StepCount.ToString("0"); 117 | // timeText.text =tt.ToString("0.0"); 118 | UpdateAgentProperties(); 119 | 120 | 121 | // write data to csv: 122 | if ((Academy.Instance.StepCount + 1) % agent_p.GetComponent().maxStep == 0) //(the "+1" and the parentheses are both important. you will get a cum_R=0 without +1 (we evaluate rewards at the last step before the episodes resets. +0 would mean the first step of new episode) 123 | { 124 | // Debug.Log("Writing to CSV: " + string.Join(",", mode_freqs)); 125 | if (write_mode_freqs) 126 | { 127 | WriteArrayToCSV(mode_freqs, filename_modefreq, false); 128 | } 129 | 130 | if (write_rewards) 131 | { 132 | GameObject[] agents = GameObject.FindGameObjectsWithTag("agent"); 133 | float cum_R = 0; 134 | foreach (GameObject p in agents) 135 | { 136 | cum_R += p.GetComponent().GetCumulativeReward(); 137 | // Debug.Log(cum_R); 138 | } 139 | float[,] episode_data = new float[1,2] {{Convert.ToSingle(Math.Floor((double)Academy.Instance.TotalStepCount / agent_p.GetComponent().maxStep)), cum_R}}; //episode number, cumulative reward of all agents this episode 140 | WriteArrayToCSV(episode_data, filename_rewards, true); 141 | } 142 | } 143 | 144 | if (record_mode_tracks) 145 | { 146 | GameObject[] agents = GameObject.FindGameObjectsWithTag("agent"); 147 | float[,] items_carried_by_agents = new float[1,1 + agents.GetLength(0)]; 148 | items_carried_by_agents[0,0] = (float)Academy.Instance.StepCount; 149 | foreach (GameObject p in agents) 150 | { 151 | items_carried_by_agents[0, p.GetComponent().ID + 1] = p.GetComponent().item_carried; //[stepcount, item carried by agent 0, by 1, by 2, ...] 152 | } 153 | WriteArrayToCSV(items_carried_by_agents, filename_modetrack, true); 154 | } 155 | 156 | 157 | } 158 | 159 | public void PlaceAgents() 160 | { 161 | GameObject[] agents = GameObject.FindGameObjectsWithTag("agent"); 162 | foreach (GameObject p in agents) 163 | { 164 | p.transform.SetParent(transform); 165 | p.transform.position = new Vector3(UnityEngine.Random.Range(-20, 20), 0.5f, UnityEngine.Random.Range(-20, 20)); 166 | p.transform.rotation = Quaternion.Euler(new Vector3(0f, UnityEngine.Random.Range(0, 360), 0f)); 167 | // Debug.Log("placed agents"); 168 | } 169 | 170 | } 171 | 172 | public void WriteArrayToCSV(float[,] data, string file, bool append) 173 | { 174 | if (append) 175 | { 176 | // string filename = "D:/ml-agents-release-0.15.1/ml-agents-release-0.15.1/Project/Assets/ML-Agents/Examples/Thermoregulators/extracted_data/group_mean_Tp_RTg_2.csv"; 177 | using (var writer = new StreamWriter(file, append: true)) 178 | { 179 | for (int i = 0; i < data.GetLength(0); i++) 180 | { 181 | IEnumerable row = ExtractRow(data, i); //get Enumerator representing/generating the ith row 182 | float[] rowarray = row.Cast().ToArray(); // cast it as an array of ints 183 | string row_string = string.Join(",", rowarray); //convert array to string separated by commas 184 | writer.WriteLine(row_string); //write each line to csv 185 | } 186 | 187 | } 188 | } 189 | else 190 | { 191 | using (var writer = new StreamWriter(file)) 192 | { 193 | for (int i = 0; i < data.GetLength(0); i++) 194 | { 195 | IEnumerable row = ExtractRow(data, i); //get Enumerator representing/generating the ith row 196 | float[] rowarray = row.Cast().ToArray(); // cast it as an array of ints 197 | string row_string = string.Join(",", rowarray); //convert array to string separated by commas 198 | writer.WriteLine(row_string); //write each line to csv 199 | } 200 | 201 | } 202 | 203 | } 204 | } 205 | 206 | public static IEnumerable ExtractRow(float[,] array, int row) //this is an extention method 207 | { 208 | for (var i = 0; i < array.GetLength(1); i++) 209 | { 210 | yield return array[row, i]; 211 | } 212 | } 213 | } 214 | 215 | //make a section using EndEpisode() when only green balls captured -------------------------------------------------------------------------------- /Scripts/Transporter_Arena.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: caef41b72774f8f459ad1cdf86984f1a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Transporter_agent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using MLAgents.Sensors; 5 | using MLAgents; 6 | using System.Linq; 7 | using System.IO; 8 | 9 | public class Transporter_agent : Agent 10 | { 11 | 12 | Rigidbody rb; 13 | public float RotationRate; 14 | public float speed; 15 | public int ID; 16 | 17 | 18 | private Transporter_Arena transporter_arena;//since this is the parent object it cant be linked in as a private var 19 | public GameObject Sphere; 20 | public GameObject Sphere1; 21 | [HideInInspector] 22 | public int item_carried = 0;//0,1,2 23 | public int has_passed = 0;//0,1,2 24 | public int has_received = 0; 25 | 26 | 27 | // public int[] mode_freqs = new int[4] {0,0,0,0}; //the code breaks unless this variable is private! 28 | 29 | 30 | public override void Initialize() 31 | { 32 | base.Initialize(); 33 | rb = GetComponent(); 34 | transporter_arena = GetComponentInParent(); 35 | // mode_freqs[0] = ID; 36 | // Debug.Log(mode_freqs[0].ToString()); 37 | 38 | } 39 | 40 | // // Update is called once per frame 41 | // void FixedUpdate() //it doesnt seem possible to pull in data from the sensor components. specifically the raycast. unity may fix later 42 | // { 43 | // // if (Academy.Instance.StepCount % 10 == 0) 44 | // // { 45 | // // mode_freqs[item_carried + 1] = mode_freqs[item_carried + 1] + 1; 46 | 47 | // // // Debug.Log(string.Join(",", mode_freqs)); 48 | // // } 49 | 50 | // // if (Academy.Instance.StepCount % maxStep == 0) //(Academy.Instance.EpisodeCount == nextEpisodeID) 51 | // // { 52 | // // Debug.Log("Writing to CSV: " + string.Join(",", mode_freqs)); 53 | // // WriteArrayToCSV(mode_freqs, filename); 54 | 55 | // // // Debug.Log("episodecount: " + Academy.Instance.EpisodeCount.ToString() + " nextID:" + nextEpisodeID.ToString()); // THe episodecount doenst appear to increase? 56 | // // // nextEpisodeID +=1; 57 | // // } 58 | // } 59 | 60 | public override void CollectObservations(VectorSensor sensor) 61 | { 62 | sensor.AddObservation(transform.forward); 63 | sensor.AddOneHotObservation((int)item_carried, 3); 64 | sensor.AddOneHotObservation(ID, 6); //"ID" can be changed to a specific value e.g 1 to force all agents to act like agent 1. 65 | } 66 | 67 | public override void OnActionReceived(float[] vectorAction) 68 | { 69 | var forward_amount = vectorAction[0]; 70 | var rotationAxis = (int)vectorAction[1]; 71 | var rot_dir = Vector3.zero; 72 | 73 | 74 | switch (rotationAxis) 75 | { 76 | case 1: 77 | rot_dir = Vector3.up*1f; 78 | break; 79 | 80 | case 2: 81 | rot_dir = Vector3.up*-1f; 82 | break; 83 | } 84 | 85 | transform.Rotate(rot_dir, RotationRate * Time.fixedDeltaTime, Space.Self); 86 | rb.MovePosition(transform.position + transform.forward * forward_amount * speed * Time.fixedDeltaTime); 87 | 88 | AddReward(-1f / maxStep); 89 | 90 | // if (transform.childCount > 4) 91 | // { 92 | // Debug.Log("Attempting destroy - onactionreceived" + transform.childCount.ToString() + " ID: " + ID.ToString()); //the issue is once the item carried changes in the first contacting agent, the second if statement cant be triggered in the contacted agent! 93 | 94 | // } 95 | 96 | } 97 | 98 | private void OnCollisionEnter(Collision collision) 99 | { 100 | // Debug.Log("transformpos : " + transform.rotation.x.ToString("0.0 ") + transform.rotation.y.ToString("0.0 ") + transform.rotation.z.ToString("0.0 ")); 101 | 102 | 103 | if ((collision.transform.CompareTag("spawn_box"))&(item_carried == 0)) 104 | { 105 | item_carried = 1; 106 | AddReward(1); 107 | if (transform.childCount == 3 ) 108 | { 109 | // Debug.Log("Attempting instant - hit spawnbox"); //the issue is once the item carried changes in the first contacting agent, the second if statement cant be triggered in the contacted agent! 110 | // Destroy(gameObject.transform.GetChild(3).gameObject); 111 | // ClearExtraBalls(); 112 | GameObject myball = Instantiate(Sphere, transform.position + Vector3.up * 3f, Quaternion.Euler(0,0,0), transform); 113 | } 114 | // NOTE the upper ray cast offset (3) is with respect to the agent position. so must instantiate the sphere at Vector3.up * 3f 115 | } 116 | else if ((collision.transform.CompareTag("sink_box"))&(item_carried == 2)) 117 | { 118 | item_carried = 0; 119 | AddReward(1); 120 | // Debug.Log("Attempting destroy 2"); 121 | if (transform.childCount == 4) 122 | { 123 | // Debug.Log("Attempting destroy - hit sinkbox"); //the issue is once the item carried changes in the first contacting agent, the second if statement cant be triggered in the contacted agent! 124 | Destroy(gameObject.transform.GetChild(3).gameObject); 125 | // ClearExtraBalls(); 126 | } 127 | } 128 | else if (collision.transform.CompareTag("agent")) 129 | { 130 | 131 | if ((item_carried == 1)&(collision.gameObject.GetComponent().item_carried == 0)) 132 | { 133 | 134 | AddReward(1); 135 | if (transform.childCount == 4) 136 | { 137 | // Debug.Log("Attempting destroy - passing to agent"); //the issue is once the item carried changes in the first contacting agent, the second if statement cant be triggered in the contacted agent! 138 | Destroy(gameObject.transform.GetChild(3).gameObject); 139 | // ClearExtraBalls(); 140 | } 141 | has_passed = 1; //placeholder indicator which will be corrected to 1 after other agents are updated 142 | // item_carried = 0; 143 | 144 | } 145 | else if ((item_carried == 0)&(collision.gameObject.GetComponent().item_carried == 1)) 146 | { 147 | 148 | AddReward(1); 149 | // Debug.Log("Attempting intant 1"); 150 | if (transform.childCount == 3) 151 | { 152 | // Debug.Log("Attempting instant - received ball"); //the issue is once the item carried changes in the first contacting agent, the second if statement cant be triggered in the contacted agent! 153 | // ClearExtraBalls(); 154 | 155 | GameObject myball = Instantiate(Sphere1, transform.position + Vector3.up * 3f, Quaternion.Euler(0,0,0), transform); 156 | } 157 | has_received = 1; 158 | // item_carried = 2; 159 | } 160 | } 161 | } 162 | 163 | // IEnumerator wait_to_update() 164 | // { 165 | // //Print the time of when the function is first called. 166 | // Debug.Log("Started Coroutine at timestamp : " + Time.time); 167 | 168 | // //yield on a new YieldInstruction that waits for 5 seconds. 169 | // yield return new WaitForSeconds(1f); 170 | 171 | // //After we have waited 5 seconds print the time again. 172 | // Debug.Log("Finished Coroutine at timestamp : " + Time.time); 173 | // } 174 | 175 | public override float[] Heuristic() 176 | { 177 | var useraction = new float[2]; 178 | // useraction should be all zero by default? 179 | if (Input.GetKey(KeyCode.UpArrow)) 180 | { 181 | useraction[0] = 1f; 182 | } 183 | if (Input.GetKey(KeyCode.RightArrow)) 184 | { 185 | useraction[1] = 1f; //clockwise rotation 186 | } 187 | if (Input.GetKey(KeyCode.LeftArrow)) 188 | { 189 | useraction[1] = 2f;//counterclock rot 190 | } 191 | return useraction; 192 | } 193 | 194 | public override void OnEpisodeBegin() //remember to reset any properties that need to be reset at episode start. any agent variables or states? 195 | { 196 | // transporter_arena.ResetArea(); 197 | int children = transform.childCount; 198 | if (children > 3) 199 | { 200 | // Debug.Log("on episode begin childcount " + transform.childCount.ToString()); 201 | ClearExtraBalls(); 202 | // Destroy(gameObject.transform.GetChild(3).gameObject); 203 | } 204 | // Destroy(gameObject); 205 | item_carried = 0;//0,1,2 206 | has_passed = 0;//0,1,2 207 | has_received = 0; 208 | rb.angularVelocity = Vector3.zero; 209 | transform.rotation = Quaternion.Euler(new Vector3(0f, UnityEngine.Random.Range(0, 360), 0f)); 210 | transform.position = new Vector3(UnityEngine.Random.Range(-20, 20), 0.5f, UnityEngine.Random.Range(-20, 20)); 211 | 212 | // GetComponentInParent().WriteArrayToCSV(mode_freqs, filename); 213 | // if (ID == 0) 214 | // { 215 | // WriteArrayToCSV(mode_freqs, filename); 216 | // } 217 | } 218 | 219 | public void ClearExtraBalls() 220 | { 221 | // Debug.Log(transform.childCount); 222 | int i = 0; 223 | int N_children = transform.childCount; 224 | //Array to hold all child obj 225 | GameObject[] Children = new GameObject[transform.childCount]; //at least 1 226 | 227 | //Find all child obj and store to that array 228 | foreach (Transform child in transform) 229 | { 230 | Children[i] = child.gameObject; 231 | i += 1; 232 | } 233 | 234 | //Now destroy them 235 | // foreach (GameObject child in Children) 236 | // { 237 | // DestroyImmediate(child.gameObject); 238 | // } 239 | for (int j=3; j in the train command 30 | //(Optional) is the name (including path) of your Unity executable containing the agents to be trained. If is not passed, the training will happen in the Editor (press play) 31 | 32 | cd D:\ml-agents-master\ml-agents-master\ 33 | 34 | mlagents-learn config/trainer_config.yaml --curriculum config/curricula/penguin.yaml --run-id name --train 35 | //for hallway 36 | mlagents-learn config/trainer_config.yaml --run-id name --train 37 | 38 | // tensorboard. while training run: 39 | tensorboard --logdir=D:\ml-agents-master\ml-agents-master\summaries --port 6006 40 | 41 | -------------------------------------------------------------------------------- /TFModels/Transporter_behavior_1.nn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/TFModels/Transporter_behavior_1.nn -------------------------------------------------------------------------------- /TFModels/Transporter_behavior_1.nn.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75d67b0d047c35749a27d8741f6b7a2b 3 | ScriptedImporter: 4 | fileIDToRecycleName: 5 | 11400000: main obj 6 | 11400002: model data 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3} 12 | -------------------------------------------------------------------------------- /TFModels/Transporter_behavior_2.nn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/M-Lin-DM/Multi-Agent-Transporters/148ca06488514c265105423b280d046ea8bf18fe/TFModels/Transporter_behavior_2.nn -------------------------------------------------------------------------------- /TFModels/Transporter_behavior_2.nn.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31c27fed551b7e54786a4b80af1e36eb 3 | ScriptedImporter: 4 | fileIDToRecycleName: 5 | 11400000: main obj 6 | 11400002: model data 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3} 12 | --------------------------------------------------------------------------------