浏览代码

code and prefab clean up

/hh-develop-walljump_bugfixes
Hunter 5 年前
当前提交
b0d33e49
共有 11 个文件被更改,包括 83 次插入911 次删除
  1. 25
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs
  2. 1
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeMovement.cs
  3. 2
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.asset
  4. 2
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.asset
  5. 519
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab
  6. 90
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
  7. 21
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAcademy.cs
  8. 328
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs
  9. 2
      UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn.meta
  10. 2
      UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn.meta
  11. 2
      UnitySDK/csharp_timers.json

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


using System.Collections;
//Standardized ground check for the Agent Cube
// using MLAgents;
namespace MLAgents
{

public class AgentCubeGroundCheck : MonoBehaviour
{
public bool debugDrawGizmos;
// public List<string> tagsToDetect = new List<string>(){"walkableSurface", "block"};
void FixedUpdate()
{

/// <param name="smallCheck"></param>
public void DoGroundCheck()
{
// hitGroundColliders = new Collider[3];
isGrounded = false;
if(Physics.OverlapBoxNonAlloc(
transform.TransformPoint(groundCheckBoxLocalPos),

{
foreach (var col in hitGroundColliders)
{
// if (col != null && col.transform != transform &&
// (col.CompareTag("walkableSurface") ||
// col.CompareTag("block") ||
// col.CompareTag("wall")))
// {
// col.CompareTag("wall") ||
col.CompareTag("block")))
{
isGrounded = true; //then we're grounded

}
}
//Draw the Box Overlap as a gizmo to show where it currently is testing. Click the Gizmos button to see this
//Draw the Box Overlap as a gizmo to show where it currently is testing.
// 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.blue;
// Gizmos.DrawWireCube(transform.TransformPoint(groundCheckBoxLocalPos), groundCheckBoxSize);
// Gizmos.DrawWireCube(transform.TransformPoint(groundCheckBoxLocalPos), transform.localScale);
}
}

1
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeMovement.cs


//Standardized movement controller for the Agent Cube
using UnityEngine;
namespace MLAgents

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


-
-
vectorActionSpaceType: 0
model: {fileID: 11400000, guid: 375ec7d55d3e645eca6eb504433e4a13, type: 3}
model: {fileID: 11400000, guid: 2eb7bc1cb4297440f8970c08096869cd, type: 3}
inferenceDevice: 0

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


-
-
vectorActionSpaceType: 0
model: {fileID: 11400000, guid: 2a4c1494f7c244cce84002eb8ac585df, type: 3}
model: {fileID: 11400000, guid: 32c7a8411c2df4eefba2216c5880b982, type: 3}
inferenceDevice: 0

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


m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1280098394364104}
m_IsPrefabParent: 1
--- !u!1 &1019344445637276
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4969149838347924}
- component: {fileID: 33731768374180322}
- component: {fileID: 65735913549688546}
- component: {fileID: 23244285057608692}
- component: {fileID: 54408752902065764}
m_Layer: 0
m_Name: ShortBlock (2)
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1040054285917182
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4982066033175770}
- component: {fileID: 33270795607675966}
- component: {fileID: 135059703222534478}
- component: {fileID: 23641080074277960}
- component: {fileID: 54949149748672182}
m_Layer: 0
m_Name: Sphere
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1191598557174792
GameObject:
m_ObjectHideFlags: 1

m_NavMeshLayer: 0
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

m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1485171514847798
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4581736733780204}
- component: {fileID: 33929573470517752}
- component: {fileID: 65633408188627868}
- component: {fileID: 23691439635972052}
- component: {fileID: 54056988429233430}
m_Layer: 0
m_Name: ShortBlock (1)
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!1 &1522580096460278
GameObject:
m_ObjectHideFlags: 1

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_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: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4581736733780204
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1485171514847798}
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: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4651390251185036
Transform:
m_ObjectHideFlags: 1

- {fileID: 4011541840118462}
- {fileID: 4764219638476960}
- {fileID: 4886712515982252}
- {fileID: 4982066033175770}
- {fileID: 4267601320324198}
- {fileID: 4581736733780204}
- {fileID: 4969149838347924}
- {fileID: 4959657776237834}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 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: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4969149838347924
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1019344445637276}
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: 9
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4972445296092312
Transform:
m_ObjectHideFlags: 1

