浏览代码

Merge branch 'develop-contentropy' into develop-torch-clip

/develop/torch-clip-scale
Ervin Teng 4 年前
当前提交
66f3d2ad
共有 23 个文件被更改,包括 3284 次插入99 次删除
  1. 10
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/Match3Heuristic.prefab
  2. 14
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/Match3VectorObs.prefab
  3. 14
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/Match3VisualObs.prefab
  4. 695
      Project/Assets/ML-Agents/Examples/Match3/Scenes/Match3.unity
  5. 113
      Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3Drawer.cs
  6. 5
      Project/Assets/ML-Agents/Examples/SharedAssets/Materials/Purple.mat
  7. 1
      com.unity.ml-agents.extensions/Documentation~/Match3.md
  8. 6
      ml-agents/mlagents/trainers/torch/distributions.py
  9. 8
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX.meta
  10. 8
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/Tiles.meta
  11. 57
      Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3TileSelector.cs
  12. 11
      Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3TileSelector.cs.meta
  13. 81
      Project/Assets/ML-Agents/Examples/SharedAssets/Materials/LightGrey.mat
  14. 8
      Project/Assets/ML-Agents/Examples/SharedAssets/Materials/LightGrey.mat.meta
  15. 1001
      com.unity.ml-agents.extensions/Documentation~/images/match3.png
  16. 45
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/3.fbx
  17. 97
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/3.fbx.meta
  18. 104
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/Match.fbx
  19. 97
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/Match.fbx.meta
  20. 1001
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/Tiles/TILE_Base.prefab
  21. 7
      Project/Assets/ML-Agents/Examples/Match3/Prefabs/Tiles/TILE_Base.prefab.meta

10
Project/Assets/ML-Agents/Examples/Match3/Prefabs/Match3Heuristic.prefab


Board: {fileID: 0}
MoveTime: 0.25
MaxMoves: 500
UseSmartHeuristic: 1
HeuristicQuality: 0
--- !u!114 &3508723250470608011
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: abebb7ad4a5547d7a3b04373784ff195, type: 3}
m_Name:
m_EditorClassIdentifier:
DebugEdgeIndex: -1
DebugMoveIndex: -1
CubeSpacing: 1.25
Board: {fileID: 0}
TilePrefab: {fileID: 4007900521885639951, guid: faee4e805953b49e688bd00b45c55f2e,
type: 3}
--- !u!114 &3508723250470608009
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 08e4b0da54cb4d56bfcbae22dd49ab8d, type: 3}
m_Name:
m_EditorClassIdentifier:
ActuatorName: Match3 Actuator
ForceHeuristic: 1
--- !u!114 &3508723250470608014
MonoBehaviour:

m_Script: {fileID: 11500000, guid: 530d2f105aa145bd8a00e021bdd925fd, type: 3}
m_Name:
m_EditorClassIdentifier:
SensorName: Match3 Sensor
ObservationType: 0
--- !u!1 &3508723250774301855
GameObject:

14
Project/Assets/ML-Agents/Examples/Match3/Prefabs/Match3VectorObs.prefab


Board: {fileID: 0}
MoveTime: 0.25
MaxMoves: 500
HeuristicQuality: 0
--- !u!114 &2118285884327540685
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: abebb7ad4a5547d7a3b04373784ff195, type: 3}
m_Name:
m_EditorClassIdentifier:
DebugEdgeIndex: -1
DebugMoveIndex: -1
CubeSpacing: 1.25
Board: {fileID: 0}
TilePrefab: {fileID: 4007900521885639951, guid: faee4e805953b49e688bd00b45c55f2e,
type: 3}
--- !u!114 &2118285884327540687
MonoBehaviour:
m_ObjectHideFlags: 0

NumCellTypes: 6
NumSpecialTypes: 2
RandomSeed: -1
BasicCellPoints: 1
SpecialCell1Points: 2
SpecialCell2Points: 3
--- !u!114 &2118285884327540683
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 08e4b0da54cb4d56bfcbae22dd49ab8d, type: 3}
m_Name:
m_EditorClassIdentifier:
ForceRandom: 0
ActuatorName: Match3 Actuator
ForceHeuristic: 0
--- !u!114 &2118285884327540680
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 530d2f105aa145bd8a00e021bdd925fd, type: 3}
m_Name:
m_EditorClassIdentifier:
SensorName: Match3 Sensor
ObservationType: 0

14
Project/Assets/ML-Agents/Examples/Match3/Prefabs/Match3VisualObs.prefab


Board: {fileID: 0}
MoveTime: 0.25
MaxMoves: 500
HeuristicQuality: 0
--- !u!114 &3019509692332007778
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: abebb7ad4a5547d7a3b04373784ff195, type: 3}
m_Name:
m_EditorClassIdentifier:
DebugEdgeIndex: -1
DebugMoveIndex: -1
CubeSpacing: 1.25
Board: {fileID: 0}
TilePrefab: {fileID: 4007900521885639951, guid: faee4e805953b49e688bd00b45c55f2e,
type: 3}
--- !u!114 &3019509692332007776
MonoBehaviour:
m_ObjectHideFlags: 0

NumCellTypes: 6
NumSpecialTypes: 2
RandomSeed: -1
BasicCellPoints: 1
SpecialCell1Points: 2
SpecialCell2Points: 3
--- !u!114 &3019509692332007780
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 08e4b0da54cb4d56bfcbae22dd49ab8d, type: 3}
m_Name:
m_EditorClassIdentifier:
ForceRandom: 0
ActuatorName: Match3 Actuator
ForceHeuristic: 0
--- !u!114 &3019509692332007783
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 530d2f105aa145bd8a00e021bdd925fd, type: 3}
m_Name:
m_EditorClassIdentifier:
SensorName: Match3 Sensor
ObservationType: 2

695
Project/Assets/ML-Agents/Examples/Match3/Scenes/Match3.unity


m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44657898, g: 0.49641287, b: 0.5748173, a: 1}
m_IndirectSpecularColor: {r: 0.43632728, g: 0.4747097, b: 0.51471573, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_LocalPosition.x
value: 30
value: 60
value: 10
value: 20
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_RootOrder
value: 9
value: 11
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: aaa471bd5e2014848a66917476671aed, type: 3}
--- !u!1 &288081173
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 288081174}
- component: {fileID: 288081177}
- component: {fileID: 288081176}
- component: {fileID: 288081175}
m_Layer: 0
m_Name: Border (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &288081174
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 288081173}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.202, y: 0, z: -0.07999998}
m_LocalScale: {x: 1.0625, y: 0.50279176, z: 1.0649}
m_Children:
- {fileID: 1976481842}
- {fileID: 1670850089}
m_Father: {fileID: 796197232}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &288081175
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 288081173}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &288081176
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 288081173}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &288081177
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 288081173}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &327661542
GameObject:
m_ObjectHideFlags: 0

m_GameObject: {fileID: 327661542}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_ClearFlags: 2
m_BackGroundColor: {r: 0.58746636, g: 0.71687025, b: 0.78431374, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}

near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
orthographic: 1
orthographic size: 6.5
m_Depth: -1
m_CullingMask:
serializedVersion: 2

m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 327661542}
m_LocalRotation: {x: -0.0071871188, y: -0.003003474, z: -0.000021621252, w: 0.9999697}
m_LocalPosition: {x: 18.701, y: 11.390508, z: -33.193497}
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 4.5, y: 5, z: 3.72}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!1001 &416139953
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 288081174}
m_Modifications:
- target: {fileID: 100000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_Name
value: 3
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalPosition.x
value: 0.31264985
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalPosition.y
value: 0.32276452
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalPosition.z
value: 0.33805987
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalRotation.x
value: 0.000000015454312
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalRotation.y
value: 0.00000001545431
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalRotation.z
value: -0.70710677
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071069
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -90.00001
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalScale.x
value: 48.39589
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalScale.y
value: 26.17337
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_LocalScale.z
value: 274.20087
objectReference: {fileID: 0}
- target: {fileID: 2300000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 02d33201e78d54a67ac7b0734cd6d8aa, type: 3}
--- !u!1 &448464282
GameObject:
m_ObjectHideFlags: 0

m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 448464282}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalRotation: {x: 0.99240386, y: -0.0075961384, z: 0.08682413, w: 0.086824216}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 170, y: -10, z: 0}
--- !u!1001 &455966546
PrefabInstance:
m_ObjectHideFlags: 0

propertyPath: m_BehaviorName
value: Match3SimpleHeuristic
objectReference: {fileID: 0}
- target: {fileID: 3508723250470608011, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: cubeSpacing
value: 1.25
objectReference: {fileID: 0}
- target: {fileID: 3508723250470608012, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: UseSmartHeuristic

propertyPath: m_Name
value: Match3SimpleHeuristic (1)
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301855, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
value: 30
value: 60
value: 20
value: 40
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_RootOrder
value: 13
value: 15
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2fafdcd0587684641b03b11f04454f1b, type: 3}
--- !u!1 &519872758
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 519872759}
- component: {fileID: 519872762}
- component: {fileID: 519872761}
- component: {fileID: 519872760}
m_Layer: 0
m_Name: Border
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &519872759
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519872758}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0.07999998}
m_LocalScale: {x: 1.0625, y: 1.0625, z: 1.0649}
m_Children: []
m_Father: {fileID: 796197232}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &519872760
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519872758}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &519872761
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519872758}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &519872762
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519872758}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &607493268
PrefabInstance:
m_ObjectHideFlags: 0

