浏览代码

init

/hh-develop-walljump_bugfixes
Hunter 5 年前
当前提交
c92a9008
共有 21 个文件被更改,包括 2495 次插入252 次删除
  1. 4
      UnitySDK/Assets/ML-Agents/Examples/Soccer/Materials/Physic_Materials/zeroFriction.physicMaterial
  2. 6
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.asset
  3. 6
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.asset
  4. 4
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/WallJumpPlayer.asset
  5. 390
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab
  6. 365
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
  7. 10
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAcademy.cs
  8. 374
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs
  9. 5
      UnitySDK/ProjectSettings/EditorBuildSettings.asset
  10. 6
      UnitySDK/ProjectSettings/ProjectSettings.asset
  11. 9
      UnitySDK/ProjectSettings/TimeManager.asset
  12. 57
      config/trainer_config.yaml
  13. 98
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs
  14. 11
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs.meta
  15. 367
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.nn
  16. 7
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.nn.meta
  17. 1001
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.nn
  18. 7
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.nn.meta
  19. 1
      UnitySDK/csharp_timers.json
  20. 1
      csharp_timers.json
  21. 18
      UnitySDK/UnitySDK.sln.DotSettings

4
UnitySDK/Assets/ML-Agents/Examples/Soccer/Materials/Physic_Materials/zeroFriction.physicMaterial


dynamicFriction: 0
staticFriction: 0
bounciness: 0
frictionCombine: 0
bounceCombine: 3
frictionCombine: 1
bounceCombine: 1

6
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.asset


m_Name: BigWallJumpLearning
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 74
numStackedVectorObservations: 6
vectorObservationSize: 83
numStackedVectorObservations: 1
vectorActionSize: 03000000030000000300000002000000
cameraResolutions: []
vectorActionDescriptions:

-
vectorActionSpaceType: 0
model: {fileID: 11400000, guid: b036370dc05b9481bbcee7db40d40b5d, type: 3}
model: {fileID: 11400000, guid: 63d1ecc7b513b452dbb35847816f506b, type: 3}
inferenceDevice: 0

6
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.asset


m_Name: SmallWallJumpLearning
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 74
numStackedVectorObservations: 6
vectorObservationSize: 83
numStackedVectorObservations: 1
vectorActionSize: 03000000030000000300000002000000
cameraResolutions: []
vectorActionDescriptions:

-
vectorActionSpaceType: 0
model: {fileID: 11400000, guid: ef4a2c4f314e94d718e08c7c71b3c5f0, type: 3}
model: {fileID: 11400000, guid: 810652450bd9048e5846b47d543eec07, type: 3}
inferenceDevice: 0

4
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/WallJumpPlayer.asset


m_Name: WallJumpPlayer
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 74
numStackedVectorObservations: 6
vectorObservationSize: 83
numStackedVectorObservations: 1
vectorActionSize: 03000000030000000300000002000000
cameraResolutions: []
vectorActionDescriptions:

390
UnitySDK/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab


- component: {fileID: 23244285057608692}
- component: {fileID: 54408752902065764}
m_Layer: 0
m_Name: ShortBlock
m_Name: ShortBlock (2)
m_IsActive: 1
m_IsActive: 0
--- !u!1 &1191598557174792
GameObject:
m_ObjectHideFlags: 1

- component: {fileID: 4651390251185036}
- component: {fileID: 65193133000831296}
- component: {fileID: 54678503543725326}
- component: {fileID: 114549333318442362}
- component: {fileID: 114925928594762506}
- component: {fileID: 114092229367912210}
m_Layer: 0

m_Component:
- component: {fileID: 4886712515982252}
- component: {fileID: 33154540559471312}
- component: {fileID: 65222653177649434}
- component: {fileID: 23622490785648000}
m_Layer: 0
m_Name: Ground

m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1384622690378190
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4959657776237834}
- component: {fileID: 33881902413503160}
- component: {fileID: 65434985937573178}
- component: {fileID: 23159091586461764}
- component: {fileID: 54616896319796812}
m_Layer: 0
m_Name: ShortBlock (1)
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1438278873213570
GameObject:
m_ObjectHideFlags: 1

- component: {fileID: 33146660732111500}
- component: {fileID: 65611839918206582}
- component: {fileID: 23557798664619476}
- component: {fileID: 54971179506610726}
m_Layer: 0
m_Name: Border
m_TagString: walkableSurface

m_IsActive: 1
--- !u!1 &1478101936519122
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4972445296092312}
- component: {fileID: 33570794665724658}
- component: {fileID: 65182162565226850}
- component: {fileID: 23862399076711284}
- component: {fileID: 54757390068510808}
m_Layer: 0
m_Name: ShortBlock
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1522580096460278
GameObject:
m_ObjectHideFlags: 1

- component: {fileID: 33638988508065470}
- component: {fileID: 65172803744987730}
- component: {fileID: 23154667836274938}
- component: {fileID: 54796686971211664}
m_Layer: 0
m_Name: Wall
m_TagString: wall