m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.67, y: 1.33, z: -7.86}
m_LocalScale: {x: 3, y: 1.5, z: 3}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4982066033175770
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1040054285917182}
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_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_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: f731be6866ce749fd8349e67ae81f76a, 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 &23244285057608692
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1019344445637276}
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: 88b9ae7af2c1748a0a1f63407587a601, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 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_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 &23557798664619476
MeshRenderer:
m_ObjectHideFlags: 1

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23641080074277960
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1040054285917182}
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!23 &23691439635972052
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1485171514847798}
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 &23724199705901440
MeshRenderer:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1324926338613664}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33270795607675966
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1040054285917182}
m_Mesh: {fileID: 10207, 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_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1528738716925344}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33731768374180322
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1019344445637276}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33735173681975238
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_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33929573470517752
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1485171514847798}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33966533147322750
MeshFilter:
m_ObjectHideFlags: 1

m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!54 &54056988429233430
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1485171514847798}
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!54 &54408752902065764
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1019344445637276}
serializedVersion: 2
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_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!54 &54678503543725326
Rigidbody:
m_ObjectHideFlags: 1

m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!54 &54949149748672182
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1040054285917182}
serializedVersion: 2
m_Mass: 25
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 &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

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_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 &65633408188627868
BoxCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1485171514847798}
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 &65735913549688546
BoxCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1019344445637276}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1

resetOnDone: 1
onDemandDecision: 0
numberOfActionsBetweenDecisions: 3
noWallBrain: {fileID: 11400000, guid: 6265d54a73b2a448daa5d2fd5ed22301, type: 2}
smallWallBrain: {fileID: 11400000, guid: 6265d54a73b2a448daa5d2fd5ed22301, type: 2}
bigWallBrain: {fileID: 11400000, guid: aedc31894d06b4044928faf0507b1047, type: 2}
noWallBrain: {fileID: 11400000, guid: 2069d6ef649a549feb29054d6af8a86f, type: 2}
smallWallBrain: {fileID: 11400000, guid: 2069d6ef649a549feb29054d6af8a86f, type: 2}
bigWallBrain: {fileID: 11400000, guid: b5f530c5bf8d64bf8a18df92e283bb9c, type: 2}
shortBlock: {fileID: 1040054285917182}
shortBlock: {fileID: 1478101936519122}
jumpTimer: 0
m_currentVelMag: 0
m_agentMovement: {fileID: 0}
smoothTime: 0.15
--- !u!135 &135059703222534478
SphereCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1040054285917182}
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!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}

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


m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &987234914
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}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1 &1009000883
GameObject:
m_ObjectHideFlags: 0

value: 8.5
goalScoredMaterial: {fileID: 2100000, guid: df32cc593804f42df97464dc455057b8, type: 2}
failMaterial: {fileID: 2100000, guid: a1daf31cdf41e484ca9ac33a5c6f524a, type: 2}
gravityMultiplier: 1
--- !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: 114925928594762506, guid: 54e3af627216447f790531de496099f0,
type: 2}
propertyPath: m_agentMovement
value:
objectReference: {fileID: 1574236048}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &1839574406
Prefab:
m_ObjectHideFlags: 0

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


public class WallJumpAcademy : Academy
{
[Header("Specific to WallJump")]
// public float agentRunSpeed;
// public float agentMaxVel = 5; //maximum agent velocity
// public float agentIdleDragVelCoeff = .95f; //coeff used to dampen idle velocity
// public float agentJumpHeight;
// public float agentRotationSpeed = 5;
// public float agentFallingSpeed = 100;
// [HideInInspector]
//use ~3 to make things less floaty
public float gravityMultiplier = 2.5f;
// [HideInInspector]
// public float agentJumpVelocity = 3;
// // public float agentJumpVelocity = 777;
// [HideInInspector]
// public float agentJumpVelocityMaxChange = 10;
// Use this for initialization
public override void InitializeAcademy()
{
Physics.gravity *= gravityMultiplier;
}
}

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