m_Modifications:
- target: {fileID: 3508723250470608010, guid: 2fafdcd0587684641b03b11f04454f1b,
- target: {fileID: 3508723250470608011, guid: 2fafdcd0587684641b03b11f04454f1b,
propertyPath: m_BehaviorName
value: Match3GreedyHeuristic
propertyPath: cubeSpacing
value: 1.25
objectReference: {fileID: 0}
- target: {fileID: 3508723250470608012, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

propertyPath: m_Name
value: Match3GreedyHeuristic
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301855, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_LocalPosition.x

type: 3}
propertyPath: m_LocalPosition.y
value: 20
value: 40
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_RootOrder
value: 10
value: 12
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2fafdcd0587684641b03b11f04454f1b, type: 3}
--- !u!1 &796197228
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 796197232}
- component: {fileID: 796197231}
- component: {fileID: 796197230}
- component: {fileID: 796197229}
m_Layer: 0
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &796197229
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 796197228}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &796197230
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 796197228}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 5c59bd36def9a4684be49a21cf201a2d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &796197231
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 796197228}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &796197232
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 796197228}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 4.4, y: 5, z: -0.5}
m_LocalScale: {x: 10.5, y: 12, z: 1}
m_Children:
- {fileID: 519872759}
- {fileID: 288081174}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &802842869
PrefabInstance:
m_ObjectHideFlags: 0

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_LocalPosition.x
value: 20
value: 40
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_RootOrder
value: 4
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6944ca02359f5427aa13c8551236a824, type: 3}
--- !u!1001 &822340861
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 288081174}
m_Modifications:
- target: {fileID: 100000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_Name
value: Match
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalPosition.x
value: 0.33568624
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalPosition.y
value: -0.09143946
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalPosition.z
value: 0.33805987
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalRotation.x
value: 0.000000015454312
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalRotation.y
value: 0.00000001545431
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalRotation.z
value: -0.70710677
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071069
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -90.00001
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalScale.x
value: 37.38769
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalScale.y
value: 20.219938
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_LocalScale.z
value: 211.83073
objectReference: {fileID: 0}
- target: {fileID: 2300000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6cb02a85514f94d7f8266348b5c021cd, type: 3}
--- !u!1001 &906566489
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1537641056927260, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
propertyPath: m_Name
value: Canvas_Watermark
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
--- !u!1001 &1218183267
PrefabInstance:
m_ObjectHideFlags: 0

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_LocalPosition.x
value: 10
value: 20
value: 10
value: 20
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_RootOrder
value: 7
value: 9
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_LocalPosition.x
value: 10
value: 20
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_RootOrder
value: 3
value: 5
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

propertyPath: m_BehaviorName
value: Match3SimpleHeuristic
objectReference: {fileID: 0}
- target: {fileID: 3508723250470608011, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: cubeSpacing
value: 1.25
objectReference: {fileID: 0}
- target: {fileID: 3508723250470608012, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: UseSmartHeuristic

propertyPath: m_Name
value: Match3SimpleHeuristic
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301855, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
value: 20
value: 40
value: 20
value: 40
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_RootOrder
value: 12
value: 14
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2fafdcd0587684641b03b11f04454f1b, type: 3}
--- !u!4 &1670850089 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 400000, guid: 02d33201e78d54a67ac7b0734cd6d8aa,
type: 3}
m_PrefabInstance: {fileID: 416139953}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1765917346
PrefabInstance:
m_ObjectHideFlags: 0

m_Modifications:
- target: {fileID: 3508723250470608010, guid: 2fafdcd0587684641b03b11f04454f1b,
- target: {fileID: 3508723250470608011, guid: 2fafdcd0587684641b03b11f04454f1b,
propertyPath: m_BehaviorName
value: Match3GreedyHeuristic
propertyPath: cubeSpacing
value: 1.25
objectReference: {fileID: 0}
- target: {fileID: 3508723250470608012, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

propertyPath: m_Name
value: Match3GreedyHeuristic (1)
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301855, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
value: 10
value: 20
value: 20
value: 40
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}
propertyPath: m_RootOrder
value: 11
value: 13
objectReference: {fileID: 0}
- target: {fileID: 3508723250774301920, guid: 2fafdcd0587684641b03b11f04454f1b,
type: 3}

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_LocalPosition.x
value: 30
value: 60
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_RootOrder
value: 5
value: 7
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6944ca02359f5427aa13c8551236a824, type: 3}
--- !u!4 &1976481842 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 400000, guid: 6cb02a85514f94d7f8266348b5c021cd,
type: 3}
m_PrefabInstance: {fileID: 822340861}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2112980636
PrefabInstance:
m_ObjectHideFlags: 0

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_LocalPosition.x
value: 20
value: 40
value: 10
value: 20
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_RootOrder
value: 8
value: 10
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_RootOrder
value: 2
value: 4
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619878, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}

propertyPath: m_Name
value: Match3VectorObs
objectReference: {fileID: 0}
- target: {fileID: 2118285883905619929, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2118285884327540673, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2118285884327540680, guid: 6944ca02359f5427aa13c8551236a824,
type: 3}
propertyPath: UseVectorObservations
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6944ca02359f5427aa13c8551236a824, type: 3}
--- !u!1001 &8113351836286138288

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_LocalPosition.y
value: 10
value: 20
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_RootOrder
value: 6
value: 8
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202569, guid: aaa471bd5e2014848a66917476671aed,
type: 3}

type: 3}
propertyPath: m_Name
value: Match3VisualObs
objectReference: {fileID: 0}
- target: {fileID: 3019509691567202678, guid: aaa471bd5e2014848a66917476671aed,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: aaa471bd5e2014848a66917476671aed, type: 3}

113
Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3Drawer.cs


using System.Collections.Generic;
using UnityEngine;
using Unity.MLAgents.Extensions.Match3;