m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1587026930486312
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4267601320324198}
- component: {fileID: 33378601950005852}
- component: {fileID: 135413715923451314}
- component: {fileID: 23540841124984520}
- component: {fileID: 54965883911478546}
m_Layer: 0
m_Name: Sphere
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1823012949159486
GameObject:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1438278873213570}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.05, z: 0}
m_LocalPosition: {x: 0, y: -0.005, z: 0}
m_LocalScale: {x: 1.0500001, y: 1, z: 1.0500001}
m_Children: []
m_Father: {fileID: 4886712515982252}

m_Father: {fileID: 4651390251185036}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4267601320324198
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1587026930486312}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 3.01, y: 1.3299999, z: -7.8600006}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4651390251185036
Transform:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1886170194660384}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.05, z: -6.27}
m_LocalPosition: {x: 0, y: 1.05, z: -8.17}
m_LocalScale: {x: 16.2, y: 1, z: 7}
m_Children: []
m_Father: {fileID: 4768003208014390}

- {fileID: 4011541840118462}
- {fileID: 4764219638476960}
- {fileID: 4886712515982252}
- {fileID: 4267601320324198}
- {fileID: 4972445296092312}
- {fileID: 4959657776237834}
- {fileID: 4969149838347924}
m_Father: {fileID: 0}
m_RootOrder: 0

m_GameObject: {fileID: 1528738716925344}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -1.98}
m_LocalScale: {x: 20, y: 0, z: 1.5}
m_LocalScale: {x: 21.5, y: 0, z: 1.5}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 0

m_Father: {fileID: 4238879128256220}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!4 &4959657776237834
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1384622690378190}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.89, y: 1.33, z: -7.86}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4969149838347924
Transform:
m_ObjectHideFlags: 1

m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 3.97, y: 1.33, z: -7.86}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4972445296092312
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1478101936519122}
m_LocalPosition: {x: -2.67, y: 1.33, z: -5.96}
m_LocalPosition: {x: -2.67, y: 1.33, z: -7.86}
m_RootOrder: 5
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &20236434339313884
Camera:

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23159091586461764
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1384622690378190}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, 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: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23203150414451356
MeshRenderer:
m_ObjectHideFlags: 1

m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
- {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23540841124984520
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1587026930486312}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23862399076711284
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1478101936519122}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, 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: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23928778190977406
MeshRenderer:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1324926338613664}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33378601950005852
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1587026930486312}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33570794665724658
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1478101936519122}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33618033993823702
MeshFilter:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1877263999586638}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33881902413503160
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1384622690378190}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33914611813991778
MeshFilter:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1019344445637276}
serializedVersion: 2
m_Mass: 25
m_Mass: 100
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!54 &54616896319796812
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1384622690378190}
serializedVersion: 2
m_Mass: 100
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1195095783991828}
serializedVersion: 2
m_Mass: 5
m_Mass: 10
m_Drag: 0.5
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 80
m_CollisionDetection: 1
--- !u!54 &54757390068510808
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1478101936519122}
serializedVersion: 2
m_Mass: 20
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1

m_CollisionDetection: 0
--- !u!54 &54796686971211664
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1528738716925344}
serializedVersion: 2
m_Mass: 10000
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!54 &54965883911478546
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1587026930486312}
serializedVersion: 2
m_Mass: 150
m_Drag: 0.5
m_AngularDrag: 0.5
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 1
--- !u!54 &54971179506610726
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1438278873213570}
serializedVersion: 2
m_Mass: 10000
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!65 &65172803744987730
BoxCollider:
m_ObjectHideFlags: 1

serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!65 &65193133000831296
--- !u!65 &65182162565226850
m_GameObject: {fileID: 1195095783991828}
m_GameObject: {fileID: 1478101936519122}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1

--- !u!65 &65222653177649434
--- !u!65 &65193133000831296
m_GameObject: {fileID: 1324926338613664}
m_GameObject: {fileID: 1195095783991828}
m_Enabled: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}

serializedVersion: 2
m_Size: {x: 400, y: 500, z: 400}
m_Center: {x: 0, y: 250, z: 0}
--- !u!65 &65434985937573178
BoxCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1384622690378190}
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!65 &65611839918206582
BoxCollider:
m_ObjectHideFlags: 1

m_Script: {fileID: 11500000, guid: bb172294dbbcc408286b156a2c4b553c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &114549333318442362
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1195095783991828}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e340869c035f9451681a919fc0bf98b2, type: 3}
m_Name:
m_EditorClassIdentifier:
debugDrawGizmos: 0
hitGroundColliders:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
groundCheckBoxLocalPos: {x: 0, y: -0.52, z: 0}
groundCheckBoxSize: {x: 0.99, y: 0.02, z: 0.99}
isGrounded: 0
ungroundedTime: 0
--- !u!114 &114925928594762506
MonoBehaviour:
m_ObjectHideFlags: 1

