GitHub
4 年前
当前提交
a2f9a513
共有 121 个文件被更改,包括 11495 次插入 和 0 次删除
-
70ML-Agents-Input-Example/.gitignore
-
33ML-Agents-Input-Example/Assets/InputSystem.inputsettings.asset
-
8ML-Agents-Input-Example/Assets/InputSystem.inputsettings.asset.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples.meta
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Meshes.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Meshes/PushBlockCourt.fbx
-
120ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Meshes/PushBlockCourt.fbx.meta
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Prefabs.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Prefabs/PushBlockArea.prefab
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Prefabs/PushBlockArea.prefab.meta
-
179ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/PushBlockActions.inputactions
-
14ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/PushBlockActions.inputactions.meta
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scenes.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scenes/PushBlock.unity
-
9ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scenes/PushBlock.unity.meta
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts.meta
-
26ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/GoalDetect.cs
-
13ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/GoalDetect.cs.meta
-
192ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushAgentBasic.cs
-
12ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushAgentBasic.cs.meta
-
316ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockActions.cs
-
11ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockActions.cs.meta
-
112ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockPlayerController.cs
-
11ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockPlayerController.cs.meta
-
39ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockSettings.cs
-
11ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockSettings.cs.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/TFModels.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/TFModels/PushBlock.onnx
-
14ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/TFModels/PushBlock.onnx.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials.meta
-
80ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/AgentBlue.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/AgentBlue.mat.meta
-
76ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Green.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Green.mat.meta
-
90ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/GridMat.mat
-
9ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/GridMat.mat.meta
-
90ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/GridMatFloor.mat
-
9ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/GridMatFloor.mat.meta
-
162ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/GridPatternShader.shader
-
9ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/GridPatternShader.shader.meta
-
76ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Headband.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Headband.mat.meta
-
76ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/LightGreen.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/LightGreen.mat.meta
-
76ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/LightRed.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/LightRed.mat.meta
-
76ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Red.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Red.mat.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Textures.meta
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Textures/UnityLogo.png
-
121ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/Textures/UnityLogo.png.meta
-
84ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/UIDefault.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/UIDefault.mat.meta
-
76ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/White.mat
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Materials/White.mat.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/AgentCube.fbx
-
96ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/AgentCube.fbx.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/LongNarrowPlatform.fbx
-
99ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/LongNarrowPlatform.fbx.meta
-
1001ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/LongPlatform.fbx
-
109ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/LongPlatform.fbx.meta
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs.meta
-
438ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs/AgentCube_Blue.prefab
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs/AgentCube_Blue.prefab.meta
-
175ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs/Canvas_Watermark.prefab
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs/Canvas_Watermark.prefab.meta
-
78ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs/Directional_Light.prefab
-
8ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Prefabs/Directional_Light.prefab.meta
-
10ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Scripts.meta
-
322ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs
-
3ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs.meta
-
69ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Scripts/ProjectSettingsOverrides.cs
-
3ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Scripts/ProjectSettingsOverrides.cs.meta
-
59ML-Agents-Input-Example/Packages/manifest.json
-
467ML-Agents-Input-Example/Packages/packages-lock.json
-
19ML-Agents-Input-Example/ProjectSettings/AudioManager.asset
-
15ML-Agents-Input-Example/ProjectSettings/BurstAotSettings_StandaloneOSX.json
-
6ML-Agents-Input-Example/ProjectSettings/ClusterInputManager.asset
|
|||
/[Ll]ibrary/ |
|||
/Logs/ |
|||
/[Tt]emp/ |
|||
/[Oo]bj/ |
|||
/[Bb]uild/ |
|||
/[Bb]uilds/ |
|||
/Assets/AssetStoreTools* |
|||
/Assets/Plugins* |
|||
/Assets/Demonstrations* |
|||
/Assets/ML-Agents/Timers* |
|||
/*_timers.json |
|||
|
|||
# Environemnt logfile |
|||
*Project.log |
|||
|
|||
# Visual Studio 2015 cache directory |
|||
/.vs/ |
|||
|
|||
# Autogenerated VS/MD/Consulo solution and project files |
|||
/ProjectExportedObj/ |
|||
/Project.consulo/ |
|||
*.csproj |
|||
*.unityproj |
|||
*.sln |
|||
*.suo |
|||
*.tmp |
|||
*.user |
|||
*.userprefs |
|||
*.pidb |
|||
*.booproj |
|||
*.svd |
|||
*.pdb |
|||
|
|||
# Unity3D generated meta files |
|||
*.pidb.meta |
|||
|
|||
# Unity3D Generated File On Crash Reports |
|||
/sysinfo.txt |
|||
|
|||
# Builds |
|||
*.apk |
|||
*.unitypackage |
|||
*.app |
|||
*.exe |
|||
*.x86_64 |
|||
*.x86 |
|||
|
|||
# Plugins |
|||
/Assets/VideoRecorder* |
|||
|
|||
# Mac hidden files |
|||
*.DS_Store |
|||
*/.ipynb_checkpoints |
|||
*/.idea |
|||
*.pyc |
|||
*.idea/misc.xml |
|||
*.idea/modules.xml |
|||
*.idea/ |
|||
*.iml |
|||
*.cache |
|||
*/build/ |
|||
*/dist/ |
|||
*.egg-info* |
|||
*.eggs* |
|||
*.gitignore.swp |
|||
|
|||
# VSCode hidden files |
|||
*.vscode/ |
|||
|
|||
.DS_Store |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &11400000 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: c46f07b5ed07e4e92aa78254188d3d10, type: 3} |
|||
m_Name: InputSystem.inputsettings |
|||
m_EditorClassIdentifier: |
|||
m_SupportedDevices: |
|||
- Keyboard |
|||
- Gamepad |
|||
m_UpdateMode: 2 |
|||
m_CompensateForScreenOrientation: 0 |
|||
m_FilterNoiseOnCurrent: 0 |
|||
m_DefaultDeadzoneMin: 0.125 |
|||
m_DefaultDeadzoneMax: 0.925 |
|||
m_DefaultButtonPressPoint: 0.5 |
|||
m_ButtonReleaseThreshold: 0.75 |
|||
m_DefaultTapTime: 0.2 |
|||
m_DefaultSlowTapTime: 0.5 |
|||
m_DefaultHoldTime: 0.4 |
|||
m_TapRadius: 5 |
|||
m_MultiTapDelayTime: 0.75 |
|||
m_iOSSettings: |
|||
m_MotionUsage: |
|||
m_Enabled: 0 |
|||
m_Description: |
|
|||
fileFormatVersion: 2 |
|||
guid: 778a63fac82734ee1b70a0b7c3e975c0 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 11630fa83cc8b4194b94352e3e6cdb9d |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 6584f096f53dc43eeb32803b91f36c5c |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 4197ece8ca6d74a00adc6bafbabda158 |
|||
folderAsset: yes |
|||
timeCreated: 1506303336 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: e806d68316eff0e46a3fda372ae42c44 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Meshes/PushBlockCourt.fbx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: c639386c12f5f7841892163a199dfacc |
|||
ModelImporter: |
|||
serializedVersion: 22 |
|||
fileIDToRecycleName: |
|||
100000: GoalArea |
|||
100002: Ground |
|||
100004: //RootNode |
|||
100006: WallsOuter |
|||
400000: GoalArea |
|||
400002: Ground |
|||
400004: //RootNode |
|||
400006: WallsOuter |
|||
2100000: rep_WhiteWalls |
|||
2100002: rep_Floor |
|||
2100004: rep_Checkers |
|||
2300000: GoalArea |
|||
2300002: Ground |
|||
2300004: WallsOuter |
|||
3300000: GoalArea |
|||
3300002: Ground |
|||
3300004: WallsOuter |
|||
4300000: WallsOuter |
|||
4300002: Ground |
|||
4300004: GoalArea |
|||
externalObjects: |
|||
- first: |
|||
type: UnityEngine:Material |
|||
assembly: UnityEngine.CoreModule |
|||
name: rep_Checkers |
|||
second: {fileID: 2100000, guid: 36c7baa347d68f347a9aa9698aa1bcdd, type: 2} |
|||
- first: |
|||
type: UnityEngine:Material |
|||
assembly: UnityEngine.CoreModule |
|||
name: rep_Floor |
|||
second: {fileID: 2100000, guid: bc723809e6ff3174fad3e774cae1aed0, type: 2} |
|||
- first: |
|||
type: UnityEngine:Material |
|||
assembly: UnityEngine.CoreModule |
|||
name: rep_WhiteWalls |
|||
second: {fileID: 2100000, guid: 6a39c0407dd85684384bf0277294e9b6, type: 2} |
|||
materials: |
|||
importMaterials: 1 |
|||
materialName: 0 |
|||
materialSearch: 1 |
|||
materialLocation: 1 |
|||
animations: |
|||
legacyGenerateAnimations: 4 |
|||
bakeSimulation: 0 |
|||
resampleCurves: 1 |
|||
optimizeGameObjects: 0 |
|||
motionNodeName: |
|||
rigImportErrors: |
|||
rigImportWarnings: |
|||
animationImportErrors: |
|||
animationImportWarnings: |
|||
animationRetargetingWarnings: |
|||
animationDoRetargetingWarnings: 0 |
|||
importAnimatedCustomProperties: 0 |
|||
animationCompression: 1 |
|||
animationRotationError: 0.5 |
|||
animationPositionError: 0.5 |
|||
animationScaleError: 0.5 |
|||
animationWrapMode: 0 |
|||
extraExposedTransformPaths: [] |
|||
extraUserProperties: [] |
|||
clipAnimations: [] |
|||
isReadable: 1 |
|||
meshes: |
|||
lODScreenPercentages: [] |
|||
globalScale: 1 |
|||
meshCompression: 0 |
|||
addColliders: 0 |
|||
importVisibility: 1 |
|||
importBlendShapes: 1 |
|||
importCameras: 1 |
|||
importLights: 1 |
|||
swapUVChannels: 0 |
|||
generateSecondaryUV: 1 |
|||
useFileUnits: 1 |
|||
optimizeMeshForGPU: 1 |
|||
keepQuads: 0 |
|||
weldVertices: 1 |
|||
preserveHierarchy: 0 |
|||
indexFormat: 0 |
|||
secondaryUVAngleDistortion: 8 |
|||
secondaryUVAreaDistortion: 15.000001 |
|||
secondaryUVHardAngle: 88 |
|||
secondaryUVPackMargin: 4 |
|||
useFileScale: 1 |
|||
tangentSpace: |
|||
normalSmoothAngle: 60 |
|||
normalImportMode: 0 |
|||
tangentImportMode: 3 |
|||
normalCalculationMode: 4 |
|||
importAnimation: 1 |
|||
copyAvatar: 0 |
|||
humanDescription: |
|||
serializedVersion: 2 |
|||
human: [] |
|||
skeleton: [] |
|||
armTwist: 0.5 |
|||
foreArmTwist: 0.5 |
|||
upperLegTwist: 0.5 |
|||
legTwist: 0.5 |
|||
armStretch: 0.05 |
|||
legStretch: 0.05 |
|||
feetSpacing: 0 |
|||
rootMotionBoneName: |
|||
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
hasTranslationDoF: 0 |
|||
hasExtraRoot: 0 |
|||
skeletonHasParents: 1 |
|||
lastHumanDescriptionAvatarSource: {instanceID: 0} |
|||
animationType: 0 |
|||
humanoidOversampling: 1 |
|||
additionalBone: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 3d2b9d5547d934200a786212743850c4 |
|||
folderAsset: yes |
|||
timeCreated: 1514922259 |
|||
licenseType: Free |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Prefabs/PushBlockArea.prefab
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 03bcc81e249714a22bb411dddcc5d15e |
|||
timeCreated: 1515023875 |
|||
licenseType: Free |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 100100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
{ |
|||
"name": "PushBlockActions", |
|||
"maps": [ |
|||
{ |
|||
"name": "Movement", |
|||
"id": "03a2e5d4-ae81-47f1-a575-0779fb7da538", |
|||
"actions": [ |
|||
{ |
|||
"name": "movement", |
|||
"type": "Value", |
|||
"id": "5f47cbc6-de46-4d33-93e2-2b1af4f5996d", |
|||
"expectedControlType": "Vector2", |
|||
"processors": "", |
|||
"interactions": "" |
|||
}, |
|||
{ |
|||
"name": "jump", |
|||
"type": "Button", |
|||
"id": "ca5eb833-5dfb-4b7c-880d-6118bd5d1378", |
|||
"expectedControlType": "Button", |
|||
"processors": "", |
|||
"interactions": "" |
|||
} |
|||
], |
|||
"bindings": [ |
|||
{ |
|||
"name": "gamepad_move", |
|||
"id": "477500ef-6d32-4b84-b9f8-158f18bcb906", |
|||
"path": "2DVector", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "", |
|||
"action": "movement", |
|||
"isComposite": true, |
|||
"isPartOfComposite": false |
|||
}, |
|||
{ |
|||
"name": "up", |
|||
"id": "6d2537b8-2266-4a50-8575-fb0fe310daa5", |
|||
"path": "<Gamepad>/dpad/up", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "down", |
|||
"id": "50584c83-beb6-4e90-a453-a635c03a761e", |
|||
"path": "<Gamepad>/dpad/down", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "left", |
|||
"id": "44408b8f-27e7-4c6d-b078-7536ba020d1a", |
|||
"path": "<Gamepad>/dpad/left", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "right", |
|||
"id": "f5681423-d3e3-41a5-b85e-0a7642c774aa", |
|||
"path": "<Gamepad>/dpad/right", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "keyboard_move", |
|||
"id": "6bcba4bf-5ce0-4005-9e6a-0de2487211b0", |
|||
"path": "2DVector", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "", |
|||
"action": "movement", |
|||
"isComposite": true, |
|||
"isPartOfComposite": false |
|||
}, |
|||
{ |
|||
"name": "up", |
|||
"id": "63da699e-b354-4e63-b0f8-26fb92abea41", |
|||
"path": "<Keyboard>/w", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "down", |
|||
"id": "39409748-9002-4aff-9a09-cdc05b9708ad", |
|||
"path": "<Keyboard>/s", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "left", |
|||
"id": "0afe45fc-dc45-4310-9c73-7dc3c503addf", |
|||
"path": "<Keyboard>/a", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "right", |
|||
"id": "69fe0335-9e0c-495d-a90d-4b0fcbfd2b34", |
|||
"path": "<Keyboard>/d", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "movement", |
|||
"isComposite": false, |
|||
"isPartOfComposite": true |
|||
}, |
|||
{ |
|||
"name": "", |
|||
"id": "ab696218-63cd-4eb8-9fe1-48a68e32e92f", |
|||
"path": "<Keyboard>/space", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "jump", |
|||
"isComposite": false, |
|||
"isPartOfComposite": false |
|||
}, |
|||
{ |
|||
"name": "", |
|||
"id": "7adcb138-5175-4cc4-addc-d2b02cb5f0de", |
|||
"path": "<Gamepad>/buttonSouth", |
|||
"interactions": "", |
|||
"processors": "", |
|||
"groups": "Keyboard", |
|||
"action": "jump", |
|||
"isComposite": false, |
|||
"isPartOfComposite": false |
|||
} |
|||
] |
|||
} |
|||
], |
|||
"controlSchemes": [ |
|||
{ |
|||
"name": "Keyboard", |
|||
"bindingGroup": "Keyboard", |
|||
"devices": [ |
|||
{ |
|||
"devicePath": "<Keyboard>", |
|||
"isOptional": true, |
|||
"isOR": false |
|||
}, |
|||
{ |
|||
"devicePath": "<Gamepad>", |
|||
"isOptional": true, |
|||
"isOR": false |
|||
} |
|||
] |
|||
} |
|||
] |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: fcfa5a3b2c4254b2baad1ae474fc4b93 |
|||
ScriptedImporter: |
|||
internalIDToNameTable: [] |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} |
|||
generateWrapperCode: 1 |
|||
wrapperCodePath: Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockActions.cs |
|||
wrapperClassName: |
|||
wrapperCodeNamespace: |
|
|||
fileFormatVersion: 2 |
|||
guid: 9da26ec059778432080bf5fa24374960 |
|||
folderAsset: yes |
|||
timeCreated: 1516234013 |
|||
licenseType: Free |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/Scenes/PushBlock.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: ae8cc75939e3e4d07a79c8c6a08b54f4 |
|||
timeCreated: 1506808980 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: ca44e3d53154a4ff0a1279be30b23bdf |
|||
folderAsset: yes |
|||
timeCreated: 1514922284 |
|||
licenseType: Free |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
//Detect when the orange block has touched the goal.
|
|||
//Detect when the orange block has touched an obstacle.
|
|||
//Put this script onto the orange block. There's nothing you need to set in the editor.
|
|||
//Make sure the goal is tagged with "goal" in the editor.
|
|||
|
|||
using UnityEngine; |
|||
|
|||
public class GoalDetect : MonoBehaviour |
|||
{ |
|||
/// <summary>
|
|||
/// The associated agent.
|
|||
/// This will be set by the agent script on Initialization.
|
|||
/// Don't need to manually set.
|
|||
/// </summary>
|
|||
[HideInInspector] |
|||
public PushAgentBasic agent; //
|
|||
|
|||
void OnCollisionEnter(Collision col) |
|||
{ |
|||
// Touched goal.
|
|||
if (col.gameObject.CompareTag("goal")) |
|||
{ |
|||
agent.ScoredAGoal(); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 7d079d09ceed84ff49cf6841c66cf7ec |
|||
timeCreated: 1513645763 |
|||
licenseType: Free |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
//Put this script on your blue cube.
|
|||
|
|||
using System; |
|||
using System.Collections; |
|||
using UnityEngine; |
|||
using Unity.MLAgents; |
|||
using Unity.MLAgents.Actuators; |
|||
using Random = UnityEngine.Random; |
|||
|
|||
public class PushAgentBasic : Agent |
|||
{ |
|||
/// <summary>
|
|||
/// The ground. The bounds are used to spawn the elements.
|
|||
/// </summary>
|
|||
public GameObject ground; |
|||
|
|||
public GameObject area; |
|||
|
|||
/// <summary>
|
|||
/// The area bounds.
|
|||
/// </summary>
|
|||
[HideInInspector] |
|||
public Bounds areaBounds; |
|||
|
|||
PushBlockSettings m_PushBlockSettings; |
|||
|
|||
/// <summary>
|
|||
/// The block to be pushed to the goal.
|
|||
/// </summary>
|
|||
public GameObject block; |
|||
|
|||
/// <summary>
|
|||
/// Detects when the block touches the goal.
|
|||
/// </summary>
|
|||
[HideInInspector] |
|||
public GoalDetect goalDetect; |
|||
|
|||
Rigidbody m_BlockRb; //cached on initialization
|
|||
Rigidbody m_AgentRb; //cached on initialization
|
|||
Material m_GroundMaterial; //cached on Awake()
|
|||
|
|||
/// <summary>
|
|||
/// We will be changing the ground material based on success/failue
|
|||
/// </summary>
|
|||
Renderer m_GroundRenderer; |
|||
|
|||
EnvironmentParameters m_ResetParams; |
|||
|
|||
void Awake() |
|||
{ |
|||
m_PushBlockSettings = FindObjectOfType<PushBlockSettings>(); |
|||
|
|||
goalDetect = block.GetComponent<GoalDetect>(); |
|||
goalDetect.agent = this; |
|||
|
|||
// Cache the agent rigidbody
|
|||
m_AgentRb = GetComponent<Rigidbody>(); |
|||
// Cache the block rigidbody
|
|||
m_BlockRb = block.GetComponent<Rigidbody>(); |
|||
// Get the ground's bounds
|
|||
areaBounds = ground.GetComponent<Collider>().bounds; |
|||
// Get the ground renderer so we can change the material when a goal is scored
|
|||
m_GroundRenderer = ground.GetComponent<Renderer>(); |
|||
// Starting material
|
|||
m_GroundMaterial = m_GroundRenderer.material; |
|||
} |
|||
|
|||
public override void Initialize() |
|||
{ |
|||
m_ResetParams = Academy.Instance.EnvironmentParameters; |
|||
|
|||
SetResetParameters(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Use the ground's bounds to pick a random spawn position.
|
|||
/// </summary>
|
|||
public Vector3 GetRandomSpawnPos() |
|||
{ |
|||
var foundNewSpawnLocation = false; |
|||
var randomSpawnPos = Vector3.zero; |
|||
var tries = 0; |
|||
while (foundNewSpawnLocation == false && tries < 50) |
|||
{ |
|||
var randomPosX = Random.Range(-areaBounds.extents.x * m_PushBlockSettings.spawnAreaMarginMultiplier, |
|||
areaBounds.extents.x * m_PushBlockSettings.spawnAreaMarginMultiplier); |
|||
|
|||
var randomPosZ = Random.Range(-areaBounds.extents.z * m_PushBlockSettings.spawnAreaMarginMultiplier, |
|||
areaBounds.extents.z * m_PushBlockSettings.spawnAreaMarginMultiplier); |
|||
randomSpawnPos = ground.transform.position + new Vector3(randomPosX, 1f, randomPosZ); |
|||
if (Physics.CheckBox(randomSpawnPos, new Vector3(2.5f, 0.01f, 2.5f)) == false) |
|||
{ |
|||
foundNewSpawnLocation = true; |
|||
} |
|||
tries++; |
|||
} |
|||
return randomSpawnPos; |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// Called when the agent moves the block into the goal.
|
|||
/// </summary>
|
|||
public void ScoredAGoal() |
|||
{ |
|||
// We use a reward of 5.
|
|||
AddReward(5f); |
|||
|
|||
// By marking an agent as done AgentReset() will be called automatically.
|
|||
EndEpisode(); |
|||
|
|||
// Swap ground material for a bit to indicate we scored.
|
|||
StartCoroutine(GoalScoredSwapGroundMaterial(m_PushBlockSettings.goalScoredMaterial, 0.5f)); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Swap ground material, wait time seconds, then swap back to the regular material.
|
|||
/// </summary>
|
|||
IEnumerator GoalScoredSwapGroundMaterial(Material mat, float time) |
|||
{ |
|||
m_GroundRenderer.material = mat; |
|||
yield return new WaitForSeconds(time); // Wait for 2 sec
|
|||
m_GroundRenderer.material = m_GroundMaterial; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Called every step of the engine. Here the agent takes an action.
|
|||
/// </summary>
|
|||
public override void OnActionReceived(ActionBuffers actionBuffers) |
|||
{ |
|||
// Penalty given each step to encourage agent to finish task quickly.
|
|||
AddReward(-1f / MaxStep); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Resets the block position and velocities.
|
|||
/// </summary>
|
|||
void ResetBlock() |
|||
{ |
|||
// Get a random position for the block.
|
|||
block.transform.position = GetRandomSpawnPos(); |
|||
|
|||
// Reset block velocity back to zero.
|
|||
m_BlockRb.velocity = Vector3.zero; |
|||
|
|||
// Reset block angularVelocity back to zero.
|
|||
m_BlockRb.angularVelocity = Vector3.zero; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// In the editor, if "Reset On Done" is checked then AgentReset() will be
|
|||
/// called automatically anytime we mark done = true in an agent script.
|
|||
/// </summary>
|
|||
public override void OnEpisodeBegin() |
|||
{ |
|||
var rotation = Random.Range(0, 4); |
|||
var rotationAngle = rotation * 90f; |
|||
area.transform.Rotate(new Vector3(0f, rotationAngle, 0f)); |
|||
|
|||
ResetBlock(); |
|||
transform.position = GetRandomSpawnPos(); |
|||
m_AgentRb.velocity = Vector3.zero; |
|||
m_AgentRb.angularVelocity = Vector3.zero; |
|||
|
|||
SetResetParameters(); |
|||
} |
|||
|
|||
public void SetGroundMaterialFriction() |
|||
{ |
|||
var groundCollider = ground.GetComponent<Collider>(); |
|||
|
|||
groundCollider.material.dynamicFriction = m_ResetParams.GetWithDefault("dynamic_friction", 0); |
|||
groundCollider.material.staticFriction = m_ResetParams.GetWithDefault("static_friction", 0); |
|||
} |
|||
|
|||
public void SetBlockProperties() |
|||
{ |
|||
var scale = m_ResetParams.GetWithDefault("block_scale", 2); |
|||
//Set the scale of the block
|
|||
m_BlockRb.transform.localScale = new Vector3(scale, 0.75f, scale); |
|||
|
|||
// Set the drag of the block
|
|||
m_BlockRb.drag = m_ResetParams.GetWithDefault("block_drag", 0.5f); |
|||
} |
|||
|
|||
void SetResetParameters() |
|||
{ |
|||
SetGroundMaterialFriction(); |
|||
SetBlockProperties(); |
|||
} |
|||
|
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: dea8c4f2604b947e6b7b97750dde87ca |
|||
timeCreated: 1506829537 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
//------------------------------------------------------------------------------
|
|||
// <auto-generated>
|
|||
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
|
|||
// version 1.1.0
|
|||
// from Assets/ML-Agents/Examples/PushBlock/PushBlockActions.inputactions
|
|||
//
|
|||
// Changes to this file may cause incorrect behavior and will be lost if
|
|||
// the code is regenerated.
|
|||
// </auto-generated>
|
|||
//------------------------------------------------------------------------------
|
|||
|
|||
using System; |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine.InputSystem; |
|||
using UnityEngine.InputSystem.Utilities; |
|||
|
|||
public partial class @PushBlockActions : IInputActionCollection2, IDisposable |
|||
{ |
|||
public InputActionAsset asset { get; } |
|||
public @PushBlockActions() |
|||
{ |
|||
asset = InputActionAsset.FromJson(@"{
|
|||
""name"": ""PushBlockActions"", |
|||
""maps"": [ |
|||
{ |
|||
""name"": ""Movement"", |
|||
""id"": ""03a2e5d4-ae81-47f1-a575-0779fb7da538"", |
|||
""actions"": [ |
|||
{ |
|||
""name"": ""movement"", |
|||
""type"": ""Value"", |
|||
""id"": ""5f47cbc6-de46-4d33-93e2-2b1af4f5996d"", |
|||
""expectedControlType"": ""Vector2"", |
|||
""processors"": """", |
|||
""interactions"": """" |
|||
}, |
|||
{ |
|||
""name"": ""jump"", |
|||
""type"": ""Button"", |
|||
""id"": ""ca5eb833-5dfb-4b7c-880d-6118bd5d1378"", |
|||
""expectedControlType"": ""Button"", |
|||
""processors"": """", |
|||
""interactions"": """" |
|||
} |
|||
], |
|||
""bindings"": [ |
|||
{ |
|||
""name"": ""gamepad_move"", |
|||
""id"": ""477500ef-6d32-4b84-b9f8-158f18bcb906"", |
|||
""path"": ""2DVector"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": """", |
|||
""action"": ""movement"", |
|||
""isComposite"": true, |
|||
""isPartOfComposite"": false |
|||
}, |
|||
{ |
|||
""name"": ""up"", |
|||
""id"": ""6d2537b8-2266-4a50-8575-fb0fe310daa5"", |
|||
""path"": ""<Gamepad>/dpad/up"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""down"", |
|||
""id"": ""50584c83-beb6-4e90-a453-a635c03a761e"", |
|||
""path"": ""<Gamepad>/dpad/down"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""left"", |
|||
""id"": ""44408b8f-27e7-4c6d-b078-7536ba020d1a"", |
|||
""path"": ""<Gamepad>/dpad/left"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""right"", |
|||
""id"": ""f5681423-d3e3-41a5-b85e-0a7642c774aa"", |
|||
""path"": ""<Gamepad>/dpad/right"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""keyboard_move"", |
|||
""id"": ""6bcba4bf-5ce0-4005-9e6a-0de2487211b0"", |
|||
""path"": ""2DVector"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": """", |
|||
""action"": ""movement"", |
|||
""isComposite"": true, |
|||
""isPartOfComposite"": false |
|||
}, |
|||
{ |
|||
""name"": ""up"", |
|||
""id"": ""63da699e-b354-4e63-b0f8-26fb92abea41"", |
|||
""path"": ""<Keyboard>/w"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""down"", |
|||
""id"": ""39409748-9002-4aff-9a09-cdc05b9708ad"", |
|||
""path"": ""<Keyboard>/s"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""left"", |
|||
""id"": ""0afe45fc-dc45-4310-9c73-7dc3c503addf"", |
|||
""path"": ""<Keyboard>/a"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": ""right"", |
|||
""id"": ""69fe0335-9e0c-495d-a90d-4b0fcbfd2b34"", |
|||
""path"": ""<Keyboard>/d"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""movement"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": true |
|||
}, |
|||
{ |
|||
""name"": """", |
|||
""id"": ""ab696218-63cd-4eb8-9fe1-48a68e32e92f"", |
|||
""path"": ""<Keyboard>/space"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""jump"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": false |
|||
}, |
|||
{ |
|||
""name"": """", |
|||
""id"": ""7adcb138-5175-4cc4-addc-d2b02cb5f0de"", |
|||
""path"": ""<Gamepad>/buttonSouth"", |
|||
""interactions"": """", |
|||
""processors"": """", |
|||
""groups"": ""Keyboard"", |
|||
""action"": ""jump"", |
|||
""isComposite"": false, |
|||
""isPartOfComposite"": false |
|||
} |
|||
] |
|||
} |
|||
], |
|||
""controlSchemes"": [ |
|||
{ |
|||
""name"": ""Keyboard"", |
|||
""bindingGroup"": ""Keyboard"", |
|||
""devices"": [ |
|||
{ |
|||
""devicePath"": ""<Keyboard>"", |
|||
""isOptional"": true, |
|||
""isOR"": false |
|||
}, |
|||
{ |
|||
""devicePath"": ""<Gamepad>"", |
|||
""isOptional"": true, |
|||
""isOR"": false |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}");
|
|||
// Movement
|
|||
m_Movement = asset.FindActionMap("Movement", throwIfNotFound: true); |
|||
m_Movement_movement = m_Movement.FindAction("movement", throwIfNotFound: true); |
|||
m_Movement_jump = m_Movement.FindAction("jump", throwIfNotFound: true); |
|||
} |
|||
|
|||
public void Dispose() |
|||
{ |
|||
UnityEngine.Object.Destroy(asset); |
|||
} |
|||
|
|||
public InputBinding? bindingMask |
|||
{ |
|||
get => asset.bindingMask; |
|||
set => asset.bindingMask = value; |
|||
} |
|||
|
|||
public ReadOnlyArray<InputDevice>? devices |
|||
{ |
|||
get => asset.devices; |
|||
set => asset.devices = value; |
|||
} |
|||
|
|||
public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes; |
|||
|
|||
public bool Contains(InputAction action) |
|||
{ |
|||
return asset.Contains(action); |
|||
} |
|||
|
|||
public IEnumerator<InputAction> GetEnumerator() |
|||
{ |
|||
return asset.GetEnumerator(); |
|||
} |
|||
|
|||
IEnumerator IEnumerable.GetEnumerator() |
|||
{ |
|||
return GetEnumerator(); |
|||
} |
|||
|
|||
public void Enable() |
|||
{ |
|||
asset.Enable(); |
|||
} |
|||
|
|||
public void Disable() |
|||
{ |
|||
asset.Disable(); |
|||
} |
|||
public IEnumerable<InputBinding> bindings => asset.bindings; |
|||
|
|||
public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false) |
|||
{ |
|||
return asset.FindAction(actionNameOrId, throwIfNotFound); |
|||
} |
|||
public int FindBinding(InputBinding bindingMask, out InputAction action) |
|||
{ |
|||
return asset.FindBinding(bindingMask, out action); |
|||
} |
|||
|
|||
// Movement
|
|||
private readonly InputActionMap m_Movement; |
|||
private IMovementActions m_MovementActionsCallbackInterface; |
|||
private readonly InputAction m_Movement_movement; |
|||
private readonly InputAction m_Movement_jump; |
|||
public struct MovementActions |
|||
{ |
|||
private @PushBlockActions m_Wrapper; |
|||
public MovementActions(@PushBlockActions wrapper) { m_Wrapper = wrapper; } |
|||
public InputAction @movement => m_Wrapper.m_Movement_movement; |
|||
public InputAction @jump => m_Wrapper.m_Movement_jump; |
|||
public InputActionMap Get() { return m_Wrapper.m_Movement; } |
|||
public void Enable() { Get().Enable(); } |
|||
public void Disable() { Get().Disable(); } |
|||
public bool enabled => Get().enabled; |
|||
public static implicit operator InputActionMap(MovementActions set) { return set.Get(); } |
|||
public void SetCallbacks(IMovementActions instance) |
|||
{ |
|||
if (m_Wrapper.m_MovementActionsCallbackInterface != null) |
|||
{ |
|||
@movement.started -= m_Wrapper.m_MovementActionsCallbackInterface.OnMovement; |
|||
@movement.performed -= m_Wrapper.m_MovementActionsCallbackInterface.OnMovement; |
|||
@movement.canceled -= m_Wrapper.m_MovementActionsCallbackInterface.OnMovement; |
|||
@jump.started -= m_Wrapper.m_MovementActionsCallbackInterface.OnJump; |
|||
@jump.performed -= m_Wrapper.m_MovementActionsCallbackInterface.OnJump; |
|||
@jump.canceled -= m_Wrapper.m_MovementActionsCallbackInterface.OnJump; |
|||
} |
|||
m_Wrapper.m_MovementActionsCallbackInterface = instance; |
|||
if (instance != null) |
|||
{ |
|||
@movement.started += instance.OnMovement; |
|||
@movement.performed += instance.OnMovement; |
|||
@movement.canceled += instance.OnMovement; |
|||
@jump.started += instance.OnJump; |
|||
@jump.performed += instance.OnJump; |
|||
@jump.canceled += instance.OnJump; |
|||
} |
|||
} |
|||
} |
|||
public MovementActions @Movement => new MovementActions(this); |
|||
private int m_KeyboardSchemeIndex = -1; |
|||
public InputControlScheme KeyboardScheme |
|||
{ |
|||
get |
|||
{ |
|||
if (m_KeyboardSchemeIndex == -1) m_KeyboardSchemeIndex = asset.FindControlSchemeIndex("Keyboard"); |
|||
return asset.controlSchemes[m_KeyboardSchemeIndex]; |
|||
} |
|||
} |
|||
public interface IMovementActions |
|||
{ |
|||
void OnMovement(InputAction.CallbackContext context); |
|||
void OnJump(InputAction.CallbackContext context); |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: d6f125a5c899346259be7aac2df8daa0 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using Unity.MLAgents.Extensions.Input; |
|||
using UnityEngine; |
|||
using UnityEngine.InputSystem; |
|||
|
|||
/// <summary>
|
|||
/// This class handles the input for the PushBlock Cube character in the PushBlock scene.
|
|||
/// Note that the only ML-Agents code here is the implementation of the <see cref="IInputActionAssetProvider"/>.
|
|||
/// The <see cref="InputActuatorComponent"/> looks for a component that implements that interface in order to
|
|||
/// rebind actions to virtual controllers when training agents or running inference. This means that you can
|
|||
/// keep your input handling code separate from ML-Agents, and have your agent's action space defined by the
|
|||
/// actions defined in your project's <see cref="GetInputActionAsset"/>.
|
|||
///
|
|||
/// If you don't implement <see cref="IInputActionAssetProvider"/> the <see cref="InputActuatorComponent"/> will
|
|||
/// look for a <see cref="PlayerInput"/> component on the GameObject it live on. It will rebind the actions of that
|
|||
/// instance of the asset.
|
|||
///
|
|||
/// It is important to note that if you have multiple components on the same GameObject handling input, you will
|
|||
/// need to share the instance of the generated C# <see cref="IInputActionCollection2"/> (named <see cref="m_PushBlockActions"/>
|
|||
/// here) in order to ensure that all of your actions are bound correctly for ml-agents training and inference.
|
|||
/// </summary>
|
|||
public class PushBlockPlayerController : MonoBehaviour, IInputActionAssetProvider |
|||
{ |
|||
|
|||
PushBlockSettings m_PushBlockSettings; |
|||
public float JumpTime = 0.5f; |
|||
float m_JumpTimeRemaining; |
|||
Rigidbody m_PlayerRb; //cached on initialization
|
|||
PushBlockActions m_PushBlockActions; |
|||
float m_JumpCoolDownStart; |
|||
|
|||
void Awake() |
|||
{ |
|||
m_PushBlockSettings = FindObjectOfType<PushBlockSettings>(); |
|||
LazyInitializeActions(); |
|||
|
|||
// Cache the agent rigidbody
|
|||
m_PlayerRb = GetComponent<Rigidbody>(); |
|||
} |
|||
|
|||
void LazyInitializeActions() |
|||
{ |
|||
if (m_PushBlockActions != null) |
|||
{ |
|||
return; |
|||
} |
|||
m_PushBlockActions = new PushBlockActions(); |
|||
m_PushBlockActions.Enable(); |
|||
|
|||
// You can listen to C# events.
|
|||
m_PushBlockActions.Movement.jump.performed += JumpOnperformed; |
|||
} |
|||
|
|||
void JumpOnperformed(InputAction.CallbackContext callbackContext) |
|||
{ |
|||
InnerJump(gameObject.transform); |
|||
} |
|||
|
|||
void FixedUpdate() |
|||
{ |
|||
// Or you can poll the action itself like we do here.
|
|||
InnerMove(gameObject.transform, m_PushBlockActions.Movement.movement.ReadValue<Vector2>()); |
|||
if (m_JumpTimeRemaining < 0) |
|||
{ |
|||
m_PlayerRb.AddForce(-transform.up * (m_PushBlockSettings.agentJumpForce * 3), ForceMode.Acceleration); |
|||
} |
|||
m_JumpTimeRemaining -= Time.fixedDeltaTime; |
|||
} |
|||
|
|||
void InnerJump(Transform t) |
|||
{ |
|||
if (Time.realtimeSinceStartup - m_JumpCoolDownStart > m_PushBlockSettings.agentJumpCoolDown) |
|||
{ |
|||
m_JumpTimeRemaining = JumpTime; |
|||
m_PlayerRb.AddForce(t.up * m_PushBlockSettings.agentJumpForce, ForceMode.VelocityChange); |
|||
m_JumpCoolDownStart = Time.realtimeSinceStartup; |
|||
} |
|||
} |
|||
|
|||
void InnerMove(Transform t, Vector2 v) |
|||
{ |
|||
var forward = CreateForwardVector(v); |
|||
var up = CreateUpVector(v); |
|||
var dirToGo = t.forward * forward; |
|||
var rotateDir = t.up * up; |
|||
t.Rotate(rotateDir, Time.deltaTime * 200f); |
|||
m_PlayerRb.AddForce(dirToGo * m_PushBlockSettings.agentRunSpeed, |
|||
ForceMode.VelocityChange); |
|||
} |
|||
|
|||
static float CreateUpVector(Vector2 move) |
|||
{ |
|||
return Mathf.Abs(move.x) > Mathf.Abs(move.y) ? move.x : 0f; |
|||
} |
|||
|
|||
static float CreateForwardVector(Vector2 move) |
|||
{ |
|||
return Mathf.Abs(move.y) > Mathf.Abs(move.x) ? move.y : 0f; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// This is the implementation of the <see cref="IInputActionAssetProvider"/> for this class. We need
|
|||
/// both the <see cref="GetInputActionAsset"/> and the <see cref="IInputActionCollection2"/> if you are
|
|||
/// listening to C# events, Unity Events, or receiving Messages from the Input System Package as those callbacks
|
|||
/// are set up through the generated <see cref="IInputActionCollection2"/>.
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public (InputActionAsset, IInputActionCollection2) GetInputActionAsset() |
|||
{ |
|||
LazyInitializeActions(); |
|||
return (m_PushBlockActions.asset, m_PushBlockActions); |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: bb9a2d951ffa44f53ba04a31f2712f5f |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine; |
|||
|
|||
public class PushBlockSettings : MonoBehaviour |
|||
{ |
|||
/// <summary>
|
|||
/// The "walking speed" of the agents in the scene.
|
|||
/// </summary>
|
|||
public float agentRunSpeed; |
|||
|
|||
/// <summary>
|
|||
/// The agent rotation speed.
|
|||
/// Every agent will use this setting.
|
|||
/// </summary>
|
|||
public float agentRotationSpeed; |
|||
|
|||
public float agentJumpForce; |
|||
|
|||
public float agentJumpCoolDown; |
|||
|
|||
/// <summary>
|
|||
/// The spawn area margin multiplier.
|
|||
/// ex: .9 means 90% of spawn area will be used.
|
|||
/// .1 margin will be left (so players don't spawn off of the edge).
|
|||
/// The higher this value, the longer training time required.
|
|||
/// </summary>
|
|||
public float spawnAreaMarginMultiplier; |
|||
|
|||
/// <summary>
|
|||
/// When a goal is scored the ground will switch to this
|
|||
/// material for a few seconds.
|
|||
/// </summary>
|
|||
public Material goalScoredMaterial; |
|||
|
|||
/// <summary>
|
|||
/// When an agent fails, the ground will turn this material for a few seconds.
|
|||
/// </summary>
|
|||
public Material failMaterial; |
|||
|
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: e5ed63dbfa25542ecb8bc013adfba183 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 5855121f0ded74dad8e1dd15a8bcdca1 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/PushBlock/TFModels/PushBlock.onnx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: bee50ae7fd03e4e16a4ac45db4d96f6e |
|||
ScriptedImporter: |
|||
internalIDToNameTable: [] |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3} |
|||
optimizeModel: 1 |
|||
forceArbitraryBatchSize: 1 |
|||
treatErrorsAsWarnings: 0 |
|||
importMode: 1 |
|
|||
fileFormatVersion: 2 |
|||
guid: 0f83c851cdce246a0b97472ec6d35622 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 9b6abdaf6376c42e5acce313e3a7ed94 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: AgentBlue |
|||
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _SpecGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 0 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 0 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.12941177, g: 0.5882353, b: 0.9529412, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: c9fa44c2c3f8ce74ca39a3355ea42631 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Green |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 0 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 0 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.40392157, g: 0.7372549, b: 0.41960785, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: c67450f290f3e4897bc40276a619e78d |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: GridMat |
|||
m_Shader: {fileID: 4800000, guid: bbecf177c38d84ff08d7c683c116affd, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DrawU: 1 |
|||
- _DrawV: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0 |
|||
- _GlossyReflections: 1 |
|||
- _GridSize: 3 |
|||
- _LineOffset: 0.5 |
|||
- _LineSize: 0.01 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Offset: 0 |
|||
- _Parallax: 0.02 |
|||
- _RepeatCount: 5 |
|||
- _SelectCell: 0 |
|||
- _SelectedCellX: 0 |
|||
- _SelectedCellY: 0 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _Spacing: 0.5 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _CellColor: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 1} |
|||
- _Color: {r: 0.935151, g: 0.9705882, b: 0.3282872, a: 0} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|||
- _LineColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} |
|||
- _SelectedColor: {r: 0.1586206, g: 1, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: dc7340babc47c45c987fee58e013ed3f |
|||
timeCreated: 1527928195 |
|||
licenseType: Store |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: GridMatFloor |
|||
m_Shader: {fileID: 4800000, guid: bbecf177c38d84ff08d7c683c116affd, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DrawU: 1 |
|||
- _DrawV: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0 |
|||
- _GlossyReflections: 1 |
|||
- _GridSize: 6 |
|||
- _LineOffset: 0.5 |
|||
- _LineSize: 0.02 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Offset: 0 |
|||
- _Parallax: 0.02 |
|||
- _RepeatCount: 5 |
|||
- _SelectCell: 0 |
|||
- _SelectedCellX: 0 |
|||
- _SelectedCellY: 0 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _Spacing: 0.5 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _CellColor: {r: 0.116, g: 0.116, b: 0.116, a: 1} |
|||
- _Color: {r: 0.935151, g: 0.9705882, b: 0.3282872, a: 0} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|||
- _LineColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} |
|||
- _SelectedColor: {r: 0.1586206, g: 1, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: acba6bf2a290a496bb8989b42bf8698d |
|||
timeCreated: 1527928195 |
|||
licenseType: Store |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
// Upgrade NOTE: upgraded instancing buffer 'Props' to new syntax. |
|||
|
|||
Shader "ML-Agents/GridPattern" { |
|||
Properties { |
|||
_LineColor ("Line Color", Color) = (1,1,1,1) |
|||
_CellColor ("Cell Color", Color) = (0,0,0,0) |
|||
// _SelectedColor ("Selected Color", Color) = (1,0,0,1) |
|||
[PerRendererData] _MainTex ("Albedo (RGB)", 2D) = "white" {} |
|||
[IntRange] _GridSize("Grid Size", Range(1,100)) = 10 |
|||
_LineSize("Line Size", Range(0,1)) = 0.15 |
|||
// [FloatRange] _LineOffset("Line Offset", Range(0,1)) = 0 |
|||
[IntRange] _DrawU("Draw U Toggle ( 0 = False , 1 = True )", Range(0,1)) = 1 |
|||
[IntRange] _DrawV("Draw V Toggle ( 0 = False , 1 = True )", Range(0,1)) = 1 |
|||
// [IntRange] _SelectCell("Select Cell Toggle ( 0 = False , 1 = True )", Range(0,1)) = 0.0 |
|||
// [IntRange] _SelectedCellX("Selected Cell X", Range(0,100)) = 0.0 |
|||
// [IntRange] _SelectedCellY("Selected Cell Y", Range(0,100)) = 0.0 |
|||
} |
|||
SubShader { |
|||
Tags { "Queue"="AlphaTest" "RenderType"="TransparentCutout" } |
|||
LOD 200 |
|||
|
|||
|
|||
CGPROGRAM |
|||
// Physically based Standard lighting model, and enable shadows on all light types |
|||
#pragma surface surf Standard fullforwardshadows |
|||
|
|||
// Use shader model 3.0 target, to get nicer looking lighting |
|||
#pragma target 3.0 |
|||
|
|||
sampler2D _MainTex; |
|||
|
|||
struct Input { |
|||
float2 uv_MainTex; |
|||
}; |
|||
|
|||
half _Glossiness = 0.0; |
|||
half _Metallic = 0.0; |
|||
float4 _LineColor; |
|||
float4 _CellColor; |
|||
// float4 _SelectedColor; |
|||
|
|||
float _GridSize; |
|||
// float _LineOffset; |
|||
float _LineSize; |
|||
|
|||
float _DrawU; |
|||
float _DrawV; |
|||
// float _SelectCell; |
|||
// float _SelectedCellX; |
|||
// float _SelectedCellY; |
|||
|
|||
// Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. |
|||
// See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. |
|||
// #pragma instancing_options assumeuniformscaling |
|||
UNITY_INSTANCING_BUFFER_START(Props) |
|||
// put more per-instance properties here |
|||
UNITY_INSTANCING_BUFFER_END(Props) |
|||
|
|||
void surf (Input IN, inout SurfaceOutputStandard o) { |
|||
// Albedo comes from a texture tinted by color |
|||
|
|||
float2 uv = IN.uv_MainTex; |
|||
|
|||
// _SelectedCellX = floor(_SelectedCellX); |
|||
// _SelectedCellY = floor(_SelectedCellY); |
|||
|
|||
fixed4 c = float4(0.0,0.0,0.0,0.0); |
|||
|
|||
float brightness = 1.0; |
|||
|
|||
float gsize = floor(_GridSize); |
|||
|
|||
|
|||
|
|||
gsize += _LineSize; |
|||
|
|||
float2 id; |
|||
|
|||
id.x = floor(uv.x/(1.0/gsize)); |
|||
// id.y = floor(uv.y/(1.0/gsize)); |
|||
id.y = floor(uv.y/(1.0/gsize)); |
|||
|
|||
float4 color = _CellColor; |
|||
brightness = _CellColor.w; |
|||
|
|||
// //This checks that the cell is currently selected if the Select Cell slider is set to 1 ( True ) |
|||
// if (round(_SelectCell) == 1.0 && id.x == _SelectedCellX && id.y == _SelectedCellY) |
|||
// { |
|||
// brightness = _SelectedColor.w; |
|||
// color = _SelectedColor; |
|||
// } |
|||
|
|||
// if (frac(uv.x*gsize) <= _LineSize || frac(uv.y*gsize) <= _LineSize) |
|||
// { |
|||
// brightness = _LineColor.w; |
|||
// color = _LineColor; |
|||
// } |
|||
if(round(_DrawU) == 1.0) |
|||
{ |
|||
if (frac(uv.x*gsize) <= _LineSize) |
|||
{ |
|||
// if (frac(uv.x*gsize) <= _LineSize) |
|||
// { |
|||
brightness = _LineColor.w; |
|||
color = _LineColor; |
|||
} |
|||
} |
|||
if(round(_DrawV) == 1.0) |
|||
{ |
|||
if (frac(uv.y*gsize) <= _LineSize) |
|||
{ |
|||
brightness = _LineColor.w; |
|||
color = _LineColor; |
|||
} |
|||
} |
|||
// // if (round(uv.x*gsize) == .8) |
|||
// // if (uv.x >= _LineOffset) |
|||
// if (uv.x >= .2 && uv.x <= .3) |
|||
// { |
|||
// brightness = _LineColor.w; |
|||
// color = _LineColor; |
|||
// // color = _CellColor; |
|||
// // brightness = _CellColor.w; |
|||
// } |
|||
|
|||
// if (frac(uv.x*gsize) <= _LineSize && frac(uv.y*gsize) <= _LineSize) |
|||
// { |
|||
// // brightness = _LineColor.w; |
|||
// // color = _LineColor; |
|||
// color = _CellColor; |
|||
// brightness = _CellColor.w; |
|||
// } |
|||
|
|||
|
|||
// if (frac(uv.x*gsize/_LineOffset) <= _LineSize) |
|||
// { |
|||
// brightness = _LineColor.w; |
|||
// color = _LineColor; |
|||
// } |
|||
// if (frac(uv.x*gsize/.5) <= _LineSize || fradc(uv.y*gsize) <= _LineSize) |
|||
// { |
|||
// brightness = _LineColor.w; |
|||
// color = _LineColor; |
|||
// } |
|||
|
|||
|
|||
//Clip transparent spots using alpha cutout |
|||
if (brightness == 0.0) { |
|||
clip(c.a - 1.0); |
|||
} |
|||
|
|||
|
|||
o.Albedo = float4( color.x*brightness,color.y*brightness,color.z*brightness,brightness); |
|||
// Metallic and smoothness come from slider variables |
|||
o.Metallic = 0.0; |
|||
o.Smoothness = 0.0; |
|||
o.Alpha = 0.0; |
|||
} |
|||
ENDCG |
|||
} |
|||
FallBack "Diffuse" |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: bbecf177c38d84ff08d7c683c116affd |
|||
timeCreated: 1527928195 |
|||
licenseType: Store |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Headband |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 1 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.98039216, g: 0.6509804, b: 0.16078432, a: 1} |
|||
- _EmissionColor: {r: 0.98039216, g: 0.6509804, b: 0.16078432, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 04be259c590de46f69db4cbd1da877d5 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: LightGreen |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 0 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 0 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.5926951, g: 0.7372549, b: 0.5994979, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: df32cc593804f42df97464dc455057b8 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: LightRed |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 0 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 0 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.74509805, g: 0.48966902, b: 0.45290273, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: a1daf31cdf41e484ca9ac33a5c6f524a |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Red |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 0 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 0 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.74509805, g: 0.22745098, b: 0.15294118, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 88b9ae7af2c1748a0a1f63407587a601 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: deb4e063d69e95e49b8e069be7c5c886 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 2e85738fe64714cffbf72f0f11de6307 |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
externalObjects: {} |
|||
serializedVersion: 9 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 0 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -100 |
|||
wrapU: 1 |
|||
wrapV: 1 |
|||
wrapW: -1 |
|||
nPOTScale: 0 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 1 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 1 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 8 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
- serializedVersion: 2 |
|||
buildTarget: Standalone |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
- serializedVersion: 2 |
|||
buildTarget: iPhone |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
- serializedVersion: 2 |
|||
buildTarget: Android |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: b33f877521c6d4d8782f018141dc1d6a |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_Name: UIDefault |
|||
m_Shader: {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: ETC1_EXTERNAL_ALPHA |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _ColorMask: 15 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _Stencil: 0 |
|||
- _StencilComp: 8 |
|||
- _StencilOp: 0 |
|||
- _StencilReadMask: 255 |
|||
- _StencilWriteMask: 255 |
|||
- _UVSec: 0 |
|||
- _UseUIAlphaClip: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 463606e709fd24f29ac1096d0aade647 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: White |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 0 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 0 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 0.9254902, g: 0.9372549, b: 0.9411765, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: eaad04b0e0dec42229c9cb00a981d7ac |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 1eb7d6f36c88fbc48ac541afedc1ccc0 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/AgentCube.fbx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: d42ce640bd273f14fb3076ec3bcd8a1b |
|||
ModelImporter: |
|||
serializedVersion: 22 |
|||
fileIDToRecycleName: |
|||
100000: //RootNode |
|||
400000: //RootNode |
|||
2100000: rep_Agent |
|||
2300000: //RootNode |
|||
3300000: //RootNode |
|||
4300000: AgentCube |
|||
externalObjects: |
|||
- first: |
|||
type: UnityEngine:Material |
|||
assembly: UnityEngine.CoreModule |
|||
name: rep_Agent |
|||
second: {fileID: 2100000, guid: f859518a4aa8c174db3ca5689255bcf6, type: 2} |
|||
materials: |
|||
importMaterials: 1 |
|||
materialName: 0 |
|||
materialSearch: 1 |
|||
materialLocation: 1 |
|||
animations: |
|||
legacyGenerateAnimations: 4 |
|||
bakeSimulation: 0 |
|||
resampleCurves: 1 |
|||
optimizeGameObjects: 0 |
|||
motionNodeName: |
|||
rigImportErrors: |
|||
rigImportWarnings: |
|||
animationImportErrors: |
|||
animationImportWarnings: |
|||
animationRetargetingWarnings: |
|||
animationDoRetargetingWarnings: 0 |
|||
importAnimatedCustomProperties: 0 |
|||
animationCompression: 1 |
|||
animationRotationError: 0.5 |
|||
animationPositionError: 0.5 |
|||
animationScaleError: 0.5 |
|||
animationWrapMode: 0 |
|||
extraExposedTransformPaths: [] |
|||
extraUserProperties: [] |
|||
clipAnimations: [] |
|||
isReadable: 1 |
|||
meshes: |
|||
lODScreenPercentages: [] |
|||
globalScale: 1 |
|||
meshCompression: 0 |
|||
addColliders: 0 |
|||
importVisibility: 1 |
|||
importBlendShapes: 1 |
|||
importCameras: 1 |
|||
importLights: 1 |
|||
swapUVChannels: 0 |
|||
generateSecondaryUV: 1 |
|||
useFileUnits: 1 |
|||
optimizeMeshForGPU: 1 |
|||
keepQuads: 0 |
|||
weldVertices: 1 |
|||
preserveHierarchy: 0 |
|||
indexFormat: 0 |
|||
secondaryUVAngleDistortion: 8 |
|||
secondaryUVAreaDistortion: 15.000001 |
|||
secondaryUVHardAngle: 88 |
|||
secondaryUVPackMargin: 4 |
|||
useFileScale: 0 |
|||
tangentSpace: |
|||
normalSmoothAngle: 60 |
|||
normalImportMode: 0 |
|||
tangentImportMode: 3 |
|||
normalCalculationMode: 4 |
|||
importAnimation: 1 |
|||
copyAvatar: 0 |
|||
humanDescription: |
|||
serializedVersion: 2 |
|||
human: [] |
|||
skeleton: [] |
|||
armTwist: 0.5 |
|||
foreArmTwist: 0.5 |
|||
upperLegTwist: 0.5 |
|||
legTwist: 0.5 |
|||
armStretch: 0.05 |
|||
legStretch: 0.05 |
|||
feetSpacing: 0 |
|||
rootMotionBoneName: |
|||
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
hasTranslationDoF: 0 |
|||
hasExtraRoot: 0 |
|||
skeletonHasParents: 1 |
|||
lastHumanDescriptionAvatarSource: {instanceID: 0} |
|||
animationType: 0 |
|||
humanoidOversampling: 1 |
|||
additionalBone: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/LongNarrowPlatform.fbx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 5b535e54498332546a40dec193a2a56a |
|||
ModelImporter: |
|||
serializedVersion: 22 |
|||
fileIDToRecycleName: |
|||
100000: CourtSurface |
|||
100002: //RootNode |
|||
100004: OuterWalls |
|||
400000: CourtSurface |
|||
400002: //RootNode |
|||
400004: OuterWalls |
|||
2100000: rep_CrawlerCourt |
|||
2100002: rep_WhitePaintSG |
|||
2300000: CourtSurface |
|||
2300002: OuterWalls |
|||
3300000: CourtSurface |
|||
3300002: OuterWalls |
|||
4300000: CourtSurface |
|||
4300002: OuterWalls |
|||
externalObjects: {} |
|||
materials: |
|||
importMaterials: 1 |
|||
materialName: 0 |
|||
materialSearch: 1 |
|||
materialLocation: 1 |
|||
animations: |
|||
legacyGenerateAnimations: 4 |
|||
bakeSimulation: 0 |
|||
resampleCurves: 1 |
|||
optimizeGameObjects: 0 |
|||
motionNodeName: |
|||
rigImportErrors: |
|||
rigImportWarnings: |
|||
animationImportErrors: |
|||
animationImportWarnings: |
|||
animationRetargetingWarnings: |
|||
animationDoRetargetingWarnings: 0 |
|||
importAnimatedCustomProperties: 0 |
|||
animationCompression: 1 |
|||
animationRotationError: 0.5 |
|||
animationPositionError: 0.5 |
|||
animationScaleError: 0.5 |
|||
animationWrapMode: 0 |
|||
extraExposedTransformPaths: [] |
|||
extraUserProperties: [] |
|||
clipAnimations: [] |
|||
isReadable: 1 |
|||
meshes: |
|||
lODScreenPercentages: [] |
|||
globalScale: 1 |
|||
meshCompression: 0 |
|||
addColliders: 0 |
|||
importVisibility: 1 |
|||
importBlendShapes: 1 |
|||
importCameras: 1 |
|||
importLights: 1 |
|||
swapUVChannels: 0 |
|||
generateSecondaryUV: 0 |
|||
useFileUnits: 1 |
|||
optimizeMeshForGPU: 1 |
|||
keepQuads: 0 |
|||
weldVertices: 1 |
|||
preserveHierarchy: 0 |
|||
indexFormat: 0 |
|||
secondaryUVAngleDistortion: 8 |
|||
secondaryUVAreaDistortion: 15.000001 |
|||
secondaryUVHardAngle: 88 |
|||
secondaryUVPackMargin: 4 |
|||
useFileScale: 1 |
|||
tangentSpace: |
|||
normalSmoothAngle: 60 |
|||
normalImportMode: 0 |
|||
tangentImportMode: 3 |
|||
normalCalculationMode: 4 |
|||
importAnimation: 1 |
|||
copyAvatar: 0 |
|||
humanDescription: |
|||
serializedVersion: 2 |
|||
human: [] |
|||
skeleton: [] |
|||
armTwist: 0.5 |
|||
foreArmTwist: 0.5 |
|||
upperLegTwist: 0.5 |
|||
legTwist: 0.5 |
|||
armStretch: 0.05 |
|||
legStretch: 0.05 |
|||
feetSpacing: 0 |
|||
rootMotionBoneName: |
|||
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
hasTranslationDoF: 0 |
|||
hasExtraRoot: 0 |
|||
skeletonHasParents: 1 |
|||
lastHumanDescriptionAvatarSource: {instanceID: 0} |
|||
animationType: 0 |
|||
humanoidOversampling: 1 |
|||
additionalBone: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
ML-Agents-Input-Example/Assets/ML-Agents/Examples/SharedAssets/Meshes/LongPlatform.fbx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 123ce272c1899fe4cb9494514640e29e |
|||
ModelImporter: |
|||
serializedVersion: 22 |
|||
fileIDToRecycleName: |
|||
100000: Floor |
|||
100002: //RootNode |
|||
100004: WallsOuter |
|||
400000: Floor |
|||
400002: //RootNode |
|||
400004: WallsOuter |
|||
2100000: rep_WhiteWalls |
|||
2100002: rep_Floor |
|||
2300000: Floor |
|||
2300002: WallsOuter |
|||
3300000: Floor |
|||
3300002: WallsOuter |
|||
4300000: WallsOuter |
|||
4300002: Floor |
|||
externalObjects: |
|||
- first: |
|||
type: UnityEngine:Material |
|||
assembly: UnityEngine.CoreModule |
|||
name: rep_Floor |
|||
second: {fileID: 2100000, guid: d66bdae8d2fdef84aba27de49d41be4f, type: 2} |
|||
- first: |
|||
type: UnityEngine:Material |
|||
assembly: UnityEngine.CoreModule |
|||
name: rep_WhiteWalls |
|||
second: {fileID: 2100000, guid: 6a39c0407dd85684384bf0277294e9b6, type: 2} |
|||
materials: |
|||
importMaterials: 1 |
|||
materialName: 0 |
|||
materialSearch: 1 |
|||
materialLocation: 1 |
|||
animations: |
|||
legacyGenerateAnimations: 4 |
|||
bakeSimulation: 0 |
|||
resampleCurves: 1 |
|||
optimizeGameObjects: 0 |
|||
motionNodeName: |
|||
rigImportErrors: |
|||
rigImportWarnings: |
|||
animationImportErrors: |
|||
animationImportWarnings: |
|||
animationRetargetingWarnings: |
|||
animationDoRetargetingWarnings: 0 |
|||
importAnimatedCustomProperties: 0 |
|||
animationCompression: 1 |
|||
animationRotationError: 0.5 |
|||
animationPositionError: 0.5 |
|||
animationScaleError: 0.5 |
|||
animationWrapMode: 0 |
|||
extraExposedTransformPaths: [] |
|||
extraUserProperties: [] |
|||
clipAnimations: [] |
|||
isReadable: 1 |
|||
meshes: |
|||
lODScreenPercentages: [] |
|||
globalScale: 1 |
|||
meshCompression: 0 |
|||
addColliders: 0 |
|||
importVisibility: 1 |
|||
importBlendShapes: 1 |
|||
importCameras: 1 |
|||
importLights: 1 |
|||
swapUVChannels: 0 |
|||
generateSecondaryUV: 1 |
|||
useFileUnits: 1 |
|||
optimizeMeshForGPU: 1 |
|||
keepQuads: 0 |
|||
weldVertices: 1 |
|||
preserveHierarchy: 0 |
|||
indexFormat: 0 |
|||
secondaryUVAngleDistortion: 8 |
|||
secondaryUVAreaDistortion: 15.000001 |
|||
secondaryUVHardAngle: 88 |
|||
secondaryUVPackMargin: 4 |
|||
useFileScale: 1 |
|||
tangentSpace: |
|||
normalSmoothAngle: 60 |
|||
normalImportMode: 0 |
|||
tangentImportMode: 3 |
|||
normalCalculationMode: 4 |
|||
importAnimation: 1 |
|||
copyAvatar: 0 |
|||
humanDescription: |
|||
serializedVersion: 2 |
|||
human: [] |
|||
skeleton: [] |
|||
armTwist: 0.5 |
|||
foreArmTwist: 0.5 |
|||
upperLegTwist: 0.5 |
|||
legTwist: 0.5 |
|||
armStretch: 0.05 |
|||
legStretch: 0.05 |
|||
feetSpacing: 0 |
|||
rootMotionBoneName: |
|||
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
hasTranslationDoF: 0 |
|||
hasExtraRoot: 0 |
|||
skeletonHasParents: 1 |
|||
lastHumanDescriptionAvatarSource: {instanceID: 0} |
|||
animationType: 0 |
|||
humanoidOversampling: 1 |
|||
additionalBone: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 4a5b8af9e6b4248a185db6a60bd8f319 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1001 &100100000 |
|||
Prefab: |
|||
m_ObjectHideFlags: 1 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: [] |
|||
m_RemovedComponents: [] |
|||
m_ParentPrefab: {fileID: 0} |
|||
m_RootGameObject: {fileID: 1293290366791352} |
|||
m_IsPrefabParent: 1 |
|||
--- !u!1 &1170655137580842 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4606123245040782} |
|||
- component: {fileID: 33962055814158598} |
|||
- component: {fileID: 23336100960796244} |
|||
m_Layer: 0 |
|||
m_Name: eye |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!1 &1180475074726172 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4665910583758396} |
|||
- component: {fileID: 20968265540301958} |
|||
m_Layer: 0 |
|||
m_Name: AgentCamera |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 0 |
|||
--- !u!1 &1293290366791352 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4521296116772160} |
|||
- component: {fileID: 33040811493814618} |
|||
- component: {fileID: 23024127177786336} |
|||
m_Layer: 0 |
|||
m_Name: AgentCube_Blue |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!1 &1403682198038744 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4369854024240858} |
|||
- component: {fileID: 33599117012852102} |
|||
- component: {fileID: 23386696179499502} |
|||
m_Layer: 0 |
|||
m_Name: eye |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!1 &1732512757313038 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4294025894413644} |
|||
- component: {fileID: 33735714974363708} |
|||
- component: {fileID: 23170014768823630} |
|||
m_Layer: 0 |
|||
m_Name: mouth |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!1 &1821905062018382 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4109178191404694} |
|||
- component: {fileID: 33052724106875566} |
|||
- component: {fileID: 23795637202710896} |
|||
m_Layer: 0 |
|||
m_Name: Headband |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4109178191404694 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1821905062018382} |
|||
m_LocalRotation: {x: -0, y: -0, z: 0.016506119, w: 0.9998638} |
|||
m_LocalPosition: {x: 0, y: 0.341, z: 0} |
|||
m_LocalScale: {x: 1.0441425, y: 0.19278127, z: 1.0441422} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4521296116772160} |
|||
m_RootOrder: 4 |
|||
m_LocalEulerAnglesHint: {x: 0, y: -179.99998, z: 1.8920001} |
|||
--- !u!4 &4294025894413644 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1732512757313038} |
|||
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} |
|||
m_LocalPosition: {x: 0, y: -0.18299997, z: 0.50040054} |
|||
m_LocalScale: {x: 0.27602, y: 0.042489994, z: 0.13891} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4521296116772160} |
|||
m_RootOrder: 3 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} |
|||
--- !u!4 &4369854024240858 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1403682198038744} |
|||
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} |
|||
m_LocalPosition: {x: 0.29999995, y: 0.07399994, z: 0.50040054} |
|||
m_LocalScale: {x: 0.29457998, y: 0.29457998, z: 0.29457998} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4521296116772160} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} |
|||
--- !u!4 &4521296116772160 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1293290366791352} |
|||
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} |
|||
m_LocalPosition: {x: -1.43, y: 1, z: -12} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 4665910583758396} |
|||
- {fileID: 4369854024240858} |
|||
- {fileID: 4606123245040782} |
|||
- {fileID: 4294025894413644} |
|||
- {fileID: 4109178191404694} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!4 &4606123245040782 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1170655137580842} |
|||
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} |
|||
m_LocalPosition: {x: -0.29999995, y: 0.07399994, z: 0.50040054} |
|||
m_LocalScale: {x: 0.29457998, y: 0.29457998, z: 0.29457998} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4521296116772160} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} |
|||
--- !u!4 &4665910583758396 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1180475074726172} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0.15} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4521296116772160} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!20 &20968265540301958 |
|||
Camera: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1180475074726172} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 2 |
|||
m_BackGroundColor: {r: 0.46666667, g: 0.5647059, b: 0.60784316, a: 1} |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 60 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294950911 |
|||
m_RenderingPath: -1 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 1 |
|||
m_AllowMSAA: 1 |
|||
m_AllowDynamicResolution: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
--- !u!23 &23024127177786336 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1293290366791352} |
|||
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: 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 &23170014768823630 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1732512757313038} |
|||
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: 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 &23336100960796244 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1170655137580842} |
|||
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: 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 &23386696179499502 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1403682198038744} |
|||
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: 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 &23795637202710896 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1821905062018382} |
|||
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: 04be259c590de46f69db4cbd1da877d5, 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!33 &33040811493814618 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1293290366791352} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!33 &33052724106875566 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1821905062018382} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!33 &33599117012852102 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1403682198038744} |
|||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!33 &33735714974363708 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1732512757313038} |
|||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!33 &33962055814158598 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1170655137580842} |
|||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: 70d695e1d8399400bb0f2873bdf29bb0 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 100100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1001 &100100000 |
|||
Prefab: |
|||
m_ObjectHideFlags: 1 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: [] |
|||
m_RemovedComponents: [] |
|||
m_ParentPrefab: {fileID: 0} |
|||
m_RootGameObject: {fileID: 1537641056927260} |
|||
m_IsPrefabParent: 1 |
|||
--- !u!1 &1508578353888260 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 224796324260922368} |
|||
- component: {fileID: 222875034646499690} |
|||
- component: {fileID: 114223610671736162} |
|||
m_Layer: 5 |
|||
m_Name: Logo |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!1 &1537641056927260 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 224194346362733190} |
|||
- component: {fileID: 223703725700644330} |
|||
- component: {fileID: 114816648722094340} |
|||
- component: {fileID: 114595077744033850} |
|||
m_Layer: 5 |
|||
m_Name: Canvas_Watermark |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &114223610671736162 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1508578353888260} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_Material: {fileID: 0} |
|||
m_Color: {r: 1, g: 1, b: 1, a: 1} |
|||
m_RaycastTarget: 1 |
|||
m_OnCullStateChanged: |
|||
m_PersistentCalls: |
|||
m_Calls: [] |
|||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, |
|||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null |
|||
m_Sprite: {fileID: 21300000, guid: 2e85738fe64714cffbf72f0f11de6307, type: 3} |
|||
m_Type: 0 |
|||
m_PreserveAspect: 0 |
|||
m_FillCenter: 1 |
|||
m_FillMethod: 4 |
|||
m_FillAmount: 1 |
|||
m_FillClockwise: 1 |
|||
m_FillOrigin: 0 |
|||
--- !u!114 &114595077744033850 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1537641056927260} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_IgnoreReversedGraphics: 1 |
|||
m_BlockingObjects: 0 |
|||
m_BlockingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
--- !u!114 &114816648722094340 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1537641056927260} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_UiScaleMode: 1 |
|||
m_ReferencePixelsPerUnit: 100 |
|||
m_ScaleFactor: 1 |
|||
m_ReferenceResolution: {x: 1920, y: 1200} |
|||
m_ScreenMatchMode: 0 |
|||
m_MatchWidthOrHeight: 0.5 |
|||
m_PhysicalUnit: 3 |
|||
m_FallbackScreenDPI: 96 |
|||
m_DefaultSpriteDPI: 96 |
|||
m_DynamicPixelsPerUnit: 1 |
|||
--- !u!222 &222875034646499690 |
|||
CanvasRenderer: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1508578353888260} |
|||
--- !u!223 &223703725700644330 |
|||
Canvas: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1537641056927260} |
|||
m_Enabled: 1 |
|||
serializedVersion: 3 |
|||
m_RenderMode: 0 |
|||
m_Camera: {fileID: 0} |
|||
m_PlaneDistance: 100 |
|||
m_PixelPerfect: 0 |
|||
m_ReceivesEvents: 1 |
|||
m_OverrideSorting: 0 |
|||
m_OverridePixelPerfect: 0 |
|||
m_SortingBucketNormalizedSize: 0 |
|||
m_AdditionalShaderChannelsFlag: 0 |
|||
m_SortingLayerID: 0 |
|||
m_SortingOrder: 0 |
|||
m_TargetDisplay: 0 |
|||
--- !u!224 &224194346362733190 |
|||
RectTransform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1537641056927260} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0} |
|||
m_LocalScale: {x: 0, y: 0, z: 0} |
|||
m_Children: |
|||
- {fileID: 224796324260922368} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
m_AnchorMin: {x: 0, y: 0} |
|||
m_AnchorMax: {x: 0, y: 0} |
|||
m_AnchoredPosition: {x: 0, y: 0} |
|||
m_SizeDelta: {x: 0, y: 0} |
|||
m_Pivot: {x: 0, y: 0} |
|||
--- !u!224 &224796324260922368 |
|||
RectTransform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1508578353888260} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0} |
|||
m_LocalScale: {x: 0.5588671, y: 0.558867, z: 0.558867} |
|||
m_Children: [] |
|||
m_Father: {fileID: 224194346362733190} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
m_AnchorMin: {x: 1, y: 1} |
|||
m_AnchorMax: {x: 1, y: 1} |
|||
m_AnchoredPosition: {x: -209, y: -116} |
|||
m_SizeDelta: {x: 715.7, y: 715.69995} |
|||
m_Pivot: {x: 0.5, y: 0.5} |
|
|||
fileFormatVersion: 2 |
|||
guid: 3ce107b4a79bc4eef83afde434932a68 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 100100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1001 &100100000 |
|||
Prefab: |
|||
m_ObjectHideFlags: 1 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: [] |
|||
m_RemovedComponents: [] |
|||
m_ParentPrefab: {fileID: 0} |
|||
m_RootGameObject: {fileID: 1537121661968964} |
|||
m_IsPrefabParent: 1 |
|||
--- !u!1 &1537121661968964 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 4943719350691982} |
|||
- component: {fileID: 108227806558212132} |
|||
m_Layer: 0 |
|||
m_Name: Directional_Light |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4943719350691982 |
|||
Transform: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1537121661968964} |
|||
m_LocalRotation: {x: 0.31598538, y: -0.3596048, z: 0.13088542, w: 0.8681629} |
|||
m_LocalPosition: {x: 106.38621, y: 38.840767, z: 34.72934} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 40, y: -45, z: 0} |
|||
--- !u!108 &108227806558212132 |
|||
Light: |
|||
m_ObjectHideFlags: 1 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 100100000} |
|||
m_GameObject: {fileID: 1537121661968964} |
|||
m_Enabled: 1 |
|||
serializedVersion: 8 |
|||
m_Type: 1 |
|||
m_Color: {r: 1, g: 0.99570733, b: 0.984, a: 1} |
|||
m_Intensity: 1 |
|||
m_Range: 27.9 |
|||
m_SpotAngle: 74.8 |
|||
m_CookieSize: 10 |
|||
m_Shadows: |
|||
m_Type: 2 |
|||
m_Resolution: -1 |
|||
m_CustomResolution: -1 |
|||
m_Strength: 0.8 |
|||
m_Bias: 0.05 |
|||
m_NormalBias: 0.4 |
|||
m_NearPlane: 0.2 |
|||
m_Cookie: {fileID: 0} |
|||
m_DrawHalo: 0 |
|||
m_Flare: {fileID: 0} |
|||
m_RenderMode: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_Lightmapping: 4 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 5889392e3f05b448a8a06c5def6c2dec |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 100100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 4636aef99947747db8e1ed87884ed35b |
|||
folderAsset: yes |
|||
timeCreated: 1518416203 |
|||
licenseType: Free |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
using Unity.Barracuda; |
|||
using System.IO; |
|||
using Unity.Barracuda.ONNX; |
|||
using Unity.MLAgents; |
|||
using Unity.MLAgents.Policies; |
|||
#if UNITY_EDITOR
|
|||
using UnityEditor; |
|||
#endif
|
|||
|
|||
namespace Unity.MLAgentsExamples |
|||
{ |
|||
/// <summary>
|
|||
/// Utility class to allow the NNModel file for an agent to be overriden during inference.
|
|||
/// This is used internally to validate the file after training is done.
|
|||
/// The behavior name to override and file path are specified on the commandline, e.g.
|
|||
/// player.exe --mlagents-override-model-directory /path/to/models
|
|||
///
|
|||
/// Additionally, a number of episodes to run can be specified; after this, the application will quit.
|
|||
/// Note this will only work with example scenes that have 1:1 Agent:Behaviors. More complicated scenes like WallJump
|
|||
/// probably won't override correctly.
|
|||
/// </summary>
|
|||
public class ModelOverrider : MonoBehaviour |
|||
{ |
|||
HashSet<string> k_SupportedExtensions = new HashSet<string> { "nn", "onnx" }; |
|||
const string k_CommandLineModelOverrideDirectoryFlag = "--mlagents-override-model-directory"; |
|||
const string k_CommandLineModelOverrideExtensionFlag = "--mlagents-override-model-extension"; |
|||
const string k_CommandLineQuitAfterEpisodesFlag = "--mlagents-quit-after-episodes"; |
|||
const string k_CommandLineQuitOnLoadFailure = "--mlagents-quit-on-load-failure"; |
|||
|
|||
// The attached Agent
|
|||
Agent m_Agent; |
|||
|
|||
string m_BehaviorNameOverrideDirectory; |
|||
|
|||
private List<string> m_OverrideExtensions = new List<string>(); |
|||
|
|||
// Cached loaded NNModels, with the behavior name as the key.
|
|||
Dictionary<string, NNModel> m_CachedModels = new Dictionary<string, NNModel>(); |
|||
|
|||
|
|||
// Max episodes to run. Only used if > 0
|
|||
// Will default to 1 if override models are specified, otherwise 0.
|
|||
int m_MaxEpisodes; |
|||
|
|||
int m_NumSteps; |
|||
int m_PreviousNumSteps; |
|||
int m_PreviousAgentCompletedEpisodes; |
|||
|
|||
bool m_QuitOnLoadFailure; |
|||
[Tooltip("Debug values to be used in place of the command line for overriding models.")] |
|||
public string debugCommandLineOverride; |
|||
|
|||
// Static values to keep track of completed episodes and steps across resets
|
|||
// These are updated in OnDisable.
|
|||
static int s_PreviousAgentCompletedEpisodes; |
|||
static int s_PreviousNumSteps; |
|||
|
|||
int TotalCompletedEpisodes |
|||
{ |
|||
get { return m_PreviousAgentCompletedEpisodes + (m_Agent == null ? 0 : m_Agent.CompletedEpisodes); } |
|||
} |
|||
|
|||
int TotalNumSteps |
|||
{ |
|||
get { return m_PreviousNumSteps + m_NumSteps; } |
|||
} |
|||
|
|||
public bool HasOverrides |
|||
{ |
|||
get |
|||
{ |
|||
GetAssetPathFromCommandLine(); |
|||
return !string.IsNullOrEmpty(m_BehaviorNameOverrideDirectory); |
|||
} |
|||
} |
|||
|
|||
public static string GetOverrideBehaviorName(string originalBehaviorName) |
|||
{ |
|||
return $"Override_{originalBehaviorName}"; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Get the asset path to use from the commandline arguments.
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
void GetAssetPathFromCommandLine() |
|||
{ |
|||
var maxEpisodes = 0; |
|||
string[] commandLineArgsOverride = null; |
|||
if (!string.IsNullOrEmpty(debugCommandLineOverride) && Application.isEditor) |
|||
{ |
|||
commandLineArgsOverride = debugCommandLineOverride.Split(' '); |
|||
} |
|||
|
|||
var args = commandLineArgsOverride ?? Environment.GetCommandLineArgs(); |
|||
for (var i = 0; i < args.Length; i++) |
|||
{ |
|||
if (args[i] == k_CommandLineModelOverrideDirectoryFlag && i < args.Length - 1) |
|||
{ |
|||
m_BehaviorNameOverrideDirectory = args[i + 1].Trim(); |
|||
} |
|||
else if (args[i] == k_CommandLineModelOverrideExtensionFlag && i < args.Length - 1) |
|||
{ |
|||
var overrideExtension = args[i + 1].Trim().ToLower(); |
|||
var isKnownExtension = k_SupportedExtensions.Contains(overrideExtension); |
|||
if (!isKnownExtension) |
|||
{ |
|||
Debug.LogError($"loading unsupported format: {overrideExtension}"); |
|||
Application.Quit(1); |
|||
#if UNITY_EDITOR
|
|||
EditorApplication.isPlaying = false; |
|||
#endif
|
|||
} |
|||
m_OverrideExtensions.Add(overrideExtension); |
|||
} |
|||
else if (args[i] == k_CommandLineQuitAfterEpisodesFlag && i < args.Length - 1) |
|||
{ |
|||
Int32.TryParse(args[i + 1], out maxEpisodes); |
|||
} |
|||
else if (args[i] == k_CommandLineQuitOnLoadFailure) |
|||
{ |
|||
m_QuitOnLoadFailure = true; |
|||
} |
|||
} |
|||
|
|||
if (!string.IsNullOrEmpty(m_BehaviorNameOverrideDirectory)) |
|||
{ |
|||
// If overriding models, set maxEpisodes to 1 or the command line value
|
|||
m_MaxEpisodes = maxEpisodes > 0 ? maxEpisodes : 1; |
|||
Debug.Log($"setting m_MaxEpisodes to {maxEpisodes}"); |
|||
} |
|||
} |
|||
|
|||
void OnEnable() |
|||
{ |
|||
// Start with these initialized to previous values in the case where we're resetting scenes.
|
|||
m_PreviousNumSteps = s_PreviousNumSteps; |
|||
m_PreviousAgentCompletedEpisodes = s_PreviousAgentCompletedEpisodes; |
|||
|
|||
m_Agent = GetComponent<Agent>(); |
|||
|
|||
GetAssetPathFromCommandLine(); |
|||
if (HasOverrides) |
|||
{ |
|||
OverrideModel(); |
|||
} |
|||
} |
|||
|
|||
void OnDisable() |
|||
{ |
|||
// Update the static episode and step counts.
|
|||
// For a single agent in the scene, this will be a straightforward increment.
|
|||
// If there are multiple agents, we'll increment the count by the Agent that completed the most episodes.
|
|||
s_PreviousAgentCompletedEpisodes = Mathf.Max(s_PreviousAgentCompletedEpisodes, TotalCompletedEpisodes); |
|||
s_PreviousNumSteps = Mathf.Max(s_PreviousNumSteps, TotalNumSteps); |
|||
} |
|||
|
|||
void FixedUpdate() |
|||
{ |
|||
if (m_MaxEpisodes > 0) |
|||
{ |
|||
// For Agents without maxSteps, exit as soon as we've hit the target number of episodes.
|
|||
// For Agents that specify MaxStep, also make sure we've gone at least that many steps.
|
|||
// Since we exit as soon as *any* Agent hits its target, the maxSteps condition keeps us running
|
|||
// a bit longer in case there's an early failure.
|
|||
if (TotalCompletedEpisodes >= m_MaxEpisodes && TotalNumSteps > m_MaxEpisodes * m_Agent.MaxStep) |
|||
{ |
|||
Debug.Log($"ModelOverride reached {TotalCompletedEpisodes} episodes and {TotalNumSteps} steps. Exiting."); |
|||
Application.Quit(0); |
|||
#if UNITY_EDITOR
|
|||
EditorApplication.isPlaying = false; |
|||
#endif
|
|||
} |
|||
} |
|||
m_NumSteps++; |
|||
} |
|||
|
|||
public NNModel GetModelForBehaviorName(string behaviorName) |
|||
{ |
|||
if (m_CachedModels.ContainsKey(behaviorName)) |
|||
{ |
|||
return m_CachedModels[behaviorName]; |
|||
} |
|||
|
|||
if (string.IsNullOrEmpty(m_BehaviorNameOverrideDirectory)) |
|||
{ |
|||
Debug.Log($"No override directory set."); |
|||
return null; |
|||
} |
|||
|
|||
// Try the override extensions in order. If they weren't set, try .nn first, then .onnx.
|
|||
var overrideExtensions = (m_OverrideExtensions.Count > 0) |
|||
? m_OverrideExtensions.ToArray() |
|||
: new[] { "nn", "onnx" }; |
|||
|
|||
byte[] rawModel = null; |
|||
bool isOnnx = false; |
|||
string assetName = null; |
|||
foreach (var overrideExtension in overrideExtensions) |
|||
{ |
|||
var assetPath = Path.Combine(m_BehaviorNameOverrideDirectory, $"{behaviorName}.{overrideExtension}"); |
|||
try |
|||
{ |
|||
rawModel = File.ReadAllBytes(assetPath); |
|||
isOnnx = overrideExtension.Equals("onnx"); |
|||
assetName = "Override - " + Path.GetFileName(assetPath); |
|||
break; |
|||
} |
|||
catch (IOException) |
|||
{ |
|||
// Do nothing - try the next extension, or we'll exit if nothing loaded.
|
|||
} |
|||
} |
|||
|
|||
if (rawModel == null) |
|||
{ |
|||
Debug.Log($"Couldn't load model file(s) for {behaviorName} in {m_BehaviorNameOverrideDirectory} (full path: {Path.GetFullPath(m_BehaviorNameOverrideDirectory)}"); |
|||
// Cache the null so we don't repeatedly try to load a missing file
|
|||
m_CachedModels[behaviorName] = null; |
|||
return null; |
|||
} |
|||
|
|||
var asset = isOnnx ? LoadOnnxModel(rawModel) : LoadBarracudaModel(rawModel); |
|||
asset.name = assetName; |
|||
m_CachedModels[behaviorName] = asset; |
|||
return asset; |
|||
} |
|||
|
|||
NNModel LoadBarracudaModel(byte[] rawModel) |
|||
{ |
|||
var asset = ScriptableObject.CreateInstance<NNModel>(); |
|||
asset.modelData = ScriptableObject.CreateInstance<NNModelData>(); |
|||
asset.modelData.Value = rawModel; |
|||
return asset; |
|||
} |
|||
|
|||
NNModel LoadOnnxModel(byte[] rawModel) |
|||
{ |
|||
var converter = new ONNXModelConverter(true); |
|||
var onnxModel = converter.Convert(rawModel); |
|||
|
|||
NNModelData assetData = ScriptableObject.CreateInstance<NNModelData>(); |
|||
using (var memoryStream = new MemoryStream()) |
|||
using (var writer = new BinaryWriter(memoryStream)) |
|||
{ |
|||
ModelWriter.Save(writer, onnxModel); |
|||
assetData.Value = memoryStream.ToArray(); |
|||
} |
|||
assetData.name = "Data"; |
|||
assetData.hideFlags = HideFlags.HideInHierarchy; |
|||
|
|||
var asset = ScriptableObject.CreateInstance<NNModel>(); |
|||
asset.modelData = assetData; |
|||
return asset; |
|||
} |
|||
|
|||
|
|||
/// <summary>
|
|||
/// Load the NNModel file from the specified path, and give it to the attached agent.
|
|||
/// </summary>
|
|||
void OverrideModel() |
|||
{ |
|||
bool overrideOk = false; |
|||
string overrideError = null; |
|||
|
|||
m_Agent.LazyInitialize(); |
|||
var bp = m_Agent.GetComponent<BehaviorParameters>(); |
|||
var behaviorName = bp.BehaviorName; |
|||
|
|||
NNModel nnModel = null; |
|||
try |
|||
{ |
|||
nnModel = GetModelForBehaviorName(behaviorName); |
|||
} |
|||
catch (Exception e) |
|||
{ |
|||
overrideError = $"Exception calling GetModelForBehaviorName: {e}"; |
|||
} |
|||
|
|||
if (nnModel == null) |
|||
{ |
|||
if (string.IsNullOrEmpty(overrideError)) |
|||
{ |
|||
overrideError = |
|||
$"Didn't find a model for behaviorName {behaviorName}. Make " + |
|||
"sure the behaviorName is set correctly in the commandline " + |
|||
"and that the model file exists"; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
var modelName = nnModel != null ? nnModel.name : "<null>"; |
|||
Debug.Log($"Overriding behavior {behaviorName} for agent with model {modelName}"); |
|||
try |
|||
{ |
|||
m_Agent.SetModel(GetOverrideBehaviorName(behaviorName), nnModel); |
|||
overrideOk = true; |
|||
} |
|||
catch (Exception e) |
|||
{ |
|||
overrideError = $"Exception calling Agent.SetModel: {e}"; |
|||
} |
|||
} |
|||
|
|||
if (!overrideOk && m_QuitOnLoadFailure) |
|||
{ |
|||
if (!string.IsNullOrEmpty(overrideError)) |
|||
{ |
|||
Debug.LogWarning(overrideError); |
|||
} |
|||
Application.Quit(1); |
|||
#if UNITY_EDITOR
|
|||
EditorApplication.isPlaying = false; |
|||
#endif
|
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 3a6da8f78a394c6ab027688eab81e04d |
|||
timeCreated: 1579651041 |
|
|||
using UnityEngine; |
|||
using Unity.MLAgents; |
|||
|
|||
namespace Unity.MLAgentsExamples |
|||
{ |
|||
/// <summary>
|
|||
/// A helper class for the ML-Agents example scenes to override various
|
|||
/// global settings, and restore them afterwards.
|
|||
/// This can modify some Physics and time-stepping properties, so you
|
|||
/// shouldn't copy it into your project unless you know what you're doing.
|
|||
/// </summary>
|
|||
public class ProjectSettingsOverrides : MonoBehaviour |
|||
{ |
|||
// Original values
|
|||
Vector3 m_OriginalGravity; |
|||
float m_OriginalFixedDeltaTime; |
|||
float m_OriginalMaximumDeltaTime; |
|||
int m_OriginalSolverIterations; |
|||
int m_OriginalSolverVelocityIterations; |
|||
bool m_OriginalReuseCollisionCallbacks; |
|||
|
|||
[Tooltip("Increase or decrease the scene gravity. Use ~3x to make things less floaty")] |
|||
public float gravityMultiplier = 1.0f; |
|||
|
|||
[Header("Advanced physics settings")] |
|||
[Tooltip("The interval in seconds at which physics and other fixed frame rate updates (like MonoBehaviour's FixedUpdate) are performed.")] |
|||
public float fixedDeltaTime = .02f; |
|||
[Tooltip("The maximum time a frame can take. Physics and other fixed frame rate updates (like MonoBehaviour's FixedUpdate) will be performed only for this duration of time per frame.")] |
|||
public float maximumDeltaTime = 1.0f / 3.0f; |
|||
[Tooltip("Determines how accurately Rigidbody joints and collision contacts are resolved. (default 6). Must be positive.")] |
|||
public int solverIterations = 6; |
|||
[Tooltip("Affects how accurately the Rigidbody joints and collision contacts are resolved. (default 1). Must be positive.")] |
|||
public int solverVelocityIterations = 1; |
|||
[Tooltip("Determines whether the garbage collector should reuse only a single instance of a Collision type for all collision callbacks. Reduces Garbage.")] |
|||
public bool reuseCollisionCallbacks = true; |
|||
|
|||
public void Awake() |
|||
{ |
|||
// Save the original values
|
|||
m_OriginalGravity = Physics.gravity; |
|||
m_OriginalFixedDeltaTime = Time.fixedDeltaTime; |
|||
m_OriginalMaximumDeltaTime = Time.maximumDeltaTime; |
|||
m_OriginalSolverIterations = Physics.defaultSolverIterations; |
|||
m_OriginalSolverVelocityIterations = Physics.defaultSolverVelocityIterations; |
|||
m_OriginalReuseCollisionCallbacks = Physics.reuseCollisionCallbacks; |
|||
|
|||
// Override
|
|||
Physics.gravity *= gravityMultiplier; |
|||
Time.fixedDeltaTime = fixedDeltaTime; |
|||
Time.maximumDeltaTime = maximumDeltaTime; |
|||
Physics.defaultSolverIterations = solverIterations; |
|||
Physics.defaultSolverVelocityIterations = solverVelocityIterations; |
|||
Physics.reuseCollisionCallbacks = reuseCollisionCallbacks; |
|||
|
|||
// Make sure the Academy singleton is initialized first, since it will create the SideChannels.
|
|||
Academy.Instance.EnvironmentParameters.RegisterCallback("gravity", f => { Physics.gravity = new Vector3(0, -f, 0); }); |
|||
} |
|||
|
|||
public void OnDestroy() |
|||
{ |
|||
Physics.gravity = m_OriginalGravity; |
|||
Time.fixedDeltaTime = m_OriginalFixedDeltaTime; |
|||
Time.maximumDeltaTime = m_OriginalMaximumDeltaTime; |
|||
Physics.defaultSolverIterations = m_OriginalSolverIterations; |
|||
Physics.defaultSolverVelocityIterations = m_OriginalSolverVelocityIterations; |
|||
Physics.reuseCollisionCallbacks = m_OriginalReuseCollisionCallbacks; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: ec51f47c5ed0478080c449c74fd9c154 |
|||
timeCreated: 1578511069 |
|
|||
{ |
|||
"dependencies": { |
|||
"com.unity.2d.sprite": "1.0.0", |
|||
"com.unity.2d.tilemap": "1.0.0", |
|||
"com.unity.ads": "3.6.1", |
|||
"com.unity.analytics": "3.3.5", |
|||
"com.unity.collab-proxy": "1.2.16", |
|||
"com.unity.ide.rider": "3.0.3", |
|||
"com.unity.ide.vscode": "1.2.3", |
|||
"com.unity.inputsystem": "1.1.0-preview.3", |
|||
"com.unity.ml-agents": "file:../../com.unity.ml-agents", |
|||
"com.unity.ml-agents.extensions": "file:../../com.unity.ml-agents.extensions", |
|||
"com.unity.multiplayer-hlapi": "1.0.8", |
|||
"com.unity.package-validation-suite": "0.19.3-preview", |
|||
"com.unity.purchasing": "2.2.1", |
|||
"com.unity.test-framework": "1.1.20", |
|||
"com.unity.testtools.codecoverage": "1.0.0-pre.3", |
|||
"com.unity.textmeshpro": "2.1.1", |
|||
"com.unity.timeline": "1.2.15", |
|||
"com.unity.ugui": "1.0.0", |
|||
"com.unity.xr.legacyinputhelpers": "2.1.7", |
|||
"com.unity.modules.ai": "1.0.0", |
|||
"com.unity.modules.androidjni": "1.0.0", |
|||
"com.unity.modules.animation": "1.0.0", |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.cloth": "1.0.0", |
|||
"com.unity.modules.director": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.particlesystem": "1.0.0", |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.physics2d": "1.0.0", |
|||
"com.unity.modules.screencapture": "1.0.0", |
|||
"com.unity.modules.terrain": "1.0.0", |
|||
"com.unity.modules.terrainphysics": "1.0.0", |
|||
"com.unity.modules.tilemap": "1.0.0", |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.uielements": "1.0.0", |
|||
"com.unity.modules.umbra": "1.0.0", |
|||
"com.unity.modules.unityanalytics": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequestaudio": "1.0.0", |
|||
"com.unity.modules.unitywebrequesttexture": "1.0.0", |
|||
"com.unity.modules.unitywebrequestwww": "1.0.0", |
|||
"com.unity.modules.vehicles": "1.0.0", |
|||
"com.unity.modules.video": "1.0.0", |
|||
"com.unity.modules.vr": "1.0.0", |
|||
"com.unity.modules.wind": "1.0.0", |
|||
"com.unity.modules.xr": "1.0.0" |
|||
}, |
|||
"testables": [ |
|||
"com.unity.ml-agents", |
|||
"com.unity.ml-agents.extensions", |
|||
"com.unity.inputsystem" |
|||
] |
|||
} |
|
|||
{ |
|||
"dependencies": { |
|||
"com.unity.2d.sprite": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.2d.tilemap": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.ads": { |
|||
"version": "3.6.1", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.analytics": { |
|||
"version": "3.3.5", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.barracuda": { |
|||
"version": "1.3.0-preview", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.burst": "1.3.4", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.burst": { |
|||
"version": "1.3.4", |
|||
"depth": 2, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.mathematics": "1.2.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.collab-proxy": { |
|||
"version": "1.2.16", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ext.nunit": { |
|||
"version": "1.0.6", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ide.rider": { |
|||
"version": "3.0.3", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.1.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ide.vscode": { |
|||
"version": "1.2.3", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.inputsystem": { |
|||
"version": "1.1.0-preview.3", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.mathematics": { |
|||
"version": "1.2.1", |
|||
"depth": 3, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ml-agents": { |
|||
"version": "file:../../com.unity.ml-agents", |
|||
"depth": 0, |
|||
"source": "local", |
|||
"dependencies": { |
|||
"com.unity.barracuda": "1.3.0-preview", |
|||
"com.unity.modules.imageconversion": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.physics2d": "1.0.0", |
|||
"com.unity.modules.unityanalytics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.ml-agents.extensions": { |
|||
"version": "file:../../com.unity.ml-agents.extensions", |
|||
"depth": 0, |
|||
"source": "local", |
|||
"dependencies": { |
|||
"com.unity.ml-agents": "1.8.0-preview" |
|||
} |
|||
}, |
|||
"com.unity.multiplayer-hlapi": { |
|||
"version": "1.0.8", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"nuget.mono-cecil": "0.1.6-preview" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.nuget.mono-cecil": { |
|||
"version": "0.1.6-preview.2", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"nuget.mono-cecil": "0.1.6-preview" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.package-validation-suite": { |
|||
"version": "0.19.3-preview", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.nuget.mono-cecil": "0.1.6-preview.2" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.purchasing": { |
|||
"version": "2.2.1", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.settings-manager": { |
|||
"version": "1.0.1", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.test-framework": { |
|||
"version": "1.1.20", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ext.nunit": "1.0.6", |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.testtools.codecoverage": { |
|||
"version": "1.0.0-pre.3", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.test-framework": "1.0.16", |
|||
"com.unity.settings-manager": "1.0.1" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.textmeshpro": { |
|||
"version": "2.1.1", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.ugui": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.timeline": { |
|||
"version": "1.2.15", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.ugui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.imgui": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.xr.legacyinputhelpers": { |
|||
"version": "2.1.7", |
|||
"depth": 0, |
|||
"source": "registry", |
|||
"dependencies": { |
|||
"com.unity.modules.vr": "1.0.0", |
|||
"com.unity.modules.xr": "1.0.0" |
|||
}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"nuget.mono-cecil": { |
|||
"version": "0.1.6-preview", |
|||
"depth": 1, |
|||
"source": "registry", |
|||
"dependencies": {}, |
|||
"url": "https://packages.unity.com" |
|||
}, |
|||
"com.unity.modules.ai": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.androidjni": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.animation": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.assetbundle": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.audio": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.cloth": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.director": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.animation": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.imageconversion": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.imgui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.jsonserialize": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.particlesystem": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.physics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.physics2d": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.screencapture": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.subsystems": { |
|||
"version": "1.0.0", |
|||
"depth": 1, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.terrain": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.terrainphysics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.terrain": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.tilemap": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics2d": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.ui": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.uielements": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.imgui": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.umbra": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.unityanalytics": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequest": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.unitywebrequestassetbundle": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequestaudio": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequesttexture": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.unitywebrequestwww": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.unitywebrequest": "1.0.0", |
|||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0", |
|||
"com.unity.modules.unitywebrequestaudio": "1.0.0", |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.assetbundle": "1.0.0", |
|||
"com.unity.modules.imageconversion": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.vehicles": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.video": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.audio": "1.0.0", |
|||
"com.unity.modules.ui": "1.0.0", |
|||
"com.unity.modules.unitywebrequest": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.vr": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.xr": "1.0.0" |
|||
} |
|||
}, |
|||
"com.unity.modules.wind": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": {} |
|||
}, |
|||
"com.unity.modules.xr": { |
|||
"version": "1.0.0", |
|||
"depth": 0, |
|||
"source": "builtin", |
|||
"dependencies": { |
|||
"com.unity.modules.physics": "1.0.0", |
|||
"com.unity.modules.jsonserialize": "1.0.0", |
|||
"com.unity.modules.subsystems": "1.0.0" |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!11 &1 |
|||
AudioManager: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Volume: 1 |
|||
Rolloff Scale: 1 |
|||
Doppler Factor: 1 |
|||
Default Speaker Mode: 2 |
|||
m_SampleRate: 0 |
|||
m_DSPBufferSize: 1024 |
|||
m_VirtualVoiceCount: 512 |
|||
m_RealVoiceCount: 32 |
|||
m_SpatializerPlugin: |
|||
m_AmbisonicDecoderPlugin: |
|||
m_DisableAudio: 0 |
|||
m_VirtualizeEffects: 1 |
|||
m_RequestedDSPBufferSize: 0 |
|
|||
{ |
|||
"MonoBehaviour": { |
|||
"Version": 3, |
|||
"EnableBurstCompilation": true, |
|||
"EnableOptimisations": true, |
|||
"EnableSafetyChecks": false, |
|||
"EnableDebugInAllBuilds": false, |
|||
"UsePlatformSDKLinker": false, |
|||
"CpuMinTargetX32": 0, |
|||
"CpuMaxTargetX32": 0, |
|||
"CpuMinTargetX64": 0, |
|||
"CpuMaxTargetX64": 0, |
|||
"CpuTargetsX64": 72 |
|||
} |
|||
} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!236 &1 |
|||
ClusterInputManager: |
|||
m_ObjectHideFlags: 0 |
|||
m_Inputs: [] |
部分文件因为文件数量过多而无法显示
撰写
预览
正在加载...
取消
保存
Reference in new issue