static Color[] s_Colors = new[]
{
Color.red,
Color.green,
Color.blue,
Color.cyan,
Color.magenta,
Color.yellow,
Color.gray,
Color.black,
Color.red,
Color.green,
Color.blue,
Color.cyan,
Color.magenta,
Color.yellow,
Color.gray,
Color.black,
public Dictionary<(int, int), Match3TileSelector> tilesDict = new Dictionary<(int, int), Match3TileSelector>();
public float CubeSpacing = 1.25f;
public GameObject TilePrefab;
private bool m_Initialized;
private Match3Board m_Board;
void Awake()
{
if (!m_Initialized)
{
InitializeDict();
}
}
void InitializeDict()
{
m_Board = GetComponent<Match3Board>();
foreach (var item in tilesDict)
{
if (item.Value)
{
DestroyImmediate(item.Value.gameObject);
}
}
tilesDict.Clear();
for (var i = 0; i < m_Board.Rows; i++)
{
for (var j = 0; j < m_Board.Columns; j++)
{
var go = Instantiate(TilePrefab, transform.position, Quaternion.identity, transform);
go.name = $"r{i}_c{j}";
tilesDict.Add((i, j), go.GetComponent<Match3TileSelector>());
}
}
m_Initialized = true;
}
void Update()
{
if (!m_Board)
{
m_Board = GetComponent<Match3Board>();
}
if (!m_Initialized)
{
InitializeDict();
}
for (var i = 0; i < m_Board.Rows; i++)
{
for (var j = 0; j < m_Board.Columns; j++)
{
var value = m_Board.Cells != null ? m_Board.GetCellType(i, j) : Match3Board.k_EmptyCell;
var pos = new Vector3(j, i, 0);
pos *= CubeSpacing;
var specialType = m_Board.Cells != null ? m_Board.GetSpecialType(i, j) : 0;
tilesDict[(i, j)].transform.position = transform.TransformPoint(pos);
tilesDict[(i, j)].SetActiveTile(specialType, value);
}
}
}
// TODO replace Gizmos for drawing the game state with proper GameObjects and animations.
var cubeSpacing = .75f;
var matchedWireframeSize = .5f * (cubeSize + cubeSpacing);
var matchedWireframeSize = .5f * (cubeSize + CubeSpacing);
var board = GetComponent<Match3Board>();
if (board == null)
if (!m_Board)
return;
m_Board = GetComponent<Match3Board>();
for (var i = 0; i < board.Rows; i++)
for (var i = 0; i < m_Board.Rows; i++)
for (var j = 0; j < board.Columns; j++)
for (var j = 0; j < m_Board.Columns; j++)
var value = board.Cells != null ? board.GetCellType(i, j) : Match3Board.k_EmptyCell;
var value = m_Board.Cells != null ? m_Board.GetCellType(i, j) : Match3Board.k_EmptyCell;
if (value >= 0 && value < s_Colors.Length)
{
Gizmos.color = s_Colors[value];

}
var pos = new Vector3(j, i, 0);
pos *= cubeSpacing;
pos *= CubeSpacing;
var specialType = board.Cells != null ? board.GetSpecialType(i, j) : 0;
var specialType = m_Board.Cells != null ? m_Board.GetSpecialType(i, j) : 0;
if (specialType == 2)
{
Gizmos.DrawCube(transform.TransformPoint(pos), cubeSize * new Vector3(1f, .5f, .5f));

}
Gizmos.color = Color.yellow;
if (board.Matched != null && board.Matched[j, i])
if (m_Board.Matched != null && m_Board.Matched[j, i])
{
Gizmos.DrawWireCube(transform.TransformPoint(pos), matchedWireframeSize * Vector3.one);
}

// Draw valid moves
foreach (var move in board.AllMoves())
foreach (var move in m_Board.AllMoves())
{
if (DebugMoveIndex >= 0 && move.MoveIndex != DebugMoveIndex)
{

if (!board.IsMoveValid(move))
if (!m_Board.IsMoveValid(move))
var pos = new Vector3(move.Column, move.Row, 0) * cubeSpacing;
var otherPos = new Vector3(otherCol, otherRow, 0) * cubeSpacing;
var pos = new Vector3(move.Column, move.Row, 0) * CubeSpacing;
var otherPos = new Vector3(otherCol, otherRow, 0) * CubeSpacing;
var oneQuarter = Vector3.Lerp(pos, otherPos, .25f);
var threeQuarters = Vector3.Lerp(pos, otherPos, .75f);

5
Project/Assets/ML-Agents/Examples/SharedAssets/Materials/Purple.mat


Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Purple
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF

1
com.unity.ml-agents.extensions/Documentation~/Match3.md


# Match-3 Game Support
We provide some utilities to integrate ML-Agents with Match-3 games.
<img src="images/match3.png" align="middle" width="3000"/>
## AbstractBoard class
The `AbstractBoard` is the bridge between ML-Agents and your game. It allows ML-Agents to

6
ml-agents/mlagents/trainers/torch/distributions.py


return torch.exp(log_prob)
def entropy(self):
return 0.5 * torch.log(2 * math.pi * math.e * self.std + EPSILON)
return torch.mean(
0.5 * torch.log(2 * math.pi * math.e * self.std + EPSILON),
dim=1,
keepdim=True,
) # Use equivalent behavior to TF
class TanhGaussianDistInstance(GaussianDistInstance):

8
Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX.meta


fileFormatVersion: 2
guid: 8efb383f54b1f4f7b96462405d5ae237
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Project/Assets/ML-Agents/Examples/Match3/Prefabs/Tiles.meta


fileFormatVersion: 2
guid: 60b08aed5b3594e3692ec97dd72c0fdb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

57
Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3TileSelector.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Match3TileSelector : MonoBehaviour
{
public GameObject emptyTile;
public GameObject[] tileTypes = new GameObject[0];
public Material[] materialTypes = new Material[0];
private Dictionary<int, MeshRenderer> tileDict = new Dictionary<int, MeshRenderer>();
// Start is called before the first frame update
void Awake()
{
for (int i = 0; i < tileTypes.Length; i++)
{
tileDict.Add(i, tileTypes[i].GetComponent<MeshRenderer>());
}
SetActiveTile(0, 0);
}
public void AllTilesOff()
{
foreach (var item in tileTypes)
{
item.SetActive(false);
}
}
public void SetActiveTile(int typeIndex, int matIndex)
{
if (matIndex == -1)
{
AllTilesOff();
emptyTile.SetActive(true);
return;
}
else
{
emptyTile.SetActive(false);
for (int i = 0; i < tileTypes.Length; i++)
{
if (i == typeIndex)
{
tileTypes[i].SetActive(true);
tileDict[i].sharedMaterial = materialTypes[matIndex];
}
else
{
tileTypes[i].SetActive(false);
}
}
}
}
}

11
Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3TileSelector.cs.meta


fileFormatVersion: 2
guid: 52e0f5ebc9d8f4b3a895401959671896
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

81
Project/Assets/ML-Agents/Examples/SharedAssets/Materials/LightGrey.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LightGrey
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.6, g: 0.6, b: 0.6, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

8
Project/Assets/ML-Agents/Examples/SharedAssets/Materials/LightGrey.mat.meta


fileFormatVersion: 2
guid: 6fdf8e49597ff42648c9e99d7ecfc005
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

1001
com.unity.ml-agents.extensions/Documentation~/images/match3.png
文件差异内容过多而无法显示
查看文件

45
Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/3.fbx


Kaydara FBX Binary �_FBXHeaderExtension\FBXHeaderVersionI�x
FBXVersionI��EncryptionTypeI�CreationTimeStamp�VersionI��YearI��MonthI DayI'HourI?MinuteIWSecondIt MillisecondI1�4CreatorS/Blender (stable FBX IO) - 2.79 (sub 0) - 3.7.13R' SceneInfoSGlobalInfoSceneInfoSUserData$ TypeSUserData=VersionId MetaDatakVersionId�TitleS�SubjectS�AuthorS�KeywordsS�RevisionSCommentSE Properties70m9PS DocumentUrlSKStringSUrlSS /foobar.fbx�<PSSrcDocumentUrlSKStringSUrlSS /foobar.fbx�$PSOriginalSCompoundSSCLPSOriginal|ApplicationVendorSKStringSSSBlender Foundation�OPSOriginal|ApplicationNameSKStringSSSBlender (stable FBX IO)�GPSOriginal|ApplicationVersionSKStringSSS 2.79 (sub 0)PMPSOriginal|DateTime_GMTSDateTimeSSS01/01/1970 00:00:00.000�<PSOriginal|FileNameSKStringSSS /foobar.fbx�%PS LastSavedSCompoundSS(MPSLastSaved|ApplicationVendorSKStringSSSBlender Foundation�PPSLastSaved|ApplicationNameSKStringSSSBlender (stable FBX IO)�HPSLastSaved|ApplicationVersionSKStringSSS 2.79 (sub 0)8NPSLastSaved|DateTime_GMTSDateTimeSSS01/01/1970 00:00:00.000�FileIdR(�*��$�¿Ȱ*�+��� CreationTimeS1970-01-01 10:00:00:0004CreatorS/Blender (stable FBX IO) - 2.79 (sub 0) - 3.7.13� GlobalSettings8VersionI�u Properties70�)PSUpAxisSintSIntegerSI�-PS
UpAxisSignSintSIntegerSI�,PS FrontAxisSintSIntegerSI; 0PS FrontAxisSignSintSIntegerSIu ,PS CoordAxisSintSIntegerSI� 0PS CoordAxisSignSintSIntegerSI� 1PSOriginalUpAxisSintSIntegerSI����5
5PSOriginalUpAxisSignSintSIntegerSI{
8PSUnitScaleFactorSdoubleSNumberSD�?�
@PSOriginalUnitScaleFactorSdoubleSNumberSD�? HPS AmbientColorSColorRGBSColorSDDDn APS DefaultCameraSKStringSSSProducer Perspective� %PSTimeModeSenumSSI � 3PS TimeSpanStartSKTimeSTimeSL" 2PS TimeSpanStopSKTimeSTimeSL����
h 8PSCustomFrameRateSdoubleSNumberSD8@� Documents� CountI� DocumentL��$SSceneSScene| Properties70. &PS SourceObjectSobjectSSo 3PSActiveAnimStackNameSKStringSSS�  RootNodeL�
Referencesd$ Definitions VersionId CountIn
ObjectTypeSGlobalSettingsaCountI�
ObjectTypeSGeometry�CountI� PropertyTemplateSFbxMesh� Properties70:APSColorSColorRGBSColorSD�������?D�������?D�������?�DPSBBoxMinSVector3DSVectorSDDD�DPSBBoxMaxSVector3DSVectorSDDD/PSPrimary VisibilitySboolSSIS*PS Casts ShadowsSboolSSI�,PSReceive ShadowsSboolSSIW$
ObjectTypeSModel�CountIJ$ PropertyTemplateSFbxNode=$ Properties70n2PSQuaternionInterpolateSenumSSI�KPSRotationOffsetSVector3DSVectorSDDDJPS RotationPivotSVector3DSVectorSDDDwJPS ScalingOffsetSVector3DSVectorSDDD�IPS ScalingPivotSVector3DSVectorSDDD
.PSTranslationActiveSboolSSIcKPSTranslationMinSVector3DSVectorSDDD�KPSTranslationMaxSVector3DSVectorSDDD�,PSTranslationMinXSboolSSI0,PSTranslationMinYSboolSSIj,PSTranslationMinZSboolSSI�,PSTranslationMaxXSboolSSI�,PSTranslationMaxYSboolSSI,PSTranslationMaxZSboolSSIP*PS RotationOrderSenumSSI�6PSRotationSpaceForLimitOnlySboolSSI�;PSRotationStiffnessXSdoubleSNumberSD&;PSRotationStiffnessYSdoubleSNumberSDo;PSRotationStiffnessZSdoubleSNumberSD�0PSAxisLenSdoubleSNumberSD$@HPS PreRotationSVector3DSVectorSDDDZIPS PostRotationSVector3DSVectorSDDD�+PSRotationActiveSboolSSI�HPS RotationMinSVector3DSVectorSDDD?HPS RotationMaxSVector3DSVectorSDDDv)PS RotationMinXSboolSSI�)PS RotationMinYSboolSSI�)PS RotationMinZSboolSSI)PS RotationMaxXSboolSSIR)PS RotationMaxYSboolSSI�)PS RotationMaxZSboolSSI�(PS InheritTypeSenumSSI�*PS ScalingActiveSboolSSILGPS
ScalingMinSVector3DSVectorSDDD�GPS
ScalingMaxSVector3DSVectorSD�?D�?D�?�(PS ScalingMinXSboolSSI (PS ScalingMinYSboolSSIC(PS ScalingMinZSboolSSIy(PS ScalingMaxXSboolSSI�(PS ScalingMaxYSboolSSI�(PS ScalingMaxZSboolSSIDQPSGeometricTranslationSVector3DSVectorSDDD�NPSGeometricRotationSVector3DSVectorSDDD�MPSGeometricScalingSVector3DSVectorSD�?D�?D�??6PS MinDampRangeXSdoubleSNumberSD�6PS MinDampRangeYSdoubleSNumberSD�6PS MinDampRangeZSdoubleSNumberSD 6PS MaxDampRangeXSdoubleSNumberSDO6PS MaxDampRangeYSdoubleSNumberSD�6PS MaxDampRangeZSdoubleSNumberSD�9PSMinDampStrengthXSdoubleSNumberSD!9PSMinDampStrengthYSdoubleSNumberSDh9PSMinDampStrengthZSdoubleSNumberSD�9PSMaxDampStrengthXSdoubleSNumberSD�9PSMaxDampStrengthYSdoubleSNumberSD= 9PSMaxDampStrengthZSdoubleSNumberSD� 7PSPreferedAngleXSdoubleSNumberSD� 7PSPreferedAngleYSdoubleSNumberSD !7PSPreferedAngleZSdoubleSNumberSDB!(PSLookAtPropertySobjectSSz!*PSUpVectorPropertySobjectSS�!!PSShowSboolSSI�!8PSNegativePercentShapeSupportSboolSSI5"8PSDefaultAttributeIndexSintSIntegerSI����f"#PSFreezeSboolSSI�"#PSLODBoxSboolSSI�"NPSLcl TranslationSLcl TranslationSSADDDI#HPS Lcl RotationS Lcl RotationSSADDD�#FPS Lcl ScalingS Lcl ScalingSSAD�?D�?D�?�#2PS
VisibilityS
VisibilitySSAD�?0$EPSVisibility InheritanceSVisibility InheritanceSSI%wObjects�t+GeometryL��ZSCUTest.000GeometrySMesh�$ Properties70�$GeometryVersionI|�:�Verticesd, �x��{�Us�Ɨ\NcN���9�q�$"M.i!���� gX�\B��KR��rI�D��U�#]�K�BJ$�(���x1a\�������y���|������z��Y߽������|�A�V��;�նu?�O|�?�Ə�<��ķ�����Ñ�!��5H��ne��� �������������w8�x<�����;��������G� 5<�d$�+���n4���'���x��O���;>�z���=o�����A{Ã=�Lf~���#�J����o8k*{v~fx|@�i�9��F��]7ɿ���z��x:{z-6<=�� �d�7�?�y8�������_�Ŀ�GG�=�<������M�ќ��{�/�#���cxЬ�,�F���h�����'l*�d��jϢA�'��W�{�j˿�L����kz����ͧw5<>�7yz�Dãh3����-���Ղ<�|�{����^|]������7i:��g�~�~����gOAozf����x@�I䯵4<�4e<x�����w��0x��}�-O���� ���y<i������F�O���d]ϻ��U���?w}�$�;'�w6���A�'��_6����#��O2<���\W���w�fx0f� ����-������G6�O�z{������Gsó���0?�PÃw���� ϞX<<m��y~���'�'�vó�[�����-�z�T��:��d�����i� >9gx~�}݃I�f�pk��X5 <�}oÓn>
lx�܇������1<����x|?óF����ocxx�o����z�G�l%�}ټ����G>4��`�R��[;Ó�'O���|d���o�d�,5<�y~� �'�����G�?D��릷�B��q��I�_��+���� �=s��?�g��놣���ujM�����o�YO��||ͫ�gLJ����߶������䳎o[��� <j�yk1����[ex��� ��{D^�'�7z��-�v��3̏H �7��<_<�����'������њ���e_Y��� ��� ����]�?���#ϛE/��M�okxz����:կL�G^lx���c�������Mw�dz�[���m�x���S' �ް���KƁg+�z����J~Ad��NM��4������y�G`x�m�^��N�|Fs�,�;o4������~��|�=O�'��5�)x|SW˯���l��/=�9�����o��,c����٥���������f칦�����Vy������� ���ã[ȳ�O0���/�^�z�~i��ђ�A�� φ<V�t��|��^K��e����n��,��|.�ד�����Ki�������ͅ��/�h��e=ƒGS�1<~�7y�EsÃ����o���W��<m���h�����������ɣɯl��W{�fD����>�'�|��+������ɓ9����x�Q��˽ ����}�o?��t��籎�G��,�'o1�z������yF����ű��~��zӳ�?���٥�� ;=�\����G����}��Y�N���cO��uC�@O:��7�׍>k��i��DÃO3�����x��O῏��nx��l�'l���製����o�+^7��3����XÃO��q������y�khx2�-�.ٛ�^�����:����"O^��=����B |��b���L�oa���g�̭ޟ?벶���܃�y0i��"Oﺰ�~�s��"�O&�:hy��ɳ�W�霟������J��Sۑ�c[Y��Oz��6�(���aU��o/y~�d�$odx�x^������q��<�z&�ާ��՞�c����{��!�� M�|��y���=7\�׹�����=���>��첩|~�?������V��k���[��1�����7���O��{�u_;�q�G�#����"O����[t���E��Gs���;�wa��u�Ǫ��1]����&����O&>�^�� Y>�ȳ���> ۜ8���sn�� ��5���/���z�mE^�=��ߓ�_]��n��} 8mu�J��U[����`��=�<�<<<c\�"���ȿ��{��Z��Wm�|�t���?�NV6����������n/��߿�����MtP��_>�_1�\Q��߂=��ȳ �}>X��[��%�/dς�qۺ�מ�����;5��ȃzS���6\�Y�מb����y�䫧��eG�.�`ο>�\���E^��<O����E�/�����N+�������7�����oZ���q�+��I�A/�?�>��"�_?�G��[hx�Eտ/�����֟�?f9z�7���O�g��'O�9��{����%��5������^��e�� Z�󻖏�8�<��X��k<m݆<��=�Ɠ13����M�ȃ���D-�ξ�<nT����l��՞w����W�����[���u:�<���Y���x�E��~~�z���=�W�xi����j>��;W��'����߿���Jm�ѽ���������ly��4�����z����u O���>{����m���YP�|ڵ�t���yݟ�7<���i�����0zy
���|>��w��:<����nx�u�-�`�8�/^k��`��cț>`x�|ב�9���YO6�7<����8�7x��׆�4i[dz��0<�n�����Y�U x��zÃ�C����no������m���#I�����!��f��p�p<�{�a���/l1 <������}R�,i��`�uS���/7�O��~%��i���������q�� .����I�&�>?o�L��iM��b�~�%3N6��t���"��b�wy��=��ƼO������o�������~����;i�����;/��&/�xyz`_~�����[��54߯ҁ#xݨ��+p�Z>�rW�y��"Ϻ}��'�{��"��+����a��d�y$_�<�wM1����=h���|����z��~?������; ϖ��l�'O�8���8��rᕐ��W*��?W^��^�y��ȅW"^ \y%p����WW^�=�+�+��~����WW^ \y%� �����J��+� ������WW^ \y%p����WW^ \y%r���#���J��+1/���J��+� �����J��+1/���Wb^x%p����W"^ \y%r����Wb^x%r����W"^ \y%� �ļ�J�^�y��ȅWW^ \y%r����Wb��J��+�+�����J�^�\x%p����WW^�=�+�Gx%p����Wb��J��+�+���{�Wb^x%� �D.���J��+� ��~����Wb^x%� �D.���J��+�+�ļ�J� �����J��+� �D.���J��+�Gx%��WW^ \y%p��ȅW"^�\x%p啘^ \y%��Wb^x%��Wb^x%��Wb^x%p����Wb^x%��WW^ \y%p���S����Wb��J��+�+�����J��+�+�����J��+�Gx%p����WW^ \y%������J��+�_x%p����WW^ \y%��Wb^x%p����WW^ \y%p���#���J�^ \y%p����WW^ \y%p���/�x ���J��+�+�����WW^�\x%� ��~����WW^�\x%������J��+�+�D.���J� �ļ�J��+� ��~��ȅWW^ \y%p啘^�yᕘ^ \y%����{�WW^ <^���+�+�D.�{�WW^ \y%p����Wb��J��+� ������WW^ \y%p����Wb��J��+1/���+�+�����J��+�+�D.���J��+� �����+�+�����#���+1/���J�^ \y%p���/�x(���J�^ \y%� �D.�{�WτW��WW^ \y%p��ȅWb��J���J�^�=�+�Gx%p����WW^ \y%� �����J��+�+�D�x�2��У<T�������y�O)�����(�~�g μ��g��_���{^Lq�=_�8��GSyϯ)��8ޭ�>�
�����/�/ y���~��)����G^�/�zG����#�yCőw}b��kX*�#����2��Я|%�=_�8���Ty�o*���=G����#�z���*�^��q�j&8��oUy��*�~�ϖ�X������w}n����O��E��G��Š#��b���x�2�+x\�;����e�9�_yj����ľH���/����XO��nő�<��������;�<yק�ؿYA��������\������z��������=�/8����GޛPywN�ľ�
z�\���Ź~o�@p��9�2�^�~5��~onAq��yőW�g�1���3�Pf�-�ռ��y ő��(G^���z�����]����~5��~oNCq�Ǚ�(�_�Q����=GޛQy����s#�w�F��SF���̋��Ǜ?Qyw.��>h����h�_̷`=�|��ȫ����0ȫ}��+μ3'���7?�8��\���{�6��ߙ�)�ﻂ늹��s;%���?s>���|gޛ��yg.��>t�_��?r���z���2�ٹ1��~oIq��9%őw��J����31��~o�Ip��9�2���57�~gn��>}��9+�;sV��ȫ}��sY�w��ʜ�~1��~g��̹�s_����GޛS��ΜX�s ��2� ��Ͱo�Lq��94ő���Gޛ[S��q��ʜ�P����C�7��8��\���{�r�#���)��7_�8��ܝ�Ȼ�x%���G��q=��^.8��\���{�~�#��*��7�8��� �9��Rw]5g�~o�Pq���CŹ~g.��9X��cD�7Ǩ8��|���{s���ߙ�,s�F������'Gޛ�Tyo�Rq��9Lő��3�z��M��w�93��gγ̹"��ǥ�B��ͅ*��7/�8�����{���#�͝*��;��e�?��]Wͯ�ߛ_Uyo�Uq��yWő��`�����2��Tꮫ�iџ8���s�Μm�s]��2�� ��u�w^���0���|/�չ1\���Eޛ�UyoXq��9aőw��K�WSA��7F�7o�8���!�9��)s�b���w����~o�Yp����2��`�j^�޼���{sԊ�ߙ�.s��_���˜�������չ@\���Fޛ�Vyu��GޛWyo>\q��yDX��Ȼ��%�/B.�Ϲg���yG�W������GޛcWyo�]q�Ǚ{/s�R���jN��3'�8���ϗ9� �Q������Gޛ�Wyo>_q佹}Źg�?yo�_q�;��eΛ���b�����#��#Pyo���{�G�ݏP���
z���{�G���P�-�'� ����P��q�G�9� �Q�)�g?E����_�\/�˜��~�_���k(��:���;���w(����Cq��9cX��ȇ�>ő���(��8�Jʜc���}(\��Ep���)e�C�z�~�{�YG����8���ő���(���_���l���5\�����yn�W�q�~g?N����_�\8�G���z�}=�#���Qyo���{�����}CeΩ��]W�3B���Hq���G�#��KR�������>KfPolygonVertexIndexi�
Yx5�S��iE�ضm۶m�c۶��mwl۶m;g֮�s��{���d��s�S�M
Ԍf4�mN��&��{n�+ϵ[♸�<�n�g����|�5���� �6x��+/��⩸���n��ຼ�b�=�����K�x��+/�;≸�����'����r�3�k��+�.x��+���ⱸ������઼�j�;���f�5X��re�l��կ�Yx��i��™}?c�`��79�I��W�����'pF�����}g�������pz�/���}�����y�GpZ�/���}���2��u_g�LJ�MO<�敯��� N��U� �؅�~���\������xN������ ��7E�^��W���{p2�o�^��W��7�����ݛ=��ǻp^�o�^�ĉ}���c�7�%���W?{���Rx;Nȫ�=�K�m��� '��7�}/������y���,ނ���ǵ���Cp^���Ʊy�'�<�╟��@S/=�1��� ��W~a��q4^��=��Qy�W�P�G��_���{���+�����8"��G���#ؽpx^��=���x��8�� ��?ۣ�=ph^� e�G��㐼�7�����?p0�'j���[��o{ �f��]�q��=w�'�N�D�ў�;ؓq{{
ngO�m�i��=��g�V�L�Ҟ�[�����l�̞�������<�Ğ��0P#�w����d�1�g��j?��MC���]~�=���^Ľ�D�.��./���G�_s��p��=������{]ߗ�:8w�-���qm��w���k��������F^�k��W�����F^��qg�.��^��-�;�Ծ���������{��{�?s��q�⟽��оᛛ�tO�]~@ q(���<䞀{H߿q��s���}�������tO�]~L�pp���<��� ��7�O���~�WN����_|��3��=���}�=��qE�o�?����=���_��{J��K����[?�o^���o��_^Y����)�ë{`�����*��
���7A|���_���;2��{0�߳#����?x���������������!}���������p����}�k�?7 ��oR�����˼r{ .�/��i��� ��+���������ގK���r{.����흸>�+g�w��� ���ލ��Ӽr{.�O��Y���>�+g��������ޏ ���r�.����9탸>�+��������>�������K���<�d�a�y��vo<��ؽ�0<�W�o����^�����Cy��vw<������(<�W�mwţ�^�����#y��vg<���{؝�8<�W�nw���^���O�cy��v{<�㕻���$<�W�l�œ�^�.�ۆ���-��mMS�����-K�q^}���2�?<�W��+�ꛍ���[p%�7�^��W�}��%��p���^��W�}����;p5���^��W�}��Eٻ|o�����*<�W�t���ݸ&��Y�{a���}�m/�7��{}o���:��2S�Óy���.��Y�{���}����p}��-�3�M>|O������f��y�!������a��9���� �Mn|O����Ƽ�f����Q���yv3�,��Myu�������΁��x��߳�v6|O��[�Y�)<�Wneg���L^������x�v&|�Έ��y��v|�敛���<�W��N�/⹼rS;-�d����<^���_��y��v*|�N����r#;���� ����� ߴ��[x���N�oۉ���W�o'�w�����߷��v<���C�}��%���K��x�]/�k�v-�Ү�W�5�j�:^cW�k��x�]��+� v%�Ѯ�7��f�<��.���e�V� �f����R8�]����w� ������Y�Ǥ�Ɉ���v ��3p?�{z|��.�9��}�]�����%�{����4�/s�k���.l���+|���\���
_�~�.���]�N�7���w9?��v>;��|s��������~����+�La�7;4�7���&��=��I���~�����랄�m��������o�����{p�q���8w9���&�=!�{|��G
�����$���|��� �O`�s���� �7���(����7�&���|��~�=���$��{�����܃����&6�����.��&��7��Oq0��S�����^���q�o~����8��?�w�LD�lt~��������Fc�ġ|��{T�+��o�4?�{6~O9
~�=����o"��ా�=�-��g�#j����=�=֫�揾���8=gx����啳دq|�W�l��Q�y^9��G�x��� _��3��q |�WNo?�1�e^9����Wx���_���؏q|�WNm?�q�u^9����7x������S��q|�WNn�� �m^9�}'�wx��8+��S6:��'9'��Sl97��l9/��cl9?��#l� �Cl�0�l�(�}l�8�=l�$��]l�4��l�,��ml�<��-l�"U��l�2U��l�*U��l�:U��l�&ՠ�l�6բ�l�.ա�l�>գ�l�!5��l�15��l�)5��l��Cs�r jN��r+jI��rjM3�r;jK��rjOS�r'�H��r�L�r7�J��r�Nc�r/�I��r�M#�r?�K����OC�� ��-��4�-��ԏ-���ԇ-���ԋ-���ԃ-���ԍ-O��ԅ-O��ԉ-O��ԁ-O��Ԏ-Ϡ�Ԇ-Ϣ�Ԋ-Ϧ�[�Ks�[�O��)[^H �1[^L��![^JK�>[^N˨.[^I+�6[^M��&[^Kk�:[^O��*[�H�2[�L��"[�B�Qy����RY����Si���vRI���vSq����RQ�|��Sa�|�RA�|�S~�|��R^�|��Sn�|�NRN�|�NSv�|��RV�|��Sf�|�.RF�|�.Sz�|��RZ�|��Sj�|�nRJ�|�nSr�|��RR����Sb���RB���S|����R\����Sl���^RL���^St����RT����Sd���>RD���>Sx����RX����Sh���~RH���~Sp�@)([�6��l9(���$98�?l9$��_l94��l9,��ol9<��/l9"E�Ol92E�l9*E�wl9:E�7l9&ŠWl96Ţl9.šgl9>ţ'l9!%�Gl91%�l9)%�{l99%�;l9%��[l95��l9-��kl9=��+l9#e�Kl93e� l9+e�sl9;e�3l9'��Sl97��l9/��cl9?��#l� �Cl�0�l�(�}l�8�=l�$��]l�4��l�,��ml�<��-l�"U��l�2U��l�*U��l�:U��l�&ՠ�l�6բ�l�.ա�l�>գ�l�!5��l�15��l�)5��l��Cs�r jN��r+jI��rjM3�r;jK��rjOS�r'�H��r�L�r7�J��r�Nc�r/�I��r�M#�r?�K����OC�� ��-��4�-��ԏ-���ԇ-���ԋ-���ԃ-���ԍ-O��ԅ-O��ԉ-O��ԁ-O��Ԏ-Ϡ�Ԇ-Ϣ�Ԋ-Ϧ�[�Ks�[�O��)[^H �1[^L��![^JK�>[^N˨.[^I+�6[^M��&[^Kk�:[^O��*[�H�2[�L��"[�B�Qy����RY����Si���vRI���vSq����RQ�|��Sa�|�RA�|�S~�|��R^�|��Sn�|�NRN�|�NSv�|��RV�|��Sf�|�.RF�|�.Sz�|��RZ�|��Sj�|�nRJ�|�nSr�|��RR����Sb���RB���S|����R\����Sl���^RL���^St����RT����Sd���>RD���>Sx����RX����Sh���~RH���~Sp�@)([��������L��������~����~��������������>����>����ޱ���ް���^����^�����������儔���Ĕ��夔����䔌��唔�n��Ԕ�n�崔���������匔�.��̔�.�嬔�α�씍ΰ圔�N��ܔ�N�弔�����������T����T����T�����T�����T�v���T�v���T�����T�����T�6���T�6���T�ֳ��T�ֲ��T�V���T�V���T�����T�����Ԁ���Ԉ���Ԅ�����3r��� �=y7V�
Edgesi��
x����pq�vB\��{�B�&;{����;�+d^NGNv��q�3CNvٙߗ^���y����/^��O$1IHJrRD*R���HG0�H&2��ld''��C^�S�B�(�)AIJS�r��"��BU�Q�ϨIm�P�z4��iB3ZВV��-�hOG:љ.t�;=�I�ҏ� d0C�pF0�Q�a,���$&3���`&� e�0�,dKX�r�e%߱�5�cal$�MD���d?��]�f?��(�9�/�0�r�~�'��4g8�y.p�K\�
q�������=��>y�c������+^��w�k|HH �IJ2R�� >$5iIGz��@&>! Y�Fr��<��)D�Q��� e)O*R��|J5jP�ZԦ��Oф�4�-��6����Nt�+��A/zӇ~ �+1�� c8#�h�2��Ld2S��tf2�B����c> X������;V��ul ����l�G"��vv�����g�E4��C�W��qN�;��� �8�.�'q\�*׸�Mn�7w��}��G<�)�x�K^񚷼/��O ID�����ICZ���d ���ld'��C^�Q���0E(F JR�2��<�De�R��|FMj�9u�G}Ҙ&4�9-hEk�Ў�t�K:Ӆ�t���C_�1�� bC�׌d��8&0��La3��lB��1�,b1KYη�`�Y�Z�������̏l%����Nv����#���Aq�#%��8�Ib9�i�r�?��%����\����������y�����x�+��������@��d$'A|Hj��� �c2� ��B6r��\�!�)@!�P�b���)C9*P�JT�S�Q�ϨI-jS��ԣ�hL�т���5miG{:҉�t�=�I/�Џ� ` ��P�3���b ��&1��Lc��Ms��<泐�,a)�Y�JV����c=al$�M�@?��H�����f/?��(�9�/�0�r�~���)�p����E��2q��5�s�[�����y�#��g<�?^��7����J $1IHF
Rć�!-�HO0��'d&+��ANr��|� �)BQ�S�R��,��@%*S�O�N jR��ԡ�i@#Ӕ洠_К����Dg�ҝ��7}�G�b��0�f#��1��Lb
Ә� fB(s��|���,a߲��|�ֲ� ���M�@[�J$���v����c?QDs�_8�~�1���i�p�����$�+\�7��m��.�����Ox�s^��W��-��*  �D$!)�IA�HM>"�|LF2��,d#;9�En����0E(FqJR�2��<�De�R��Ԡ&����ԣ> iL�Ҝ���5mhK{:�%��BW�ӓ^��/��W dC�0�f$��X�3�ILf
Ә�LfB(�0��,`KX�r�e���5�c=��p6�f���m��vv��=��>��?p�C�G��7�s��9��r�?��%.��r���6w��=���y�����x�+���x�z�Hb�����$�T�&-��`2��Ld&+��I.�����E(J1JP�Ҕ��H%��)ը�gԢ6�S��4�!�iJ3�Ӓ/hM�с�|Ig�ҍ���7}�K�b ��0��5#��2��Lb2S�� f2�ل��2��,d�Y�2�����b5kX�z6�F��D���V"��vv����a/��O�� �8��r��s���r�Ӝ����E.q�8�p�k\�&����r��<�!�x�������y�;�%�i@ �HLR������Ԥ!-�HO0�H&2���d'9�M����0E(JqJP�Ҕ�,��@E*S��T�:5�I-jS��ԣ iD�Ҍ���iC[�Ӂ�t�3]�FwzЋ�����@1�� c8#�(�0�qL`"���T�1���"�P�0�y�g!�X�R����d�Y�Zֳ�06�&"����6�����f{��~���9�a�p�c�p��$�S��,�8�.r���q��\�:7��m�p�{��y�c������%�x�[�����H"��d$'%A�"5iHK:�L2���d!+��ANr�����)L�R���4e(Ky*P��T�*ըN jR��ԡ.�h@Cф�4�-iEk�Ж�t�#��L�ѝ��7}�G0�A f(��F2�1�e��$�0�i�`&�!�9�e�Y�"��e,g+Y�jְ��l �����6���D����`'���^���(�9�Aq�#�1�'���9�9�s��\�2q\�*׸�Mnq�;���y�C��'<�9/x�+^��w�1ⓀIDb�����$�T�& iIGz��@F2��,d%;9�In����� �)BQ�S���� e)O*R�*T�թAMjQ�:ԥ hH#�Дf��%�hM�Ҟt���B7�Ӄ^�����2�� e��HF1���c���2��d!�2���c> Y�b�����`%�X�ֲ� ���p6�f���H����d7{��>�E48�!s��#����$���4g9�y.p�K\&�+\�׹�-ns����>x�#��g<�/y�k����^|@ �HLR������Ԥ!-�HO0�H&2���d'9�M����0E(JqJP�Ҕ�,��@E*S��T�:5�I-jS��ԣ iD�Ҍ���iC[�Ӂ�t�3]�FwzЋ�����@1�� c8#�(�0�qL`"���T�1���"�P�0�y�g!�X�R����d�Y�Zֳ�06�&"����6�����f{��~���9�a�p�c�p��$�S��,�8�.r���q��\�:7��m�p�����$�sLayerElementNormalItVVersionIe�VNameS�VMappingInformationTypeSByPolygonVertex�V ReferenceInformationTypeSDirect�s�Normalsd� �x��y�Օ�+uLb̘��C�8��,B#�� ۻj&��$1cF�X�Qd ��"K��ATDEG�.{Y�� ���D�!@KCQ�yu���{߻?�yC�t�a��r�{N��u뾪ץe���'LԲ�O��z�S�����u��[��]�'S=�g;���g.OisۮZ^O\�u�=��/+5�.��]Ᏹ���<�q��k[=�N.�k��<�D_4���?�a:��\J��9_A��}L�p�R���7����]���y��~z7]1д߹ܮ�z�����Ʊ���%� �����V��<\��5���r}�j��˝�#��������o2m�s�G����6���r�e��L�a�?mi��fr��\�>�d�i�����ߘ��Z�������\�\>�4~�<�>/\����R^�W��z��P�vq�����&�g�G����e�3���鎜�u�x���q���|۸n�rw��w��S.Ow���)�sM�Wu�D�0�!�y̿����r���x�r������/6O�� c�R�z\�}\1V���3����yqܼ5a�W|P�{��Կ���֚9����r���d��������I�v� YOm��:rڮ��Sݍ���OVrݮ�z��|U�������%���'�ϲ�:n�����}���L��{����<\��z�g����˃k�h�%�x�r�ם�6�����Om�8��GM����sW��py\���N�G������q������\�<So�i��<������⬸��~�r�� �.���K��ury��sZ�g��� �3ٴ߹<�z2=�~��\��_�P{*=\��]���޸ыM�*����k��L���ܥj=r�����k��a���������2�W���.w�Z��#����+��&��zѴ]\���kױe��ܺ��|�vq�ݾj�i���{<�x��q������rg�����\���r�=l��<3������?�����k[=_�>�g�i����������}j��rq~����.�;��5~�v���#����걟4>��������KM� .�!�3�w.������c�Os�Փ>.���!����3y\�U��;?V��X� ���W'�E�c�,.�L������e��8���ך�&�goVn���q��j��~a��I�UO�>?�[g�w5y�\tZ���g�]\nu*3�C.��a9_�u�����<�����������?�:T��s���񩸜��?�?Q����W��t=\�YPLە���wW��4opyf��3���gv�>ה�..G�/���dxNO�-�.ϵ���Q��������xߜ�G��0��{�M��g����X��S����N�˿���
nj3�6�nP,��;?�x�dm�+�!�goVnDžw۵#L�e.���QO��xLn�_h�N�������=[��~����71���y.�k����z�i>�����w�Z�����UOm��7����'U�\�v9���M�py\��y❯Nv?�V+���G�\W�b�9ƿ�������!jR��xg�����#�nb|?�������Ey��k�z쫲]���&t�w���u�tj���������˳7l2��������?f�9�p�!�q���x����?L���_���jx|�.�k{��k󼬇�������+L�������n��6�.(���.��T�g�s���{g�쭎�Tm�#?������.��E�b������r��㹍[�7��I{_)�C.� �g�������_��/.G��e�v�}mM�������L���G�ϝ Ǐ`r����΅.��?���=d�LW=�s�v��K�\W=��3oQ�Iy�|���U?|C���..w;��z���3�#=l~�C�������<3� ��d�G�����qjd=\��\�'~;�T�s������'��==~���6.�~%����[��ܹ���'�o� X�;�}����;���R�W�ףy��3҆?���;^\����9�y��k�v��K��6\^۶���S{�p�����v=A�3\��{��݋v 2͇\���~����y�Ʌ�>�s�4�qy��ܹTi~L~��_[�r<g�sB�pG�� ����]FkϷ�y�<��t=��pJ����|��C��_���y�������{G��$�,&�&�a�pym���j�n���׶튫��_k�}Jy��L.��~���ܫw��wR�.��?��Y���L���M�ߛ�������Z�G�G·l�]PN��`� ����<\nO�~�\�g.�ެ/���o��m����������xf�`I=�u6.G�{�x��V?�y��OU�0o���|��7��>��`S�֙��y)�]�qoٓ��)�g� d�{|��YO��� �o<�s�{��I��<������[��z�^�x��<��ԏ��S���[4r���dk�=�8���a��xvZT��ǻ���������T��\��]��E�ܮLϗ���'�Gs:ӿ]��<��^ר�Y�.�Ѧ_�Zg�Z���~o���\..-���.���ϝKmF�&���=`�Ǹ���ѫ\�/��~�\�����zR?w������,�9���\~����8��?�A�q���ەk=���/;w�_~���\W�ʵ���g.Ϭ�n��;B�p���M}�����EN���g�h�8���2үr�'��5/r�� &?���5e�_�TOp�*��g.OWQ�"�zj~=�*O��{����'��|����)����t[�i���_���qyr�.��)���3�[ F�e��y�~ɵ?Q��hq����N�~w��U�N+����m����W�Wz<3y0z���c\W�G��1.�o|O�����py\��Ud?w.|��������r�ʆ���\��7�sN�{��r�c��<��\����u�����ƌV�wY��UO������莬���������'�� 6��a9���M��˳�9~?Q������\���y���Cc,.�,(�y5[�[����¢�����q�c����|l�\�c�����ܾjU7S�<��؋���t�sy\��vO��FƆ��Iis��3� ��DM1��T�/{�9Yϵ�1.�6Q��q{S�/y��rw��g.�:��!����[l|N�g֓��u/�5��.����<�<��s�������2�������\0Ÿ��\$�?M�&�0=M�'zz;�O��Oȿ�'!���j^ģz�_B�A��Eq���Ĺ+1pn�J�k~�Q^��W���=�\�#����;���a�5?�(/��& |-�{+�T&R��_�s=AA��B���^Տ8���������~ p����B�]�@��G�E��B���ݪq���sƎ�/���K�#���x�����=�ߩ��z��>����Ƕ�~�a^乤tO�&�ߪ�gzD�Ԋ�/��q �E�����~�dݻ�q��o{�������&Տ8� ���2�۳�����g{V<N~o�k�k~�A^�[�������e��G����o ����T?�(/��Ƒ�m�t��G�������,X��GyQ|��C~��� T?�\��F~+����q��[~�\[��U�L�/�Q=�#�x�ᚉ�q���]��i�q��G�bz����v�
Տ8ʋ�E����&�>���z��ߐ?����qr�"����(�o~b��~�Q^o�C~kꧯ�~Ĺ������h�(��8� <�]����m��Mj����(�94�ο�����~Ĺ���h������G�E�h�cw���G����v�M�i�lW����(^�z*Z6{�ֹr� ��t���E�'�G����7R_��>U'@\0=A�z�"
�8��#������4��Cc�8�~p��i1��pܸ���q,����(�jx/�k�Äh�� g{
�uT����y@�-�A^4��\�wJj~Ĺ?��y�?8�W�#���x����D���_�_�s=����� Y��8� ���sV�~'9G�#��A�n�Oօ~��r͏8�����"��lm�#���xg�\z_,�Џ_�Q= �*��?����GՃ���o�O��ϵ�q�'��]w�/�H��Ԯ�/�Q^/nmL�M���� �\�{������o���T׏8� � �u%��s�<_���\�5w�����f����(/�����nv�� )�O}G���>�����"��(S ���x����߳F��G��%�麭(����GyQ��n�^�O���#����L��� ��M�#���x���yェ��z�aW� �����ZՏ8ʋ�Er�E��U�q��/���j�Տ8ʋ�����-Ϛ���z�ٝi~�{n��x��B���gy�����üȓ�(Z��8'!�O}gz�����o[��Gya|���Q�E���XG-�;�9T?�(/�����m�I㿩~Ĺ{٘h]5�ݨ�GyQ�������g7���G�����[E2�[]�� ��/�Տ�m �oS�G��q�fк��څ�Y�C�������
2����س�u�h1��Y�~�ȋ���ߢuUЧ��Yi?����u�hӀ�Yҏ8�Ży/Һ�-KT��q��Z~��p��K~D�,Y?�(/�_��wB�Ӷ9������ f�������q�ŋ�OD����u��q�'h����?�c>�#�q�x�f�W�~��>͏8ʋ������~/�^�#��X�g��A�?4?�(/���Z�Cx})~�_��zP|�!�CoP���B����6����h�#���x�ѵt�W$'h~Ĺ��M��a�ް+5?�(/����W�?G�ӎ_Ĺ1c"����?�����(>�ׇ�U��G�� p��-���UNI�6�#��A���5ZW9k�/Ĺo�������#��q��ۍ��c^�+w��H~!��xݮ�A�s�m��8� <��s�+zD��d����0��uZW9MZi�Op����fگ�����q�Ż}�~���:nu��z�C���
�oV��(/����� ����r�"���#OѼ�4�A��q��;ÚѼ�X��q��N>�W�~}��G�E�ޱ��o��L�#���O�/�4���GyQ|z�Slݠ�g{ħQ� OI��~G\��2��~bkԟ��e�q�Ż���?o����z�����^P����0~X{�{E�֩~p��_���1a�~�p�y��.��F׿�֏8�c>+Z�}S�#���x{��4?���l����z@��Ԋ�eߤϹ�1�Q=� �������ҏ8��\M�_/����%�Q^o��&�E����/!�����i}���V���8� <^�ki�iO{`�:~GyQ�?�K�~�]��D�����֟^���:�?>����� � z���_ ���x�[Z��*��ˈs=b�y�n��lߥ�_�Q^L������/�V��s=^����K|��Տ8ʋ�E�8z��^W���z�z�n�}��*����#�:������4����8���%����|͏8� <b�4��w�j��;�0/�ط|�Ƨ��6�GeGyQ�5m0���ެ�G���/|��_w��4���GyQ�SЊ�7��ok��z����u+��yN֏8� �S�����7ɾ?e�\O8������<'�G<�?eʋ��O�G���!4�I?�\�spAt\y��q&����(>(@��۶�{�v�/ĹqWZ�D���N�8ʋ��v���̝��Z?�l�r���p�v�E���# �oO>[�~�8ʋ������;��#���A�������罤�GyQ�(G~�� t�A�OĹ�tmT�&+��GyQ|plW�ot�BՏ8��=T�u>?Q�#���xy�ǽ���W_����/�ۉ��f�~�Q^�%�Q����>��Ĺ+q7����/��#���x��;�����+�q�'҇�gZ�v�q�ŋ�i~������=�<:�g�xW��@����ݣ���a��G�E�֢3h� �׮ ����zF�xZ{��8� <n�h�i��k���Q^o�<�֝v�z�T?�\O��Z�u�����"�w���.�?�G�q�G��i](��U�~�Q^/J�������5?��������g��~�Q=(ޙyɛ�Ԥ�nY���z�獄���'�q���E�օ~�hb��G����\�|�����S/� q��[� _���Z���=m>����"j,�Q=(>��yS�͏8���:+��h~�-����gӺ�+}E�#��8M[�뷓i~�Q^�wZ���m4?�\�;i9=��=R�����(�mڎ�9�[�~�Q= ^��h]e~�6"��A�~�N�o� Z����s=V�i�}��G���(/���}N�6Qv��G���ɝi���i���G��x�v��c�>G[�@���ً;h����߿兞^+�4�EyR�2}����(�^8����LP��q�G6�qL�������(�4��+Ѷ�v�q��^�� �����/�Q^,�E���x���p�'�^D��c_ ��/�Q=(�J�C~QP_�8�㕾L~��z����� ��+����?��={���^At5�G���7��G���}du��'HܗH9E��S��� q�x���;�U�#����G~��W�S����(>8ڍ�n˟�Q��s=vdz�ou<�_兞����`J�v�<u���A^o ���_�{j��D��q���q�&�����(>Xr;] ������������^���q������ �b�lS��8���-�z���u 9? ������S����Sp���z�l��>"�� ��=�ڿ�{�R��8��6\I�5X�!���Q^?a&�K���h�J�8�㕼I����G�8�~�Q^o��]���<!��s=�ԋߠ�:��4_J?�(/��J�YO���V�y@&��q.Y�Er��GՃ��|gA��{4?�\O��e���f��Q^�yO�KR��Z��s=V�}.�;��4?�0/�8m�� �^�՚q��{��E�V,��?�\���ѷ������p�y�«��LP�_��z��>�>�\�͟��zP�3��6ڿ�~K�y9�g{��}/��e���8��۳�� ����</�G�azܹ�U_?魭GyQ�ӺpwX�3-c�8�c-�'�[�|�5!�~Ճ���W�~�)�֟��=�F�%���L�y� 6���/�~���˴�?�(/�������|�&�G��qV̉��[i��Gya��<��!�=��:~�\��D~��H�GyQ��\B~/�5_�#����m����Ūq��[���w������{��j�����3�^}�-��z̞�4z�w��{��G�E���/��q�J�#��C��%����O!��7x]v/����*w�(/�?x��g��\��w����O��%�ۮ�q�x܊%�}�����Q^� ܱ5�ۻ���<Y��z�� ����j��r�"���x���`Ň4N�?��I��u2��M�t�I?�(/���_$��92z��P�:�tLayerItVersionId�t LayerElement_tTypeSLayerElementNormal{t
TypedIndexIw&ModelL���2SText.002ModelSMesh�tVersionI��v Properties70huNPSLcl TranslationSLcl TranslationSSAD���^@DD�uHPS Lcl RotationS Lcl RotationSSAD��`S�>D�DvFPS Lcl ScalingS Lcl ScalingSSADY@DY@DY@Xv8PSDefaultAttributeIndexSintSIntegerSI�v(PS InheritTypeSenumSSI�v
MultiLayerI�v MultiTakeI�vShadingC wCullingS
CullingOff�w ConnectionsdwCSOOL���2L�wCSOOL��ZL���2�wTakes�wCurrentS��� ���f�v���&~��Z�j���~�� �u�)

97
Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/3.fbx.meta


fileFormatVersion: 2
guid: 02d33201e78d54a67ac7b0734cd6d8aa
ModelImporter:
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode
2100000: No Name
2300000: //RootNode
3300000: //RootNode
4300000: Text.002
externalObjects: {}
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 2
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

104
Project/Assets/ML-Agents/Examples/Match3/Prefabs/FBX/Match.fbx


Kaydara FBX Binary �_FBXHeaderExtension\FBXHeaderVersionI�x
FBXVersionI��EncryptionTypeI�CreationTimeStamp�VersionI��YearI��MonthI DayI'HourI?MinuteIWSecondI&t MillisecondI��4CreatorS/Blender (stable FBX IO) - 2.79 (sub 0) - 3.7.13R' SceneInfoSGlobalInfoSceneInfoSUserData$ TypeSUserData=VersionId MetaDatakVersionId�TitleS�SubjectS�AuthorS�KeywordsS�RevisionSCommentSE Properties70m9PS DocumentUrlSKStringSUrlSS /foobar.fbx�<PSSrcDocumentUrlSKStringSUrlSS /foobar.fbx�$PSOriginalSCompoundSSCLPSOriginal|ApplicationVendorSKStringSSSBlender Foundation�OPSOriginal|ApplicationNameSKStringSSSBlender (stable FBX IO)�GPSOriginal|ApplicationVersionSKStringSSS 2.79 (sub 0)PMPSOriginal|DateTime_GMTSDateTimeSSS01/01/1970 00:00:00.000�<PSOriginal|FileNameSKStringSSS /foobar.fbx�%PS LastSavedSCompoundSS(MPSLastSaved|ApplicationVendorSKStringSSSBlender Foundation�PPSLastSaved|ApplicationNameSKStringSSSBlender (stable FBX IO)�HPSLastSaved|ApplicationVersionSKStringSSS 2.79 (sub 0)8NPSLastSaved|DateTime_GMTSDateTimeSSS01/01/1970 00:00:00.000�FileIdR(�*��$�¿Ȱ*�+��� CreationTimeS1970-01-01 10:00:00:0004CreatorS/Blender (stable FBX IO) - 2.79 (sub 0) - 3.7.13� GlobalSettings8VersionI�u Properties70�)PSUpAxisSintSIntegerSI�-PS
UpAxisSignSintSIntegerSI�,PS FrontAxisSintSIntegerSI; 0PS FrontAxisSignSintSIntegerSIu ,PS CoordAxisSintSIntegerSI� 0PS CoordAxisSignSintSIntegerSI� 1PSOriginalUpAxisSintSIntegerSI����5
5PSOriginalUpAxisSignSintSIntegerSI{
8PSUnitScaleFactorSdoubleSNumberSD�?�
@PSOriginalUnitScaleFactorSdoubleSNumberSD�? HPS AmbientColorSColorRGBSColorSDDDn APS DefaultCameraSKStringSSSProducer Perspective� %PSTimeModeSenumSSI � 3PS TimeSpanStartSKTimeSTimeSL" 2PS TimeSpanStopSKTimeSTimeSL����
h 8PSCustomFrameRateSdoubleSNumberSD8@� Documents� CountI� DocumentL��$SSceneSScene| Properties70. &PS SourceObjectSobjectSSo 3PSActiveAnimStackNameSKStringSSS�  RootNodeL�
Referencesd$ Definitions VersionId CountIn
ObjectTypeSGlobalSettingsaCountI�
ObjectTypeSGeometry�CountI� PropertyTemplateSFbxMesh� Properties70:APSColorSColorRGBSColorSD�������?D�������?D�������?�DPSBBoxMinSVector3DSVectorSDDD�DPSBBoxMaxSVector3DSVectorSDDD/PSPrimary VisibilitySboolSSIS*PS Casts ShadowsSboolSSI�,PSReceive ShadowsSboolSSIW$
ObjectTypeSModel�CountIJ$ PropertyTemplateSFbxNode=$ Properties70n2PSQuaternionInterpolateSenumSSI�KPSRotationOffsetSVector3DSVectorSDDDJPS RotationPivotSVector3DSVectorSDDDwJPS ScalingOffsetSVector3DSVectorSDDD�IPS ScalingPivotSVector3DSVectorSDDD
.PSTranslationActiveSboolSSIcKPSTranslationMinSVector3DSVectorSDDD�KPSTranslationMaxSVector3DSVectorSDDD�,PSTranslationMinXSboolSSI0,PSTranslationMinYSboolSSIj,PSTranslationMinZSboolSSI�,PSTranslationMaxXSboolSSI�,PSTranslationMaxYSboolSSI,PSTranslationMaxZSboolSSIP*PS RotationOrderSenumSSI�6PSRotationSpaceForLimitOnlySboolSSI�;PSRotationStiffnessXSdoubleSNumberSD&;PSRotationStiffnessYSdoubleSNumberSDo;PSRotationStiffnessZSdoubleSNumberSD�0PSAxisLenSdoubleSNumberSD$@HPS PreRotationSVector3DSVectorSDDDZIPS PostRotationSVector3DSVectorSDDD�+PSRotationActiveSboolSSI�HPS RotationMinSVector3DSVectorSDDD?HPS RotationMaxSVector3DSVectorSDDDv)PS RotationMinXSboolSSI�)PS RotationMinYSboolSSI�)PS RotationMinZSboolSSI)PS RotationMaxXSboolSSIR)PS RotationMaxYSboolSSI�)PS RotationMaxZSboolSSI�(PS InheritTypeSenumSSI�*PS ScalingActiveSboolSSILGPS
ScalingMinSVector3DSVectorSDDD�GPS
ScalingMaxSVector3DSVectorSD�?D�?D�?�(PS ScalingMinXSboolSSI (PS ScalingMinYSboolSSIC(PS ScalingMinZSboolSSIy(PS ScalingMaxXSboolSSI�(PS ScalingMaxYSboolSSI�(PS ScalingMaxZSboolSSIDQPSGeometricTranslationSVector3DSVectorSDDD�NPSGeometricRotationSVector3DSVectorSDDD�MPSGeometricScalingSVector3DSVectorSD�?D�?D�??6PS MinDampRangeXSdoubleSNumberSD�6PS MinDampRangeYSdoubleSNumberSD�6PS MinDampRangeZSdoubleSNumberSD 6PS MaxDampRangeXSdoubleSNumberSDO6PS MaxDampRangeYSdoubleSNumberSD�6PS MaxDampRangeZSdoubleSNumberSD�9PSMinDampStrengthXSdoubleSNumberSD!9PSMinDampStrengthYSdoubleSNumberSDh9PSMinDampStrengthZSdoubleSNumberSD�9PSMaxDampStrengthXSdoubleSNumberSD�9PSMaxDampStrengthYSdoubleSNumberSD= 9PSMaxDampStrengthZSdoubleSNumberSD� 7PSPreferedAngleXSdoubleSNumberSD� 7PSPreferedAngleYSdoubleSNumberSD !7PSPreferedAngleZSdoubleSNumberSDB!(PSLookAtPropertySobjectSSz!*PSUpVectorPropertySobjectSS�!!PSShowSboolSSI�!8PSNegativePercentShapeSupportSboolSSI5"8PSDefaultAttributeIndexSintSIntegerSI����f"#PSFreezeSboolSSI�"#PSLODBoxSboolSSI�"NPSLcl TranslationSLcl TranslationSSADDDI#HPS Lcl RotationS Lcl RotationSSADDD�#FPS Lcl ScalingS Lcl ScalingSSAD�?D�?D�?�#2PS
VisibilityS
VisibilitySSAD�?0$EPSVisibility InheritanceSVisibility InheritanceSSI��Objects2�+GeometryLCZ-SCUTest.001GeometrySMesh�$ Properties70�$GeometryVersionI|�S�.Verticesd��.x��y�Vs���`��X"2��}�2�I�t�i&�n�M�$��P&Π0ҢB"g*�4��Hu�5JҢ$�S�%j$��~��tz�_���w��t�]��~�g����ޯ �a�?lAޠ����?~:~'G�O��jx�ay�ufxr�D���e�g��������O�z ��M't%O:nx����5�ی<޳���A����Q��ȳ�Z������}���`�|��ī ��<C����dRO���� O�hCOhnxvPS����-?{?�t^}���a%��OXo�g�s9y��-Ó����#Rãf������>T���8��޷�G]��w�Wp�5��ȱ�הʟr�
�����˟�<���
�����&�]} b=�c ���A^_�]�_� y����A����8q������vYSg����R����Oy�������S�b�����Ɇs����LÃ�}��>� ���-�� O���#�����|��g����'+�>\8�<�3�����>�z�8������v} ��Jȓ�m �O�@�}y����U�y˯��/���n����g3[�g�3<��6��I�ݳˇ�G�M0�I6{v�w9��d���L����a�]W�� W�n�k�t�����M�B?�,Ã&mȳ��5�{0�3yx�� Ϯ���k�3�i<�_�Ӿ�9�;��Cf�s� g %O{�}���}i����䵏�d�Y�~��?����Q����>mA}�21<^ۜ<l���dD3������`��ɓ{�[��)����x���O�#����5$��hx�f���� ��܃<�����Sۓ�y�]�9������'��p9��v����h y�����ӿ|K� �z�˓e �dv1<��%y��v��7�A���g���qɓ�׍wyx�z��� n?��q�E`xr/���ؗ\�����Q�� 7]?{�4<�{��� ��o��3Yt���k7���1<�zy|ı��lXC�/�q� ���F�������)�q�m�z�v[O�Ή���f��Z>f�dw=���������<�W�Ã&Nsy4��üs����[��o�����_Y���<~a<y��)�'�|d�O'Mu}�����ճ��� �n3�!�[�����z ��R��2s��<���X�������g.{���W��G��1.ϖ~��ӟ����ў���놻<?|�B��֩��/G�����K�]�]|y2��.�[M^���˛ty��������<>�����ҭ.Ͽ:�<�Ӣ�\^9��O���Y�����jx���;�^��|뻸�;F�]������L���|���I�z�<�g ��dցw�<�w�ߠ�+qy�z�⸾���\�-�w��m]я籨W�+\��y> FwQS��f��L�����˓_=��{����]��=y���]:�Q\W>�0��'����������<k�=y>���]�i�����?��x�s���|�˓|��XN.x���i��f��L7�v�U��q�9���.�E���'����אǫ������[�G3v��������r|���<_ۡ���6��tIS���{��>����Ӯ�^wy��y�Љ3O:�W��͟7����>�|�_����7&�W���P�`����י����a���y����u��;u��:���b��� �$Oҁ�~���𫖬;��~� ��$Ϛ�[��ߴCon�l���Q��9����^<��YYg�jW�W��I��y��T�[�;��z .ox��[�^���|Pꃙ��k�݆������,1<z��b�\^\�J���E����~>{��W��#<?�����Kx|��hǭ�^�eK O�-�W�5�=Fp���s�M���g��5����������>���� ��;��q�1��Kgp9��W���x�v>����e�љ�ti��Bv�<����ˋ����.����L<������ٌ�f��g���Z4�Z�?J�����W�Ƀ_�ax�ɹ���o2�m��!�uy�-�'}@�����������{���� �7�Wڬ#y�t�9�������xƨ�z�9ޣ����l�ts~6�%�������Q�yֿ���׌�>���]�]/4��^ٜ<l����Ӂ��:��7~�������d���� g����R��FX��C
�Q��>�&��d���o���?Z�{�a�r?H/��=� yx���'�}p������<��{�{�脻
����8�<x����ʯ������Y�I\�^�μ��݄<�<������'���-�m�z����G�m�r������s9��K���]^%Oj}�wx�<��J��g>\���4<����g�Kf��Zw"�θ��l���y�����ϻ�<>����-ɳ��3<<�w�A�V済�hB]Ҏן�|^ܸ�g\g��mS����׽R�_[������绎0� ��O���f������u�cz���]�:��n��'s�z�%=�}K֭X�6���ꃺ�z��N3�?Ѡ����z��_�sK���`Ó��"O,������i���~,��i곋~3��g_�Rܿ%�ƻ<�h�l�_�sy:��������sy������V��]n�dT+���V�]��G<l�?�<��P��ҳnvy2�n�d†N.:��vJ���Vÿ<�<m?����ߎ�� f<z�˳v���N[�pyr���q���g��ܮ?��r�(n����F�/��������n���JӚ�����ԟw_��O�tt��7��|ާ����x_t�� ��Mvx�� '_��[�˦��^Ӿ��ӹ�L�rr�Y�˃�o���,y����G���uy���/�v�@�?�� X65����ß���ء.Ϗ���3��s�~ܬ�X����˓N�?��`R��.�>�a � g������Z�4x��-_��ѐz��=�>J�̺z���op}�<���#��^Gq��<_:�<�f��>�������y�[v]�R��H�J�r�����������Iӗ��Y�O�?�xm����|�v�����4�qP��t�O�z��b�o����G>ݜ��C6�g#[��� ؊�o���W��5�[��=��f���| yP�{ѼS�����َ��>_����/�/�Cex>၂����O��Q�������a��<.�:�u�
~qWóQ\�6fx�sk����<�>�<k=�������}����_w*Ϋ��}~����z��y����x�W~L�����줓fp=^<����>�a�)��fU�2��|d#^G�u/�Fw�����o�&y2�5��5����P������׵=�3��ԡ���O OӼ��}gxtT��F�j'���W��>d���}O3<���<x�2Ã��y�&���'�.�P)����z����o���y�s�q=ryra�B�(����C���n�����5�YÎ��<ܡ��J������.��8�<Z��~.�o��<���.�I�-~�a���-|���\w�6�'�{?���F��\��'�ԓ.�.�l2xr{[㓭�
��cM=ъ����z���~�cx���w�<�/���e�������ɣn�_�����B���]n߸[�W����t���㯜����K:�<��5,�-�0�K��3^O����'��3�k}����L�|��F->�_�Aֹ����:� ,g��tqy4��YXN��7�<�i��XN��O��u���Ӽi��oY���`�77�<���C��7������-���ɽ\��t.�~��qy�9x<�s�@��_A�j��t� OZ��*�_g��1��I.>�<�g=���s?���=G�<\�F��As����<����>g������x_V��������V�3� �|���.ϛu%��f�w����G�63���ў������>�a�>�cws?�۩��{�|ʞn]�/��}����F�����d���{��g��[���>�� &���Rɓ�c������u����u�q��x�(��Q�������}������.���������sx�.��������9����Gs?L۞���K��h��6��[Ó�O�~�y�Mw=G8��E���s\~�-��d�A��M�q���?˗���:���-�'h�#���' �}�����w �^���O<2���$�o�y,Z�����0��̼��g�?}|������ ���I���#OW�q��?�y>��賋:���]�����nJ��������S�k������"�Ŏ�
6���E�`������
��^� ��tCq�h�������^�u_6<�b!y<l����iq�h�ђ�x �����[s;���5<��1�`� ���4(�/�jx4�!���� �;|E��i�f���ף��������o��<8f/���9ϒG}'�혷�<{���q��?b���]v+�?�y����b������4~���>-�3����;�&��_g���#O��b�O�sG�l����mDL��w��w��m�?��K ���$��<{��v>�<i:��d����9�.v��>{�g��1<]vbq���������՚3�u}�o�X��F=fxp���g+V�7<�8� =`���=�����K �m��*}�>ÓU3����g ��{��؀7 �Z7�~��[ny��<��~��Q��Sq��Gn:�8~[~n|�K�7���I�?�ߎ(�KG,0<_Һ��}p�����&�'��1ó?������}�"x~�� �ox<z���Ѷ{>K��w�v �\=�>G0<�m�H��b�݃�7 n���'�OL�3�I��������3���f���<�<��J��vx:`�9.�uw�<��0<j5�+x����M���>!^r�u�ɥ' O/�{ 6�u0�����������L��<�$jjx�yx6�{^��k�c'���z���\����[���h��
�&+_py�潶XNF���ˣ囮�r�ݼg\�}9�f,g��O�< .�����py6���XN���w����H�_���\����ԟ{�î>�C�{���~.���X�?���������n.��4���8l?��џ�+��0������7��6�ف<:��ˮO�W�B��A� ﹶ��4�`�W��`���x�|ر�����w}�?N.����u� �/� �����*�������x}O�<��藧��� ǯ��-X�������754<�sy��ã�<fC�7<����7��������S��ƫy���lx���<8�S��K[�'ׄ���S�_�'�w|��]��O��� ����d=���[ty#����w$O�ex��#S+5�m��]��K!����~^��蓏�6<�E+��;�0갞׋pZ�������xq��� �jN}������>9t�ݟW?O���fxy|p�9.J���p�[O0�
���<�`#y|]���<���<T�'{�m|“����=R��������o��?���b?�����^#ȣ�����_\������������ �z}B���u�?��{�����~�< �����5�~����>����n�4�Fݱ��ɘ��~����O�}V����������X�W_u���ߑ��2<Zp-y|������=�O� �'?F��6/s���1���[�y�Zϊ��W��
���Z����3���G�Lwy~����>��x����X�����f�}�S����1�'9�P과�b������ �X�B��w���k�� ����떼v��Y7�R�%��>U� �r^�*�E��y�����y�����y�G���E΋>"��r^�*�E�����y�����y�����y�_���U� \���U΋�"�E��y����q�r^.ws^����9/�U� \弨9/���y�����y����"�E��W9/p�����y�����y�����y�����yQ/r^�9/p��W9/����"�E.r^�*��r^�*��r^�*�E.r^�*��r^�*��r^�*��� ����s�������y�����y�����y�_���U� \弨9/�����y�_���/r^�*�E��W9/p��W9/�E΋�"��r^�"�E��W9/p��W9/p��W9/p��W9/�E΋�"��r^ԋ��E� \���E� \���U� \���#��W9/p��"9/�����y�����y����E΋�"�E���^���/r^�9/p��"9/�����yQ/r^�9/p��W9/�E΋�"��r^�*��r^�*�E�����yQ/r^�*��r^�9/p��W9/p��W9/p��W9/p��W9/p��W9/�����U� \弨9/����"�E���^���/r^ԋ��E΋z��W9/r��"9/p��W9/p��W9/p��W9/p�����y���}D� <9/p��W9/p���^���/r^�*��r^�*��r^�*�E��y�����y�����yQ/r^�9/p��"9/�����y�����y�����yQ/r^�*�E���E� \���U΋\���U΋\���#r^���y�����y���}D� \���U΋z�����y�����y�G���U΋z��W9/p��W9/p��W9/p��W9/p���^���/r^�e���u��n� z��W9/�P���U΋>"��r^�*�����y�����y����E΋>"��r^�9/�E΋�"�E��W9/r�����y�����yQ/r^���y�����yQ/r^�"�E��W9/�D伨9/p���^���U΋\���U� \���E� \���U� \���U΋�"��r^�*�E^湜���N� \��\���\w�\З9,���r^�)���r�}��y�G���U� \����"��r^���y�����y���}D� \弨9/p��W9/p�����y����E� \���E΋\���/r^�*�E.r^�9/�E΋z���^伨9/p�����y�����y�����yQ/r^�*��r^�&#