m_Script: {fileID: 11500000, guid: 676fca959b8ee45539773905ca71afa1, type: 3}
m_Name:
m_EditorClassIdentifier:
brain: {fileID: 0}
brain: {fileID: 11400000, guid: 39363e248a8794f05baed8bfa17eb690, type: 2}
agentParameters:
agentCameras: []
agentRenderTextures: []

numberOfActionsBetweenDecisions: 5
numberOfActionsBetweenDecisions: 3
goal: {fileID: 1982078136115924}
shortBlock: {fileID: 1019344445637276}
shortBlock: {fileID: 1384622690378190}
jumpingTime: 0
jumpTime: 0.2
fallingForce: 111
hitGroundColliders:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
m_currentVelMag: 0
--- !u!135 &135413715923451314
SphereCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1587026930486312}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}

365
UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity


debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &92261730
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 1019344445637276, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 92261731}
- component: {fileID: 92261735}
- component: {fileID: 92261734}
- component: {fileID: 92261733}
- component: {fileID: 92261732}
m_Layer: 0
m_Name: ShortBlock (1)
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &92261731
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 4969149838347924, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 92261730}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.89, y: 1.33, z: -7.86}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_Children: []
m_Father: {fileID: 137339789}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &92261732
Rigidbody:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 54408752902065764, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 92261730}
serializedVersion: 2
m_Mass: 20
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 80
m_CollisionDetection: 0
--- !u!23 &92261733
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 23244285057608692, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 92261730}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, 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: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!65 &92261734
BoxCollider:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 65735913549688546, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 92261730}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &92261735
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 33731768374180322, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 92261730}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &117944611
Prefab:
m_ObjectHideFlags: 0

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
--- !u!4 &137339789 stripped
Transform:
m_PrefabParentObject: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0,
type: 2}
m_PrefabInternal: {fileID: 1838274516}
--- !u!1001 &201057664
Prefab:
m_ObjectHideFlags: 0

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
--- !u!1 &252453051
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 252453055}
- component: {fileID: 252453054}
- component: {fileID: 252453053}
- component: {fileID: 252453052}
- component: {fileID: 252453056}
m_Layer: 0
m_Name: Sphere
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &252453052
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 252453051}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!135 &252453053
SphereCollider:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 252453051}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &252453054
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 252453051}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &252453055
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 252453051}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 3.01, y: 1.3299999, z: -7.8600006}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_Children: []
m_Father: {fileID: 137339789}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &252453056
Rigidbody:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 252453051}
serializedVersion: 2
m_Mass: 150
m_Drag: 0.5
m_AngularDrag: 0.5
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 1
--- !u!1 &318490716
GameObject:
m_ObjectHideFlags: 1

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1886170194660384, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &1570418173
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.x
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0