public GameObject ground;
public GameObject spawnArea;
Bounds m_SpawnAreaBounds;
// public GameObject goal;
Bounds m_SpawnAreaBounds;
Rigidbody m_ShortBlockRb;
Rigidbody m_AgentRb;
Material m_GroundMaterial;

// public float jumpingTime;
public float jumpTimer; //timer used to control jump timing & prevent rapid doublejumps
// // 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;
private AgentCubeGroundCheck m_groundCheck;
public AgentCubeMovement m_agentMovement;
int fuTimer;
public float smoothTime = 0.3F;
private Vector3 velocity = Vector3.zero;
AgentCubeGroundCheck m_groundCheck;
AgentCubeMovement m_agentMovement;
public override void InitializeAgent()
{

m_RayPer = GetComponent<RayPerception>();
m_Configuration = Random.Range(0, 5);
m_DetectableObjects = new[] { "wall", "goal", "block" };
// Begin the jump sequence
// 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")))
// // {
// 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)
// // {
// if (hit.collider != null &&
// (hit.collider.CompareTag("walkableSurface") ||
// hit.collider.CompareTag("block"))
// && hit.normal.y > 0.95f)
// {
// return true;
// }
// 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);
// }
// }
// 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(grounded? 1 : 0);
AddVectorObs(agentPos / 20f); //help with orientation
AddVectorObs(m_AgentRb.velocity/m_agentMovement.agentRunSpeed);
AddVectorObs(m_AgentRb.angularVelocity/m_AgentRb.maxAngularVelocity);
AddVectorObs(m_AgentRb.transform.forward);
AddVectorObs(m_AgentRb.velocity/m_agentMovement.agentRunSpeed); //normalized vel
AddVectorObs(m_AgentRb.angularVelocity/m_AgentRb.maxAngularVelocity); //normalized angVel
AddVectorObs(m_AgentRb.transform.forward); //help with orientation
}
/// <summary>

}
/// <summary>
/// Chenges the color of the ground for a moment
/// Changes the color of the ground for a moment
/// </summary>
/// <returns>The Enumerator to be used in a Coroutine</returns>
/// <param name="mat">The material to be swaped.</param>