resetParameters:
m_ResetParameters:
- key: big_wall_min_height
value: 8
value: 8.5
value: 8
agentRunSpeed: 3
value: 8.5
agentRunSpeed: 5
agentMaxVel: 10
agentRotationSpeed: 7
agentFallingSpeed: 100
gravityMultiplier: 2.5
agentJumpVelocity: 777
gravityMultiplier: 1
agentJumpVelocity: 25
--- !u!1001 &1838274516
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4969149838347924, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 114925928594762506, guid: 54e3af627216447f790531de496099f0,
type: 2}
propertyPath: shortBlock
value:
objectReference: {fileID: 252453051}
- target: {fileID: 1019344445637276, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &1839574406
Prefab:
m_ObjectHideFlags: 0

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

objectReference: {fileID: 0}
- target: {fileID: 1280098394364104, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_IsActive
value: 1
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}

10
UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAcademy.cs


{
[Header("Specific to WallJump")]
public float agentRunSpeed;
public float agentMaxVel = 5; //maximum agent velocity
public float agentRotationSpeed = 5;
public float agentFallingSpeed = 100;
[HideInInspector]
// [HideInInspector]
[HideInInspector]
public float agentJumpVelocity = 777;
// [HideInInspector]
public float agentJumpVelocity = 3;
// public float agentJumpVelocity = 777;
[HideInInspector]
public float agentJumpVelocityMaxChange = 10;

374
UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs


using UnityEngine;
using MLAgents;
[RequireComponent(typeof(AgentCubeGroundCheck))] // Required for groundcheck
public class WallJumpAgent : Agent
{
// Depending on this value, the wall will have different height

Bounds m_SpawnAreaBounds;
public GameObject goal;
// public GameObject goal;
public GameObject shortBlock;
public GameObject wall;
Rigidbody m_ShortBlockRb;

WallJumpAcademy m_Academy;
RayPerception m_RayPer;
public float jumpingTime;
public float jumpTime;
// This is a downward force applied when falling to make jumps look
// less floaty
public float fallingForce;
// Use to check the coliding objects
public Collider[] hitGroundColliders = new Collider[3];
Vector3 m_JumpTargetPos;
Vector3 m_JumpStartingPos;
// public float jumpingTime;
// public float jumpTime;
// // This is a downward force applied when falling to make jumps look
// // less floaty
// public float fallingForce;
// // Use to check the coliding objects
// public Collider[] hitGroundColliders = new Collider[3];
// Vector3 m_JumpTargetPos;
// Vector3 m_JumpStartingPos;
// public bool grounded;
// public bool largeGround;
public float m_currentVelMag;
//Groundcheck
AgentCubeGroundCheck m_groundCheck;
int fuTimer;
m_groundCheck = GetComponent<AgentCubeGroundCheck>();
m_Academy = FindObjectOfType<WallJumpAcademy>();
m_RayPer = GetComponent<RayPerception>();
m_Configuration = Random.Range(0, 5);

m_SpawnAreaBounds = spawnArea.GetComponent<Collider>().bounds;
m_GroundRenderer = ground.GetComponent<Renderer>();
m_GroundMaterial = m_GroundRenderer.material;
public void Jump()
{
jumpingTime = 0.2f;
m_JumpStartingPos = m_AgentRb.position;
}
// public void Jump()
// {
// jumpingTime = 0.2f;
// m_JumpStartingPos = m_AgentRb.position;
// }
/// <summary>
/// Does the ground check.
/// </summary>
/// <returns><c>true</c>, if the agent is on the ground,
/// <c>false</c> otherwise.</returns>
/// <param name="smallCheck"></param>
public bool DoGroundCheck(bool smallCheck)
{
if (!smallCheck)
{
hitGroundColliders = new Collider[3];
var o = gameObject;
Physics.OverlapBoxNonAlloc(
o.transform.position + new Vector3(0, -0.05f, 0),
new Vector3(0.95f / 2f, 0.5f, 0.95f / 2f),
hitGroundColliders,
o.transform.rotation);
var grounded = false;
foreach (var col in hitGroundColliders)
{
if (col != null && col.transform != transform &&
(col.CompareTag("walkableSurface") ||
col.CompareTag("block") ||
col.CompareTag("wall")))
{
grounded = true; //then we're grounded
break;
}
}
return grounded;
}
else
{
RaycastHit hit;
Physics.Raycast(transform.position + new Vector3(0, -0.05f, 0), -Vector3.up, out hit,
1f);
// /// <summary>
// /// Does the ground check.
// /// </summary>
// /// <returns><c>true</c>, if the agent is on the ground,
// /// <c>false</c> otherwise.</returns>
// /// <param name="smallCheck"></param>
// public bool DoGroundCheck(bool smallCheck)
// {
// if (!smallCheck)
// {
// hitGroundColliders = new Collider[3];
// var o = gameObject;
// Physics.OverlapBoxNonAlloc(
// o.transform.position + new Vector3(0, -0.05f, 0),
// new Vector3(0.95f / 2f, 0.5f, 0.95f / 2f),
// hitGroundColliders,
// o.transform.rotation);
// var grounded = false;
// foreach (var col in hitGroundColliders)
// {
// // if (col != null && col.transform != transform &&
// // (col.CompareTag("walkableSurface") ||
// // col.CompareTag("block") ||
// // col.CompareTag("wall")))
// // {
// if (col != null && col.transform != transform &&
// (col.CompareTag("walkableSurface") ||
// col.CompareTag("block")))
// {
// grounded = true; //then we're grounded
// break;
// }
// }
// return grounded;
// }
// else
// {
// RaycastHit hit;
// // Physics.SphereCast(m_AgentRb.position + new Vector3(0, .5f, 0), .55f, -Vector3.up, out hit,
// // 1f);
// Physics.Raycast(transform.position + new Vector3(0, -0.05f, 0), -Vector3.up, out hit,
// .51f);
if (hit.collider != null &&
(hit.collider.CompareTag("walkableSurface") ||
hit.collider.CompareTag("block") ||
hit.collider.CompareTag("wall"))
&& hit.normal.y > 0.95f)
{
return true;
}
// // if (hit.collider != null &&
// // (hit.collider.CompareTag("walkableSurface") ||
// // hit.collider.CompareTag("block") ||
// // hit.collider.CompareTag("wall"))
// // && hit.normal.y > 0.95f)
// // {
// if (hit.collider != null &&
// (hit.collider.CompareTag("walkableSurface") ||
// hit.collider.CompareTag("block"))
// && hit.normal.y > 0.95f)
// {
// return true;
// }
return false;
}
}
// return false;
// }
// }
/// <summary>
/// Moves a rigidbody towards a position smoothly.
/// </summary>
/// <param name="targetPos">Target position.</param>
/// <param name="rb">The rigidbody to be moved.</param>
/// <param name="targetVel">The velocity to target during the
/// motion.</param>
/// <param name="maxVel">The maximum velocity posible.</param>
void MoveTowards(
Vector3 targetPos, Rigidbody rb, float targetVel, float maxVel)
{
var moveToPos = targetPos - rb.worldCenterOfMass;
var velocityTarget = Time.fixedDeltaTime * targetVel * moveToPos;
if (float.IsNaN(velocityTarget.x) == false)
{
rb.velocity = Vector3.MoveTowards(
rb.velocity, velocityTarget, maxVel);
}
}
// /// <summary>
// /// Moves a rigidbody towards a position smoothly.
// /// </summary>
// /// <param name="targetPos">Target position.</param>
// /// <param name="rb">The rigidbody to be moved.</param>
// /// <param name="targetVel">The velocity to target during the
// /// motion.</param>
// /// <param name="maxVel">The maximum velocity posible.</param>
// void MoveTowards(
// Vector3 targetPos, Rigidbody rb, float targetVel, float maxVel)
// {
// var moveToPos = targetPos - rb.worldCenterOfMass;
// var velocityTarget = Time.fixedDeltaTime * targetVel * moveToPos;
// if (float.IsNaN(velocityTarget.x) == false)
// {
// rb.velocity = Vector3.MoveTowards(
// rb.velocity, velocityTarget, maxVel);
// }
// }
// grounded = DoGroundCheck(true);
// largeGround = DoGroundCheck(false);
// print($"Observation: {m_Academy.GetStepCount()} {fuTimer}");
// print($"Observation: {GetStepCount()} {fuTimer}");
var rayDistance = 20f;
float[] rayAngles = { 0f, 45f, 90f, 135f, 180f, 110f, 70f };
AddVectorObs(m_RayPer.Perceive(

var agentPos = m_AgentRb.position - ground.transform.position;
AddVectorObs(agentPos / 20f);
AddVectorObs(DoGroundCheck(true) ? 1 : 0);
// AddVectorObs(grounded? 1 : 0);
AddVectorObs(m_groundCheck.isGrounded);
AddVectorObs(m_AgentRb.velocity/m_Academy.agentMaxVel);
AddVectorObs(m_AgentRb.angularVelocity/m_AgentRb.maxAngularVelocity);
AddVectorObs(m_AgentRb.transform.forward);
}
/// <summary>

public void MoveAgent(float[] act)
{
AddReward(-0.0005f);
var smallGrounded = DoGroundCheck(true);
var largeGrounded = DoGroundCheck(false);
// var smallGrounded = DoGroundCheck(true);
// var smallGrounded = grounded;
// var largeGrounded = largeGround;
// largeGround = largeGrounded;
var dirToGo = Vector3.zero;
var rotateDir = Vector3.zero;

var jumpAction = (int)act[3];
if (dirToGoForwardAction == 1)
dirToGo = (largeGrounded ? 1f : 0.5f) * 1f * transform.forward;
else if (dirToGoForwardAction == 2)
dirToGo = (largeGrounded ? 1f : 0.5f) * -1f * transform.forward;
// print($"Academy: {m_Academy.GetStepCount()}");
// print($"Agent: {GetStepCount()}");
// print($"Action: {GetStepCount()} {fuTimer}");
// if (smallGrounded)
// {
// if (dirToGoForwardAction == 1)
// dirToGo = 1f * transform.forward;
// else if (dirToGoForwardAction == 2)
// dirToGo = -1f * transform.forward;
// if (dirToGoSideAction == 1)
// dirToGo = -0.6f * transform.right;
// else if (dirToGoSideAction == 2)
// dirToGo = 0.6f * transform.right;
// }
// // if (smallGrounded)
// // {
// if (dirToGoForwardAction == 1)
// dirToGo = (largeGrounded ? 1f : 0.1f) * 1f * transform.forward;
// else if (dirToGoForwardAction == 2)
// dirToGo = (largeGrounded ? 1f : 0.1f) * -1f * transform.forward;
// if (dirToGoSideAction == 1)
// dirToGo = (largeGrounded ? 1f : 0.1f) * -0.6f * transform.right;
// else if (dirToGoSideAction == 2)
// dirToGo = (largeGrounded ? 1f : 0.1f) * 0.6f * transform.right;
if (dirToGoForwardAction == 1)
dirToGo += transform.forward;
else if (dirToGoForwardAction == 2)
dirToGo += -transform.forward;
if (dirToGoSideAction == 1)
dirToGo += -transform.right;
else if (dirToGoSideAction == 2)
dirToGo += transform.right;
// // }
if (dirToGoSideAction == 1)
dirToGo = (largeGrounded ? 1f : 0.5f) * -0.6f * transform.right;
else if (dirToGoSideAction == 2)
dirToGo = (largeGrounded ? 1f : 0.5f) * 0.6f * transform.right;
if ((jumpingTime <= 0f) && smallGrounded)
{
// if (largeGrounded)
if (m_groundCheck.isGrounded)
Jump();
// Jump();
// print($"JUMP {m_groundCheck.isGrounded}");
// m_AgentRb.velocity = Vector3.zero;
Vector3 velToUse = m_AgentRb.velocity;
velToUse.y = m_Academy.agentJumpVelocity;
m_AgentRb.velocity = velToUse;
// m_AgentRb.AddForce(Vector3.up * m_Academy.agentJumpVelocity,
// ForceMode.VelocityChange);
// AddReward(-0.01f); //don't constantly jump
}
transform.Rotate(rotateDir, Time.fixedDeltaTime * 300f);
m_AgentRb.AddForce(dirToGo * m_Academy.agentRunSpeed,
ForceMode.VelocityChange);
// transform.Rotate(rotateDir, Time.fixedDeltaTime * 300f);
transform.Rotate(rotateDir, m_Academy.agentRotationSpeed);
if (jumpingTime > 0f)
float runSpeed = m_groundCheck.isGrounded? m_Academy.agentRunSpeed: m_Academy.agentRunSpeed * .25f;
if(m_currentVelMag < m_Academy.agentMaxVel)
m_JumpTargetPos =
new Vector3(m_AgentRb.position.x,
m_JumpStartingPos.y + m_Academy.agentJumpHeight,
m_AgentRb.position.z) + dirToGo;
MoveTowards(m_JumpTargetPos, m_AgentRb, m_Academy.agentJumpVelocity,
m_Academy.agentJumpVelocityMaxChange);
// if (m_groundCheck.isGrounded)
// {
m_AgentRb.AddForce(dirToGo.normalized * runSpeed,
ForceMode.VelocityChange);
// }
// if(m_currentVelMag < m_Academy.agentMaxVel)
// {
// m_AgentRb.AddForce(dirToGo * m_Academy.agentRunSpeed,
// ForceMode.VelocityChange);
// }
if (!(jumpingTime > 0f) && !largeGrounded)
// if (jumpingTime > 0f)
// {
// m_JumpTargetPos =
// new Vector3(m_AgentRb.position.x,
// m_JumpStartingPos.y + m_Academy.agentJumpHeight,
// m_AgentRb.position.z) + dirToGo;
// MoveTowards(m_JumpTargetPos, m_AgentRb, m_Academy.agentJumpVelocity,
// m_Academy.agentJumpVelocityMaxChange);
// }
if (!m_groundCheck.isGrounded)
Vector3.down * fallingForce, ForceMode.Acceleration);
// Vector3.down * fallingForce, ForceMode.Acceleration);
Vector3.down * m_Academy.agentFallingSpeed, ForceMode.Acceleration);
jumpingTime -= Time.fixedDeltaTime;
// if (!(jumpingTime > 0f) && !m_groundCheck.isGrounded)
// {
// m_AgentRb.AddForce(
// // Vector3.down * fallingForce, ForceMode.Acceleration);
// Vector3.down * m_Academy.agentFallingSpeed, ForceMode.Acceleration);
// }
// jumpingTime -= Time.fixedDeltaTime;
// public void MoveAgent(float[] act)
// {
// AddReward(-0.0005f);
// var smallGrounded = DoGroundCheck(true);
// grounded = smallGrounded;
// var largeGrounded = DoGroundCheck(false);
// var dirToGo = Vector3.zero;
// var rotateDir = Vector3.zero;
// var dirToGoForwardAction = (int)act[0];
// var rotateDirAction = (int)act[1];
// var dirToGoSideAction = (int)act[2];
// var jumpAction = (int)act[3];
// if (dirToGoForwardAction == 1)
// dirToGo = (largeGrounded ? 1f : 0.5f) * 1f * transform.forward;
// else if (dirToGoForwardAction == 2)
// dirToGo = (largeGrounded ? 1f : 0.5f) * -1f * transform.forward;
// if (rotateDirAction == 1)
// rotateDir = transform.up * -1f;
// else if (rotateDirAction == 2)
// rotateDir = transform.up * 1f;
// if (dirToGoSideAction == 1)
// dirToGo = (largeGrounded ? 1f : 0.5f) * -0.6f * transform.right;
// else if (dirToGoSideAction == 2)
// dirToGo = (largeGrounded ? 1f : 0.5f) * 0.6f * transform.right;
// if (jumpAction == 1)
// if ((jumpingTime <= 0f) && smallGrounded)
// {
// Jump();
// AddReward(-0.01f); //don't constantly jump
// }
// transform.Rotate(rotateDir, Time.fixedDeltaTime * 300f);
// m_AgentRb.AddForce(dirToGo * m_Academy.agentRunSpeed,
// ForceMode.VelocityChange);
// if (jumpingTime > 0f)
// {
// m_JumpTargetPos =
// new Vector3(m_AgentRb.position.x,
// m_JumpStartingPos.y + m_Academy.agentJumpHeight,
// m_AgentRb.position.z) + dirToGo;
// MoveTowards(m_JumpTargetPos, m_AgentRb, m_Academy.agentJumpVelocity,
// m_Academy.agentJumpVelocityMaxChange);
// }
// if (!(jumpingTime > 0f) && !largeGrounded)
// {
// m_AgentRb.AddForce(
// Vector3.down * fallingForce, ForceMode.Acceleration);
// }
// jumpingTime -= Time.fixedDeltaTime;
// }
if ((!Physics.Raycast(m_AgentRb.position, Vector3.down, 20))
|| (!Physics.Raycast(m_ShortBlockRb.position, Vector3.down, 20)))
// if ((!Physics.Raycast(m_AgentRb.position, Vector3.down, 20))
// || (!Physics.Raycast(m_ShortBlockRb.position, Vector3.down, 20)))
if(m_AgentRb.position.y < -1 || m_ShortBlockRb.position.y < -1)
{
Done();
SetReward(-1f);

}
// Detect when the agent hits the goal
// void OnTriggerEnter(Collider col)
if (col.gameObject.CompareTag("goal") && DoGroundCheck(true))
// if (col.gameObject.CompareTag("goal") && DoGroundCheck(true))
if (col.gameObject.CompareTag("goal") && m_groundCheck.isGrounded)
Done();
Done();
}
}

transform.localPosition = new Vector3(
18 * (Random.value - 0.5f), 1, -12);
m_Configuration = Random.Range(0, 5);
m_AgentRb.velocity = default(Vector3);
// m_AgentRb.velocity = default(Vector3);
m_AgentRb.velocity = Vector3.zero;
m_currentVelMag = m_AgentRb.velocity.magnitude;
fuTimer++;
if (m_Configuration != -1)
{
ConfigureAgent(m_Configuration);

5
UnitySDK/ProjectSettings/EditorBuildSettings.asset


EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes: []
m_Scenes:
- enabled: 1
path: Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
guid: 56024e8d040d344709949bc88128944d

6
UnitySDK/ProjectSettings/ProjectSettings.asset


--- !u!129 &1
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 14
serializedVersion: 15
productGUID: cd7e9a0e0d1d14312ad9e89757262f3b
AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0

oculus:
sharedDepthBuffer: 0
dashSupport: 0
v2Signing: 0
protectGraphicsMemory: 0
useHDRDisplay: 0
m_ColorGamuts: 00000000

tvOSManualSigningProvisioningProfileID:
appleEnableAutomaticSigning: 0
clonedFromGUID: 00000000000000000000000000000000
AndroidTargetDevice: 0
AndroidTargetArchitectures: 5
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
AndroidKeystoreName:

switchAllowsVideoCapturing: 1
switchAllowsRuntimeAddOnContentInstall: 0
switchDataLossConfirmation: 0
switchUserAccountLockEnabled: 0
switchSupportedNpadStyles: 3
switchSocketConfigEnabled: 0
switchTcpInitialSendBufferSize: 32

9
UnitySDK/ProjectSettings/TimeManager.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!5 &1
TimeManager:
m_ObjectHideFlags: 0
Fixed Timestep: 0.02
Maximum Allowed Timestep: 0.33333334
m_TimeScale: 1
Maximum Particle Timestep: 0.03

57
config/trainer_config.yaml


num_layers: 2
SmallWallJumpLearning:
max_steps: 1.0e6
max_steps: 2.0e5
batch_size: 128
buffer_size: 2048
beta: 5.0e-3

num_layers: 2
normalize: false
# BigWallJumpLearning:
# max_steps: 1.0e6
# batch_size: 128
# buffer_size: 2048
# beta: 5.0e-3
# hidden_units: 256
# summary_freq: 2000
# time_horizon: 128
# num_layers: 2
# normalize: false
max_steps: 1.0e6
batch_size: 128
buffer_size: 2048
beta: 5.0e-3
hidden_units: 256
summary_freq: 2000
time_horizon: 128
normalize: true
num_epoch: 8
time_horizon: 1000
batch_size: 512
buffer_size: 4096
max_steps: 1e6
summary_freq: 3000
normalize: false
hidden_units: 128
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.99
curiosity:
strength: 0.02
gamma: 0.99
encoding_size: 256
# BigWallJumpLearning:
# normalize: true
# num_epoch: 3
# time_horizon: 1000
# batch_size: 2024
# buffer_size: 20240
# max_steps: 1e6
# summary_freq: 3000
# num_layers: 3
# hidden_units: 512
# reward_signals:
# extrinsic:
# strength: 1.0
# gamma: 0.99
# curiosity:
# strength: 0.02
# gamma: 0.99
# encoding_size: 256
StrikerLearning:
max_steps: 5.0e5

98
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs


using System.Collections;
using UnityEngine;
// using MLAgents;
namespace MLAgents
{
/// <summary>
/// Perform Groundcheck using a Physics OverlapBox
/// </summary>
[DisallowMultipleComponent]
public class AgentCubeGroundCheck : MonoBehaviour
{
public bool debugDrawGizmos;
// public List<string> tagsToDetect = new List<string>(){"walkableSurface", "block"};
public Collider[] hitGroundColliders = new Collider[3];
public Vector3 groundCheckBoxLocalPos = new Vector3(0,-0.52f, 0);
public Vector3 groundCheckBoxSize = new Vector3(0.99f, 0.02f, 0.99f);
public bool isGrounded;
public float ungroundedTime; //amount of time agent hasn't been grounded
void FixedUpdate()
{
DoGroundCheck();
if(!isGrounded)
{
ungroundedTime += Time.deltaTime;
}
else
{
ungroundedTime = 0;
}
}
/// <summary>
/// Does the ground check.
/// </summary>
/// <returns><c>true</c>, if the agent is on the ground,
/// <c>false</c> otherwise.</returns>
/// <param name="smallCheck"></param>
public void DoGroundCheck()
{
// hitGroundColliders = new Collider[3];
isGrounded = false;
if(Physics.OverlapBoxNonAlloc(
transform.TransformPoint(groundCheckBoxLocalPos),
groundCheckBoxSize/2,
hitGroundColliders,
transform.rotation) > 0)
{
foreach (var col in hitGroundColliders)
{
// if (col != null && col.transform != transform &&
// (col.CompareTag("walkableSurface") ||
// col.CompareTag("block") ||
// col.CompareTag("wall")))
// {
if (col != null && col.transform != transform &&
(col.CompareTag("walkableSurface") ||
// col.CompareTag("wall") ||
col.CompareTag("block")))
{
isGrounded = true; //then we're grounded
break;
}
}
}
//empty the array
for (int i = 0; i < hitGroundColliders.Length; i++)
{
hitGroundColliders[i] = null;
}
}
//Draw the Box Overlap as a gizmo to show where it currently is testing. Click the Gizmos button to see this
void OnDrawGizmos()
{
if (debugDrawGizmos)
{
// Convert the local coordinate values into world
// coordinates for the matrix transformation.
//Draw a cube where the OverlapBox is (positioned where your GameObject is as well as a size)
// Gizmos.DrawWireCube(transform.position, transform.localScale);
Gizmos.color = Color.red;
Gizmos.matrix = transform.localToWorldMatrix;
Gizmos.DrawWireCube(groundCheckBoxLocalPos, groundCheckBoxSize);
// Gizmos.color = Color.blue;
// Gizmos.DrawWireCube(transform.TransformPoint(groundCheckBoxLocalPos), groundCheckBoxSize);
// Gizmos.DrawWireCube(transform.TransformPoint(groundCheckBoxLocalPos), transform.localScale);
}
}
}
}

11
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs.meta


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

367
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.nn
文件差异内容过多而无法显示
查看文件

7
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.nn.meta


fileFormatVersion: 2
guid: 63d1ecc7b513b452dbb35847816f506b
ScriptedImporter:
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3}

1001
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.nn
文件差异内容过多而无法显示
查看文件

7
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.nn.meta


fileFormatVersion: 2
guid: 810652450bd9048e5846b47d543eec07
ScriptedImporter:
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3}

1
UnitySDK/csharp_timers.json


{"count":1,"self":75.7271104,"total":89.109481,"children":{"AgentResetIfDone":{"count":4360,"self":0.21384199999999998,"total":0.21384199999999998,"children":null},"AgentSendState":{"count":4360,"self":1.359667,"total":3.765707,"children":{"CollectObservations":{"count":34896,"self":2.40604,"total":2.40604,"children":null}}},"BrainDecideAction":{"count":4360,"self":6.1270219999999993,"total":6.1270219999999993,"children":null},"AcademyStep":{"count":4360,"self":0.119783,"total":0.119783,"children":null},"AgentAct":{"count":4360,"self":3.155154,"total":3.155154,"children":null}}}

1
csharp_timers.json


{"count":1,"self":734.6514432,"total":19807.115766,"children":{"AgentResetIfDone":{"count":986659,"self":10.4867776,"total":10.486778,"children":null},"AgentSendState":{"count":986659,"self":64.5328,"total":294.04925099999997,"children":{"CollectObservations":{"count":7893288,"self":229.51644159999998,"total":229.51645399999998,"children":null}}},"BrainDecideAction":{"count":986659,"self":18022.7817472,"total":18022.782152,"children":null},"AcademyStep":{"count":986659,"self":6.2750179999999993,"total":6.2750179999999993,"children":null},"AgentAct":{"count":986659,"self":738.8690944,"total":738.86911,"children":null}}}

18
UnitySDK/UnitySDK.sln.DotSettings


<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BLAS/@EntryIndexedValue">BLAS</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CPU/@EntryIndexedValue">CPU</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GPU/@EntryIndexedValue">GPU</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NN/@EntryIndexedValue">NN</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RL/@EntryIndexedValue">RL</s:String>
<s:Boolean x:Key="/Default/UserDictionary/Words/=BLAS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Logits/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Marsaglia/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=multinomial/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Probs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=protobuf/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Scaler/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Scriptable/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=stddev/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=vals/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
正在加载...
取消
保存