public void MoveAgent(float[] act)
{
AddReward(-0.0005f);
// var smallGrounded = DoGroundCheck(true);
// var smallGrounded = grounded;
// var largeGrounded = largeGround;
// largeGround = largeGrounded;
AddReward(-0.0005f); //hurry up
// var dirToGoSideAction = (int)act[2];
// 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 (dirToGoForwardAction == 1)
dirToGo += transform.forward;
else if (dirToGoForwardAction == 2)
dirToGo += -transform.forward;
//handle jumping
// if (largeGrounded)
// if (m_groundCheck.isGrounded && jumpTimer > .15f)
// Jump();
// print($"JUMP {m_groundCheck.isGrounded}");
// m_AgentRb.velocity = Vector3.zero;
// jumpTimer = 0f;
// Vector3 velToUse = m_AgentRb.velocity;
// velToUse.y = m_Academy.agentJumpVelocity;
// m_AgentRb.velocity = velToUse;
// m_AgentRb.AddForce(Vector3.up * m_Academy.agentJumpVelocity,
// ForceMode.VelocityChange);
// m_AgentRb.AddForce(Vector3.up * m_Academy.agentJumpVelocity,
// ForceMode.Impulse);
// AddReward(-0.01f); //don't constantly jump
// transform.Rotate(rotateDir, Time.fixedDeltaTime * 300f);
// transform.Rotate(rotateDir, m_Academy.agentRotationSpeed);
//handle body rotation
// m_AgentRb.MoveRotation(m_AgentRb.rotation * Quaternion.AngleAxis(m_Academy.agentRotationSpeed, rotateDir));
//Running Logic
// float runSpeed = Mathf.Clamp(m_agentMovement.agentRunSpeed - m_currentVelMag, 0, m_agentMovement.agentRunSpeed);
// float runSpeed = Mathf.Clamp(m_agentMovement.agentRunMaxVelMagnitude - m_currentVelMag, 0, m_agentMovement.agentRunMaxVelMagnitude);
if (!m_groundCheck.isGrounded)
//handle running
if (dirToGo != Vector3.zero)
m_agentMovement.RunInAir(m_AgentRb, dirToGo.normalized);
if (!m_groundCheck.isGrounded)
{
m_agentMovement.RunInAir(m_AgentRb, dirToGo.normalized);
}
else
{
m_agentMovement.RunOnGround(m_AgentRb, dirToGo.normalized);
}
else
{
m_agentMovement.RunOnGround(m_AgentRb, dirToGo.normalized);
}
// m_AgentRb.AddForce(dirToGo.normalized * runSpeed,
// ForceMode.VelocityChange);
// m_AgentRb.AddForce(dirToGo.normalized * runSpeed,
// ForceMode.Impulse);
// if (m_groundCheck.isGrounded && dirToGo == Vector3.zero && jumpTimer > .15f)
//handle idle drag
// m_AgentRb.velocity *= m_Academy.agentIdleDragVelCoeff;
// print("damping");
// //Running Logic
// Vector3 smoothedVel = Vector3.SmoothDamp(m_AgentRb.velocity, dirToGo * runSpeed, ref velocity, smoothTime);
// m_AgentRb.velocity = smoothedVel;
// if(m_currentVelMag < m_Academy.agentMaxVel)
// {
// 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 (!m_groundCheck.isGrounded && jumpTimer > .15f)
//handle falling forces
// m_AgentRb.AddForce(
// // Vector3.down * fallingForce, ForceMode.Acceleration);
// Vector3.down * m_Academy.agentFallingSpeed, ForceMode.Acceleration);
// if (!(jumpingTime > 0f) && !m_groundCheck.isGrounded)
// {
// m_AgentRb.AddForce(
// // Vector3.down * fallingForce, ForceMode.Acceleration);
// Vector3.down * m_Academy.agentFallingSpeed, ForceMode.Acceleration);
// }
// jumpingTime -= Time.fixedDeltaTime;
// jumpTimer += 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(m_AgentRb.position.y < -1 || m_ShortBlockRb.position.y < -1)
{
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") && m_groundCheck.isGrounded)
{
SetReward(1f);

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

2
UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn.meta


fileFormatVersion: 2
guid: 375ec7d55d3e645eca6eb504433e4a13
guid: 2eb7bc1cb4297440f8970c08096869cd
ScriptedImporter:
userData:
assetBundleName:

2
UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn.meta


fileFormatVersion: 2
guid: 2a4c1494f7c244cce84002eb8ac585df
guid: 32c7a8411c2df4eefba2216c5880b982
ScriptedImporter:
userData:
assetBundleName:

2
UnitySDK/csharp_timers.json


{"count":1,"self":1765.3489663999999,"total":1765.4630009999998,"children":{"AgentResetIfDone":{"count":21,"self":0.001287,"total":0.001287,"children":null},"AgentSendState":{"count":21,"self":0.028536,"total":0.042492999999999996,"children":{"CollectObservations":{"count":168,"self":0.013956999999999999,"total":0.013956999999999999,"children":null}}},"BrainDecideAction":{"count":21,"self":0.063049,"total":0.063049,"children":null},"AcademyStep":{"count":21,"self":0.000614,"total":0.000614,"children":null},"AgentAct":{"count":21,"self":0.005386,"total":0.005386,"children":null}}}
{"count":1,"self":54.300678399999995,"total":60.891335999999995,"children":{"AgentResetIfDone":{"count":3001,"self":0.149694,"total":0.149694,"children":null},"AgentSendState":{"count":3001,"self":0.952689,"total":2.677314,"children":{"CollectObservations":{"count":24024,"self":1.7246249999999999,"total":1.7246249999999999,"children":null}}},"BrainDecideAction":{"count":3001,"self":3.302732,"total":3.302732,"children":null},"AcademyStep":{"count":3001,"self":0.081987999999999991,"total":0.081987999999999991,"children":null},"AgentAct":{"count":3001,"self":0.37719199999999997,"total":0.37719199999999997,"children":null}}}
正在加载...
取消
保存