├── .github └── workflows │ └── publish.yml ├── .gitignore ├── Assets ├── MoveNetMultiposeSample.cs ├── MoveNetMultiposeSample.cs.meta ├── MoveNetMultiposeSample.unity ├── MoveNetMultiposeSample.unity.meta ├── OneEuroFilter.cs ├── OneEuroFilter.cs.meta ├── Pose.cs ├── Pose.cs.meta ├── PoseVisualizer.cs ├── PoseVisualizer.cs.meta ├── runner.jpg └── runner.jpg.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Packages │ └── com.unity.testtools.codecoverage │ │ └── Settings.json ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md ├── UserSettings ├── EditorUserSettings.asset ├── Layouts │ ├── CurrentMaximizeLayout.dwlt │ └── default-2021.dwlt └── Search.settings └── demo.gif /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish to NPM 2 | 3 | on: 4 | release: 5 | types: [published] 6 | workflow_dispatch: 7 | 8 | jobs: 9 | npm: 10 | runs-on: ubuntu-latest 11 | env: 12 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 13 | steps: 14 | - uses: actions/checkout@v2 15 | - uses: actions/setup-node@v2 16 | with: 17 | registry-url: 'https://registry.npmjs.org' 18 | - run: npm publish --access public 19 | working-directory: Packages/ai.natml.vision.movenet-multipose -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Unity 2 | .utmp/ 3 | Library/ 4 | Temp/ 5 | obj/ 6 | Logs/ 7 | UserSettings/ 8 | 9 | #vs 10 | *.csproj 11 | *.sln 12 | 13 | # IDE 14 | .vscode/ 15 | .gradle/ 16 | .vs/ 17 | .idea/ 18 | 19 | # Function 20 | ProjectSettings/Function.asset 21 | 22 | # NatML 23 | ProjectSettings/NatML.asset 24 | ProjectSettings/NatMLHub.asset 25 | 26 | # VideoKit 27 | ProjectSettings/VideoKit.asset 28 | 29 | # Misc 30 | .DS_Store -------------------------------------------------------------------------------- /Assets/MoveNetMultiposeSample.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * MoveNet Multipose 3 | * Copyright © 2025 NatML Inc. All Rights Reserved. 4 | */ 5 | 6 | using UnityEngine; 7 | using Function; 8 | using Newtonsoft.Json; 9 | using Newtonsoft.Json.Linq; 10 | using VideoKit; 11 | using Function.Types; 12 | using VideoKit.UI; 13 | 14 | [Function.Function.Embed(Tag)] 15 | public class MoveNetMultiposeSample : MonoBehaviour { 16 | 17 | [Header(@"Camera Preview")] 18 | public VideoKitCameraManager cameraManager; 19 | public VideoKitCameraView cameraView; 20 | 21 | [Header(@"Prediction")] 22 | public Texture2D image; 23 | public bool realtime; 24 | 25 | [Header(@"UI")] 26 | public PoseVisualizer visualizer; 27 | 28 | private Function.Function fxn; 29 | 30 | /// 31 | /// MoveNet Multipose predictor tag on Function. 32 | /// See https://fxn.ai/@natml/movenet-multipose 33 | /// 34 | private const string Tag = "@natml/movenet-multipose"; 35 | 36 | private async void Start () { 37 | // Preload the predictor 38 | fxn = FunctionUnity.Create(); 39 | await fxn.Predictions.Create(tag: Tag, inputs: new()); // Run this once 40 | // Listen for camera 41 | if (!realtime) 42 | DetectPoses(image); 43 | else { 44 | cameraView.OnCameraFrame.AddListener(OnCameraFrame); 45 | await cameraManager.StartRunningAsync(); 46 | } 47 | } 48 | 49 | private void OnCameraFrame () => DetectPoses(cameraView.texture); 50 | 51 | private void DetectPoses (Texture2D image) { 52 | // Predict pose 53 | Prediction prediction = fxn.Predictions.Create( 54 | tag: Tag, 55 | inputs: new () { ["image"] = image.ToImage() } 56 | ).Result; 57 | Pose[] poses = (prediction.results[0] as JArray).ToObject(Pose.Serializer); 58 | // Visualize 59 | visualizer.Render(image, poses); 60 | } 61 | } -------------------------------------------------------------------------------- /Assets/MoveNetMultiposeSample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e76b2140702f40fc95129d6a585c9c9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/MoveNetMultiposeSample.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 10 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 705507994} 41 | m_UseRadianceAmbientProbe: 0 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 13 46 | m_BakeOnSceneLoad: 0 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 0 55 | m_LightmapEditorSettings: 56 | serializedVersion: 12 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_AtlasSize: 1024 60 | m_AO: 0 61 | m_AOMaxDistance: 1 62 | m_CompAOExponent: 1 63 | m_CompAOExponentDirect: 0 64 | m_ExtractAmbientOcclusion: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_ReflectionCompression: 2 70 | m_MixedBakeMode: 2 71 | m_BakeBackend: 1 72 | m_PVRSampling: 1 73 | m_PVRDirectSampleCount: 32 74 | m_PVRSampleCount: 500 75 | m_PVRBounces: 2 76 | m_PVREnvironmentSampleCount: 500 77 | m_PVREnvironmentReferencePointCount: 2048 78 | m_PVRFilteringMode: 2 79 | m_PVRDenoiserTypeDirect: 0 80 | m_PVRDenoiserTypeIndirect: 0 81 | m_PVRDenoiserTypeAO: 0 82 | m_PVRFilterTypeDirect: 0 83 | m_PVRFilterTypeIndirect: 0 84 | m_PVRFilterTypeAO: 0 85 | m_PVREnvironmentMIS: 0 86 | m_PVRCulling: 1 87 | m_PVRFilteringGaussRadiusDirect: 1 88 | m_PVRFilteringGaussRadiusIndirect: 5 89 | m_PVRFilteringGaussRadiusAO: 2 90 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 91 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 92 | m_PVRFilteringAtrousPositionSigmaAO: 1 93 | m_ExportTrainingData: 0 94 | m_TrainingDataDestination: TrainingData 95 | m_LightProbeSampleCountMultiplier: 4 96 | m_LightingDataAsset: {fileID: 0} 97 | m_LightingSettings: {fileID: 0} 98 | --- !u!196 &4 99 | NavMeshSettings: 100 | serializedVersion: 2 101 | m_ObjectHideFlags: 0 102 | m_BuildSettings: 103 | serializedVersion: 3 104 | agentTypeID: 0 105 | agentRadius: 0.5 106 | agentHeight: 2 107 | agentSlope: 45 108 | agentClimb: 0.4 109 | ledgeDropHeight: 0 110 | maxJumpAcrossDistance: 0 111 | minRegionArea: 2 112 | manualCellSize: 0 113 | cellSize: 0.16666667 114 | manualTileSize: 0 115 | tileSize: 256 116 | buildHeightMesh: 0 117 | maxJobWorkers: 0 118 | preserveTilesOutsideBounds: 0 119 | debug: 120 | m_Flags: 0 121 | m_NavMeshData: {fileID: 0} 122 | --- !u!1 &407789001 123 | GameObject: 124 | m_ObjectHideFlags: 0 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInstance: {fileID: 0} 127 | m_PrefabAsset: {fileID: 0} 128 | serializedVersion: 6 129 | m_Component: 130 | - component: {fileID: 407789002} 131 | - component: {fileID: 407789004} 132 | - component: {fileID: 407789003} 133 | m_Layer: 5 134 | m_Name: Rect 135 | m_TagString: Untagged 136 | m_Icon: {fileID: 0} 137 | m_NavMeshLayer: 0 138 | m_StaticEditorFlags: 0 139 | m_IsActive: 0 140 | --- !u!224 &407789002 141 | RectTransform: 142 | m_ObjectHideFlags: 0 143 | m_CorrespondingSourceObject: {fileID: 0} 144 | m_PrefabInstance: {fileID: 0} 145 | m_PrefabAsset: {fileID: 0} 146 | m_GameObject: {fileID: 407789001} 147 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 148 | m_LocalPosition: {x: 0, y: 0, z: 0} 149 | m_LocalScale: {x: 1, y: 1, z: 1} 150 | m_ConstrainProportionsScale: 0 151 | m_Children: [] 152 | m_Father: {fileID: 1170054213} 153 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 154 | m_AnchorMin: {x: 0.5, y: 0.5} 155 | m_AnchorMax: {x: 0.5, y: 0.5} 156 | m_AnchoredPosition: {x: 0, y: 0} 157 | m_SizeDelta: {x: 100, y: 100} 158 | m_Pivot: {x: 0.5, y: 0.5} 159 | --- !u!114 &407789003 160 | MonoBehaviour: 161 | m_ObjectHideFlags: 0 162 | m_CorrespondingSourceObject: {fileID: 0} 163 | m_PrefabInstance: {fileID: 0} 164 | m_PrefabAsset: {fileID: 0} 165 | m_GameObject: {fileID: 407789001} 166 | m_Enabled: 1 167 | m_EditorHideFlags: 0 168 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 169 | m_Name: 170 | m_EditorClassIdentifier: 171 | m_Material: {fileID: 0} 172 | m_Color: {r: 1, g: 0, b: 0, a: 0.3529412} 173 | m_RaycastTarget: 1 174 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 175 | m_Maskable: 1 176 | m_OnCullStateChanged: 177 | m_PersistentCalls: 178 | m_Calls: [] 179 | m_Sprite: {fileID: 0} 180 | m_Type: 0 181 | m_PreserveAspect: 0 182 | m_FillCenter: 1 183 | m_FillMethod: 4 184 | m_FillAmount: 1 185 | m_FillClockwise: 1 186 | m_FillOrigin: 0 187 | m_UseSpriteMesh: 0 188 | m_PixelsPerUnitMultiplier: 1 189 | --- !u!222 &407789004 190 | CanvasRenderer: 191 | m_ObjectHideFlags: 0 192 | m_CorrespondingSourceObject: {fileID: 0} 193 | m_PrefabInstance: {fileID: 0} 194 | m_PrefabAsset: {fileID: 0} 195 | m_GameObject: {fileID: 407789001} 196 | m_CullTransparentMesh: 1 197 | --- !u!1 &705507993 198 | GameObject: 199 | m_ObjectHideFlags: 0 200 | m_CorrespondingSourceObject: {fileID: 0} 201 | m_PrefabInstance: {fileID: 0} 202 | m_PrefabAsset: {fileID: 0} 203 | serializedVersion: 6 204 | m_Component: 205 | - component: {fileID: 705507995} 206 | - component: {fileID: 705507994} 207 | m_Layer: 0 208 | m_Name: Directional Light 209 | m_TagString: Untagged 210 | m_Icon: {fileID: 0} 211 | m_NavMeshLayer: 0 212 | m_StaticEditorFlags: 0 213 | m_IsActive: 1 214 | --- !u!108 &705507994 215 | Light: 216 | m_ObjectHideFlags: 0 217 | m_CorrespondingSourceObject: {fileID: 0} 218 | m_PrefabInstance: {fileID: 0} 219 | m_PrefabAsset: {fileID: 0} 220 | m_GameObject: {fileID: 705507993} 221 | m_Enabled: 1 222 | serializedVersion: 11 223 | m_Type: 1 224 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 225 | m_Intensity: 1 226 | m_Range: 10 227 | m_SpotAngle: 30 228 | m_InnerSpotAngle: 21.802082 229 | m_CookieSize: 10 230 | m_Shadows: 231 | m_Type: 2 232 | m_Resolution: -1 233 | m_CustomResolution: -1 234 | m_Strength: 1 235 | m_Bias: 0.05 236 | m_NormalBias: 0.4 237 | m_NearPlane: 0.2 238 | m_CullingMatrixOverride: 239 | e00: 1 240 | e01: 0 241 | e02: 0 242 | e03: 0 243 | e10: 0 244 | e11: 1 245 | e12: 0 246 | e13: 0 247 | e20: 0 248 | e21: 0 249 | e22: 1 250 | e23: 0 251 | e30: 0 252 | e31: 0 253 | e32: 0 254 | e33: 1 255 | m_UseCullingMatrixOverride: 0 256 | m_Cookie: {fileID: 0} 257 | m_DrawHalo: 0 258 | m_Flare: {fileID: 0} 259 | m_RenderMode: 0 260 | m_CullingMask: 261 | serializedVersion: 2 262 | m_Bits: 4294967295 263 | m_RenderingLayerMask: 1 264 | m_Lightmapping: 1 265 | m_LightShadowCasterMode: 0 266 | m_AreaSize: {x: 1, y: 1} 267 | m_BounceIntensity: 1 268 | m_ColorTemperature: 6570 269 | m_UseColorTemperature: 0 270 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 271 | m_UseBoundingSphereOverride: 0 272 | m_UseViewFrustumForShadowCasterCull: 1 273 | m_ForceVisible: 0 274 | m_ShadowRadius: 0 275 | m_ShadowAngle: 0 276 | m_LightUnit: 1 277 | m_LuxAtDistance: 1 278 | m_EnableSpotReflector: 1 279 | --- !u!4 &705507995 280 | Transform: 281 | m_ObjectHideFlags: 0 282 | m_CorrespondingSourceObject: {fileID: 0} 283 | m_PrefabInstance: {fileID: 0} 284 | m_PrefabAsset: {fileID: 0} 285 | m_GameObject: {fileID: 705507993} 286 | serializedVersion: 2 287 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 288 | m_LocalPosition: {x: 0, y: 3, z: 0} 289 | m_LocalScale: {x: 1, y: 1, z: 1} 290 | m_ConstrainProportionsScale: 0 291 | m_Children: [] 292 | m_Father: {fileID: 0} 293 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 294 | --- !u!1 &757436787 295 | GameObject: 296 | m_ObjectHideFlags: 0 297 | m_CorrespondingSourceObject: {fileID: 0} 298 | m_PrefabInstance: {fileID: 0} 299 | m_PrefabAsset: {fileID: 0} 300 | serializedVersion: 6 301 | m_Component: 302 | - component: {fileID: 757436788} 303 | - component: {fileID: 757436790} 304 | - component: {fileID: 757436789} 305 | - component: {fileID: 757436791} 306 | - component: {fileID: 757436793} 307 | - component: {fileID: 757436792} 308 | - component: {fileID: 757436794} 309 | m_Layer: 5 310 | m_Name: RawImage 311 | m_TagString: Untagged 312 | m_Icon: {fileID: 0} 313 | m_NavMeshLayer: 0 314 | m_StaticEditorFlags: 0 315 | m_IsActive: 1 316 | --- !u!224 &757436788 317 | RectTransform: 318 | m_ObjectHideFlags: 0 319 | m_CorrespondingSourceObject: {fileID: 0} 320 | m_PrefabInstance: {fileID: 0} 321 | m_PrefabAsset: {fileID: 0} 322 | m_GameObject: {fileID: 757436787} 323 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 324 | m_LocalPosition: {x: 0, y: 0, z: 0} 325 | m_LocalScale: {x: 1, y: 1, z: 1} 326 | m_ConstrainProportionsScale: 0 327 | m_Children: [] 328 | m_Father: {fileID: 1170054213} 329 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 330 | m_AnchorMin: {x: 0, y: 0} 331 | m_AnchorMax: {x: 0, y: 0} 332 | m_AnchoredPosition: {x: 0, y: 0} 333 | m_SizeDelta: {x: 0, y: 0} 334 | m_Pivot: {x: 0.5, y: 0.5} 335 | --- !u!114 &757436789 336 | MonoBehaviour: 337 | m_ObjectHideFlags: 0 338 | m_CorrespondingSourceObject: {fileID: 0} 339 | m_PrefabInstance: {fileID: 0} 340 | m_PrefabAsset: {fileID: 0} 341 | m_GameObject: {fileID: 757436787} 342 | m_Enabled: 1 343 | m_EditorHideFlags: 0 344 | m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} 345 | m_Name: 346 | m_EditorClassIdentifier: 347 | m_Material: {fileID: 0} 348 | m_Color: {r: 1, g: 1, b: 1, a: 1} 349 | m_RaycastTarget: 1 350 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 351 | m_Maskable: 1 352 | m_OnCullStateChanged: 353 | m_PersistentCalls: 354 | m_Calls: [] 355 | m_Texture: {fileID: 0} 356 | m_UVRect: 357 | serializedVersion: 2 358 | x: 0 359 | y: 0 360 | width: 1 361 | height: 1 362 | --- !u!222 &757436790 363 | CanvasRenderer: 364 | m_ObjectHideFlags: 0 365 | m_CorrespondingSourceObject: {fileID: 0} 366 | m_PrefabInstance: {fileID: 0} 367 | m_PrefabAsset: {fileID: 0} 368 | m_GameObject: {fileID: 757436787} 369 | m_CullTransparentMesh: 1 370 | --- !u!114 &757436791 371 | MonoBehaviour: 372 | m_ObjectHideFlags: 0 373 | m_CorrespondingSourceObject: {fileID: 0} 374 | m_PrefabInstance: {fileID: 0} 375 | m_PrefabAsset: {fileID: 0} 376 | m_GameObject: {fileID: 757436787} 377 | m_Enabled: 1 378 | m_EditorHideFlags: 0 379 | m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} 380 | m_Name: 381 | m_EditorClassIdentifier: 382 | m_AspectMode: 3 383 | m_AspectRatio: 1 384 | --- !u!114 &757436792 385 | MonoBehaviour: 386 | m_ObjectHideFlags: 0 387 | m_CorrespondingSourceObject: {fileID: 0} 388 | m_PrefabInstance: {fileID: 0} 389 | m_PrefabAsset: {fileID: 0} 390 | m_GameObject: {fileID: 757436787} 391 | m_Enabled: 1 392 | m_EditorHideFlags: 0 393 | m_Script: {fileID: 11500000, guid: dd87c1d78fd9f4083bdd6382bbbf5ff9, type: 3} 394 | m_Name: 395 | m_EditorClassIdentifier: 396 | bodyRect: {fileID: 407789003} 397 | keypoint: {fileID: 1085039466} 398 | --- !u!114 &757436793 399 | MonoBehaviour: 400 | m_ObjectHideFlags: 0 401 | m_CorrespondingSourceObject: {fileID: 0} 402 | m_PrefabInstance: {fileID: 0} 403 | m_PrefabAsset: {fileID: 0} 404 | m_GameObject: {fileID: 757436787} 405 | m_Enabled: 1 406 | m_EditorHideFlags: 0 407 | m_Script: {fileID: 11500000, guid: 145a5a333d6e14379ae91956c0b3373e, type: 3} 408 | m_Name: 409 | m_EditorClassIdentifier: 410 | cameraManager: {fileID: 1001128443} 411 | facing: -1 412 | viewMode: 0 413 | focusGesture: 0 414 | exposureGesture: 0 415 | zoomGesture: 0 416 | OnCameraFrame: 417 | m_PersistentCalls: 418 | m_Calls: [] 419 | --- !u!114 &757436794 420 | MonoBehaviour: 421 | m_ObjectHideFlags: 0 422 | m_CorrespondingSourceObject: {fileID: 0} 423 | m_PrefabInstance: {fileID: 0} 424 | m_PrefabAsset: {fileID: 0} 425 | m_GameObject: {fileID: 757436787} 426 | m_Enabled: 1 427 | m_EditorHideFlags: 0 428 | m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} 429 | m_Name: 430 | m_EditorClassIdentifier: 431 | m_Delegates: [] 432 | --- !u!1 &963194225 433 | GameObject: 434 | m_ObjectHideFlags: 0 435 | m_CorrespondingSourceObject: {fileID: 0} 436 | m_PrefabInstance: {fileID: 0} 437 | m_PrefabAsset: {fileID: 0} 438 | serializedVersion: 6 439 | m_Component: 440 | - component: {fileID: 963194228} 441 | - component: {fileID: 963194227} 442 | - component: {fileID: 963194226} 443 | m_Layer: 0 444 | m_Name: Main Camera 445 | m_TagString: MainCamera 446 | m_Icon: {fileID: 0} 447 | m_NavMeshLayer: 0 448 | m_StaticEditorFlags: 0 449 | m_IsActive: 1 450 | --- !u!81 &963194226 451 | AudioListener: 452 | m_ObjectHideFlags: 0 453 | m_CorrespondingSourceObject: {fileID: 0} 454 | m_PrefabInstance: {fileID: 0} 455 | m_PrefabAsset: {fileID: 0} 456 | m_GameObject: {fileID: 963194225} 457 | m_Enabled: 1 458 | --- !u!20 &963194227 459 | Camera: 460 | m_ObjectHideFlags: 0 461 | m_CorrespondingSourceObject: {fileID: 0} 462 | m_PrefabInstance: {fileID: 0} 463 | m_PrefabAsset: {fileID: 0} 464 | m_GameObject: {fileID: 963194225} 465 | m_Enabled: 1 466 | serializedVersion: 2 467 | m_ClearFlags: 1 468 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 469 | m_projectionMatrixMode: 1 470 | m_GateFitMode: 2 471 | m_FOVAxisMode: 0 472 | m_Iso: 200 473 | m_ShutterSpeed: 0.005 474 | m_Aperture: 16 475 | m_FocusDistance: 10 476 | m_FocalLength: 50 477 | m_BladeCount: 5 478 | m_Curvature: {x: 2, y: 11} 479 | m_BarrelClipping: 0.25 480 | m_Anamorphism: 0 481 | m_SensorSize: {x: 36, y: 24} 482 | m_LensShift: {x: 0, y: 0} 483 | m_NormalizedViewPortRect: 484 | serializedVersion: 2 485 | x: 0 486 | y: 0 487 | width: 1 488 | height: 1 489 | near clip plane: 0.3 490 | far clip plane: 1000 491 | field of view: 60 492 | orthographic: 0 493 | orthographic size: 5 494 | m_Depth: -1 495 | m_CullingMask: 496 | serializedVersion: 2 497 | m_Bits: 4294967295 498 | m_RenderingPath: -1 499 | m_TargetTexture: {fileID: 0} 500 | m_TargetDisplay: 0 501 | m_TargetEye: 3 502 | m_HDR: 1 503 | m_AllowMSAA: 1 504 | m_AllowDynamicResolution: 0 505 | m_ForceIntoRT: 0 506 | m_OcclusionCulling: 1 507 | m_StereoConvergence: 10 508 | m_StereoSeparation: 0.022 509 | --- !u!4 &963194228 510 | Transform: 511 | m_ObjectHideFlags: 0 512 | m_CorrespondingSourceObject: {fileID: 0} 513 | m_PrefabInstance: {fileID: 0} 514 | m_PrefabAsset: {fileID: 0} 515 | m_GameObject: {fileID: 963194225} 516 | serializedVersion: 2 517 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 518 | m_LocalPosition: {x: 0, y: 1, z: -10} 519 | m_LocalScale: {x: 1, y: 1, z: 1} 520 | m_ConstrainProportionsScale: 0 521 | m_Children: [] 522 | m_Father: {fileID: 0} 523 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 524 | --- !u!1 &1001128439 525 | GameObject: 526 | m_ObjectHideFlags: 0 527 | m_CorrespondingSourceObject: {fileID: 0} 528 | m_PrefabInstance: {fileID: 0} 529 | m_PrefabAsset: {fileID: 0} 530 | serializedVersion: 6 531 | m_Component: 532 | - component: {fileID: 1001128441} 533 | - component: {fileID: 1001128442} 534 | - component: {fileID: 1001128443} 535 | m_Layer: 0 536 | m_Name: MoveNetMultiposeSample 537 | m_TagString: Untagged 538 | m_Icon: {fileID: 0} 539 | m_NavMeshLayer: 0 540 | m_StaticEditorFlags: 0 541 | m_IsActive: 1 542 | --- !u!4 &1001128441 543 | Transform: 544 | m_ObjectHideFlags: 0 545 | m_CorrespondingSourceObject: {fileID: 0} 546 | m_PrefabInstance: {fileID: 0} 547 | m_PrefabAsset: {fileID: 0} 548 | m_GameObject: {fileID: 1001128439} 549 | serializedVersion: 2 550 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 551 | m_LocalPosition: {x: 0, y: 0, z: 0} 552 | m_LocalScale: {x: 1, y: 1, z: 1} 553 | m_ConstrainProportionsScale: 0 554 | m_Children: [] 555 | m_Father: {fileID: 0} 556 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 557 | --- !u!114 &1001128442 558 | MonoBehaviour: 559 | m_ObjectHideFlags: 0 560 | m_CorrespondingSourceObject: {fileID: 0} 561 | m_PrefabInstance: {fileID: 0} 562 | m_PrefabAsset: {fileID: 0} 563 | m_GameObject: {fileID: 1001128439} 564 | m_Enabled: 1 565 | m_EditorHideFlags: 0 566 | m_Script: {fileID: 11500000, guid: 5e76b2140702f40fc95129d6a585c9c9, type: 3} 567 | m_Name: 568 | m_EditorClassIdentifier: 569 | cameraManager: {fileID: 1001128443} 570 | cameraView: {fileID: 757436793} 571 | image: {fileID: 2800000, guid: 8af0012b5fac44e02acefedc19a16770, type: 3} 572 | realtime: 0 573 | visualizer: {fileID: 757436792} 574 | --- !u!114 &1001128443 575 | MonoBehaviour: 576 | m_ObjectHideFlags: 0 577 | m_CorrespondingSourceObject: {fileID: 0} 578 | m_PrefabInstance: {fileID: 0} 579 | m_PrefabAsset: {fileID: 0} 580 | m_GameObject: {fileID: 1001128439} 581 | m_Enabled: 1 582 | m_EditorHideFlags: 0 583 | m_Script: {fileID: 11500000, guid: 98622613d505143a9a06b4b11b0a82cf, type: 3} 584 | m_Name: 585 | m_EditorClassIdentifier: 586 | capabilities: 0 587 | playOnAwake: 0 588 | _facing: 0 589 | facingRequired: 0 590 | resolution: 3 591 | frameRate: 30 592 | focusMode: 0 593 | exposureMode: 0 594 | --- !u!1 &1085039465 595 | GameObject: 596 | m_ObjectHideFlags: 0 597 | m_CorrespondingSourceObject: {fileID: 0} 598 | m_PrefabInstance: {fileID: 0} 599 | m_PrefabAsset: {fileID: 0} 600 | serializedVersion: 6 601 | m_Component: 602 | - component: {fileID: 1085039466} 603 | - component: {fileID: 1085039468} 604 | - component: {fileID: 1085039467} 605 | m_Layer: 5 606 | m_Name: Keypoint 607 | m_TagString: Untagged 608 | m_Icon: {fileID: 0} 609 | m_NavMeshLayer: 0 610 | m_StaticEditorFlags: 0 611 | m_IsActive: 0 612 | --- !u!224 &1085039466 613 | RectTransform: 614 | m_ObjectHideFlags: 0 615 | m_CorrespondingSourceObject: {fileID: 0} 616 | m_PrefabInstance: {fileID: 0} 617 | m_PrefabAsset: {fileID: 0} 618 | m_GameObject: {fileID: 1085039465} 619 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 620 | m_LocalPosition: {x: 0, y: 0, z: 0} 621 | m_LocalScale: {x: 1, y: 1, z: 1} 622 | m_ConstrainProportionsScale: 0 623 | m_Children: [] 624 | m_Father: {fileID: 1170054213} 625 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 626 | m_AnchorMin: {x: 0.5, y: 0.5} 627 | m_AnchorMax: {x: 0.5, y: 0.5} 628 | m_AnchoredPosition: {x: 0, y: 0} 629 | m_SizeDelta: {x: 58.9316, y: 58.9316} 630 | m_Pivot: {x: 0.5, y: 0.5} 631 | --- !u!114 &1085039467 632 | MonoBehaviour: 633 | m_ObjectHideFlags: 0 634 | m_CorrespondingSourceObject: {fileID: 0} 635 | m_PrefabInstance: {fileID: 0} 636 | m_PrefabAsset: {fileID: 0} 637 | m_GameObject: {fileID: 1085039465} 638 | m_Enabled: 1 639 | m_EditorHideFlags: 0 640 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 641 | m_Name: 642 | m_EditorClassIdentifier: 643 | m_Material: {fileID: 0} 644 | m_Color: {r: 0.013602972, g: 1, b: 0, a: 0.8235294} 645 | m_RaycastTarget: 1 646 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 647 | m_Maskable: 1 648 | m_OnCullStateChanged: 649 | m_PersistentCalls: 650 | m_Calls: [] 651 | m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} 652 | m_Type: 0 653 | m_PreserveAspect: 0 654 | m_FillCenter: 1 655 | m_FillMethod: 4 656 | m_FillAmount: 1 657 | m_FillClockwise: 1 658 | m_FillOrigin: 0 659 | m_UseSpriteMesh: 0 660 | m_PixelsPerUnitMultiplier: 1 661 | --- !u!222 &1085039468 662 | CanvasRenderer: 663 | m_ObjectHideFlags: 0 664 | m_CorrespondingSourceObject: {fileID: 0} 665 | m_PrefabInstance: {fileID: 0} 666 | m_PrefabAsset: {fileID: 0} 667 | m_GameObject: {fileID: 1085039465} 668 | m_CullTransparentMesh: 1 669 | --- !u!1 &1170054209 670 | GameObject: 671 | m_ObjectHideFlags: 0 672 | m_CorrespondingSourceObject: {fileID: 0} 673 | m_PrefabInstance: {fileID: 0} 674 | m_PrefabAsset: {fileID: 0} 675 | serializedVersion: 6 676 | m_Component: 677 | - component: {fileID: 1170054213} 678 | - component: {fileID: 1170054212} 679 | - component: {fileID: 1170054211} 680 | - component: {fileID: 1170054210} 681 | m_Layer: 5 682 | m_Name: Canvas 683 | m_TagString: Untagged 684 | m_Icon: {fileID: 0} 685 | m_NavMeshLayer: 0 686 | m_StaticEditorFlags: 0 687 | m_IsActive: 1 688 | --- !u!114 &1170054210 689 | MonoBehaviour: 690 | m_ObjectHideFlags: 0 691 | m_CorrespondingSourceObject: {fileID: 0} 692 | m_PrefabInstance: {fileID: 0} 693 | m_PrefabAsset: {fileID: 0} 694 | m_GameObject: {fileID: 1170054209} 695 | m_Enabled: 1 696 | m_EditorHideFlags: 0 697 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 698 | m_Name: 699 | m_EditorClassIdentifier: 700 | m_IgnoreReversedGraphics: 1 701 | m_BlockingObjects: 0 702 | m_BlockingMask: 703 | serializedVersion: 2 704 | m_Bits: 4294967295 705 | --- !u!114 &1170054211 706 | MonoBehaviour: 707 | m_ObjectHideFlags: 0 708 | m_CorrespondingSourceObject: {fileID: 0} 709 | m_PrefabInstance: {fileID: 0} 710 | m_PrefabAsset: {fileID: 0} 711 | m_GameObject: {fileID: 1170054209} 712 | m_Enabled: 1 713 | m_EditorHideFlags: 0 714 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 715 | m_Name: 716 | m_EditorClassIdentifier: 717 | m_UiScaleMode: 1 718 | m_ReferencePixelsPerUnit: 100 719 | m_ScaleFactor: 1 720 | m_ReferenceResolution: {x: 1080, y: 1920} 721 | m_ScreenMatchMode: 0 722 | m_MatchWidthOrHeight: 0 723 | m_PhysicalUnit: 3 724 | m_FallbackScreenDPI: 96 725 | m_DefaultSpriteDPI: 96 726 | m_DynamicPixelsPerUnit: 1 727 | m_PresetInfoIsWorld: 0 728 | --- !u!223 &1170054212 729 | Canvas: 730 | m_ObjectHideFlags: 0 731 | m_CorrespondingSourceObject: {fileID: 0} 732 | m_PrefabInstance: {fileID: 0} 733 | m_PrefabAsset: {fileID: 0} 734 | m_GameObject: {fileID: 1170054209} 735 | m_Enabled: 1 736 | serializedVersion: 3 737 | m_RenderMode: 0 738 | m_Camera: {fileID: 0} 739 | m_PlaneDistance: 100 740 | m_PixelPerfect: 0 741 | m_ReceivesEvents: 1 742 | m_OverrideSorting: 0 743 | m_OverridePixelPerfect: 0 744 | m_SortingBucketNormalizedSize: 0 745 | m_VertexColorAlwaysGammaSpace: 0 746 | m_AdditionalShaderChannelsFlag: 0 747 | m_UpdateRectTransformForStandalone: 0 748 | m_SortingLayerID: 0 749 | m_SortingOrder: 0 750 | m_TargetDisplay: 0 751 | --- !u!224 &1170054213 752 | RectTransform: 753 | m_ObjectHideFlags: 0 754 | m_CorrespondingSourceObject: {fileID: 0} 755 | m_PrefabInstance: {fileID: 0} 756 | m_PrefabAsset: {fileID: 0} 757 | m_GameObject: {fileID: 1170054209} 758 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 759 | m_LocalPosition: {x: 0, y: 0, z: 0} 760 | m_LocalScale: {x: 0, y: 0, z: 0} 761 | m_ConstrainProportionsScale: 0 762 | m_Children: 763 | - {fileID: 757436788} 764 | - {fileID: 407789002} 765 | - {fileID: 1085039466} 766 | m_Father: {fileID: 0} 767 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 768 | m_AnchorMin: {x: 0, y: 0} 769 | m_AnchorMax: {x: 0, y: 0} 770 | m_AnchoredPosition: {x: 0, y: 0} 771 | m_SizeDelta: {x: 0, y: 0} 772 | m_Pivot: {x: 0, y: 0} 773 | --- !u!1 &1739756378 774 | GameObject: 775 | m_ObjectHideFlags: 0 776 | m_CorrespondingSourceObject: {fileID: 0} 777 | m_PrefabInstance: {fileID: 0} 778 | m_PrefabAsset: {fileID: 0} 779 | serializedVersion: 6 780 | m_Component: 781 | - component: {fileID: 1739756381} 782 | - component: {fileID: 1739756380} 783 | - component: {fileID: 1739756379} 784 | m_Layer: 0 785 | m_Name: EventSystem 786 | m_TagString: Untagged 787 | m_Icon: {fileID: 0} 788 | m_NavMeshLayer: 0 789 | m_StaticEditorFlags: 0 790 | m_IsActive: 1 791 | --- !u!114 &1739756379 792 | MonoBehaviour: 793 | m_ObjectHideFlags: 0 794 | m_CorrespondingSourceObject: {fileID: 0} 795 | m_PrefabInstance: {fileID: 0} 796 | m_PrefabAsset: {fileID: 0} 797 | m_GameObject: {fileID: 1739756378} 798 | m_Enabled: 1 799 | m_EditorHideFlags: 0 800 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 801 | m_Name: 802 | m_EditorClassIdentifier: 803 | m_SendPointerHoverToParent: 1 804 | m_HorizontalAxis: Horizontal 805 | m_VerticalAxis: Vertical 806 | m_SubmitButton: Submit 807 | m_CancelButton: Cancel 808 | m_InputActionsPerSecond: 10 809 | m_RepeatDelay: 0.5 810 | m_ForceModuleActive: 0 811 | --- !u!114 &1739756380 812 | MonoBehaviour: 813 | m_ObjectHideFlags: 0 814 | m_CorrespondingSourceObject: {fileID: 0} 815 | m_PrefabInstance: {fileID: 0} 816 | m_PrefabAsset: {fileID: 0} 817 | m_GameObject: {fileID: 1739756378} 818 | m_Enabled: 1 819 | m_EditorHideFlags: 0 820 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 821 | m_Name: 822 | m_EditorClassIdentifier: 823 | m_FirstSelected: {fileID: 0} 824 | m_sendNavigationEvents: 1 825 | m_DragThreshold: 10 826 | --- !u!4 &1739756381 827 | Transform: 828 | m_ObjectHideFlags: 0 829 | m_CorrespondingSourceObject: {fileID: 0} 830 | m_PrefabInstance: {fileID: 0} 831 | m_PrefabAsset: {fileID: 0} 832 | m_GameObject: {fileID: 1739756378} 833 | serializedVersion: 2 834 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 835 | m_LocalPosition: {x: 0, y: 0, z: 0} 836 | m_LocalScale: {x: 1, y: 1, z: 1} 837 | m_ConstrainProportionsScale: 0 838 | m_Children: [] 839 | m_Father: {fileID: 0} 840 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 841 | --- !u!1660057539 &9223372036854775807 842 | SceneRoots: 843 | m_ObjectHideFlags: 0 844 | m_Roots: 845 | - {fileID: 963194228} 846 | - {fileID: 705507995} 847 | - {fileID: 1170054213} 848 | - {fileID: 1739756381} 849 | - {fileID: 1001128441} 850 | -------------------------------------------------------------------------------- /Assets/MoveNetMultiposeSample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc0d4010bbf28b4594072e72b8655ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/OneEuroFilter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * MoveNet Multipose 3 | * Copyright © 2023 NatML Inc. All Rights Reserved. 4 | */ 5 | 6 | using System.Diagnostics; 7 | using UnityEngine; 8 | 9 | /// 10 | /// Implementation of the 1€ filter. 11 | /// https://hal.inria.fr/hal-00670496/document 12 | /// 13 | internal sealed class OneEuroFilter { 14 | 15 | #region --Client API-- 16 | 17 | public OneEuroFilter (float cutoffFrequency = 0.5f, float beta = 3f, float derivativeCutoff = 1f) { 18 | this.cutoffFrequency = cutoffFrequency; 19 | this.beta = beta; 20 | this.derivativeCutoff = derivativeCutoff; 21 | this.watch = new Stopwatch(); 22 | } 23 | 24 | public float[] Filter (float[] x) { 25 | // Shortcut 26 | if (xPrev == null) { 27 | xPrev = x; 28 | dxPrev = new float[x.Length]; 29 | watch.Start(); 30 | tPrev = (float)watch.Elapsed.TotalSeconds; 31 | return x; 32 | } 33 | // Compute factors 34 | var t = (float)watch.Elapsed.TotalSeconds; 35 | var deltaTime = t - tPrev; 36 | var alphaD = ComputeAlpha(deltaTime, derivativeCutoff); 37 | for (var i = 0; i < x.Length; i++) { 38 | // Filter first derivative 39 | var dx = (x[i] - xPrev[i]) / deltaTime; 40 | dxPrev[i] = Mathf.Lerp(dxPrev[i], dx, alphaD); 41 | // Filter signal 42 | var cutoff = Mathf.Abs(dxPrev[i]) * beta + cutoffFrequency; 43 | var alpha = ComputeAlpha(deltaTime, cutoff); 44 | xPrev[i] = Mathf.Lerp(xPrev[i], x[i], alpha); 45 | } 46 | tPrev = t; 47 | return xPrev; 48 | } 49 | #endregion 50 | 51 | 52 | #region --Operations-- 53 | public readonly float cutoffFrequency; 54 | public readonly float beta; 55 | public readonly float derivativeCutoff; 56 | 57 | private readonly Stopwatch watch; 58 | private float[] xPrev, dxPrev; 59 | private float tPrev; 60 | 61 | private static float ComputeAlpha (float deltaTime, float cutoffFrequency) { 62 | var r = 2f * Mathf.PI * cutoffFrequency * deltaTime; 63 | return r / (r + 1f); 64 | } 65 | #endregion 66 | } -------------------------------------------------------------------------------- /Assets/OneEuroFilter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79ad9088fa02a4e229959a47e798bb2a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Pose.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using System; 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | using UnityEngine; 7 | 8 | /// 9 | /// See https://fxn.ai/@natml/movenet-multipose for the pose schema. 10 | /// 11 | public sealed class Pose { 12 | 13 | #region --Fields-- 14 | public float score; 15 | public Rect rect; 16 | public Vector3 nose; 17 | public Vector3 leftEye; 18 | public Vector3 rightEye; 19 | public Vector3 leftEar; 20 | public Vector3 rightEar; 21 | public Vector3 leftShoulder; 22 | public Vector3 rightShoulder; 23 | public Vector3 leftElbow; 24 | public Vector3 rightElbow; 25 | public Vector3 leftWrist; 26 | public Vector3 rightWrist; 27 | public Vector3 leftHip; 28 | public Vector3 rightHip; 29 | public Vector3 leftKnee; 30 | public Vector3 rightKnee; 31 | public Vector3 leftAnkle; 32 | public Vector3 rightAnkle; 33 | #endregion 34 | 35 | 36 | #region --Serializer-- 37 | /// 38 | /// The prediction function returns a JSON array, but we want to create fully-typed C# objects. 39 | /// To do so, we use a custom JsonSerializer that knows how to deserialize the JSON array into `Pose` objects. 40 | /// The serializer also helps us invert the Y coordinate of returned points, because in Unity +y foes from bottom to top. 41 | /// See https://fxn.ai/@natml/movenet-multipose for the pose schema. 42 | /// See https://www.newtonsoft.com/json/help/html/CustomJsonConverterGeneric.htm for creating custom converters. 43 | /// 44 | public static readonly JsonSerializer Serializer = CreateSerializer(); 45 | 46 | private static JsonSerializer CreateSerializer () { 47 | JsonSerializer serializer = new JsonSerializer(); 48 | serializer.Converters.Add(new Vector3Converter()); 49 | serializer.Converters.Add(new RectConverter()); 50 | return serializer; 51 | } 52 | #endregion 53 | 54 | 55 | #region --Converters-- 56 | 57 | public sealed class RectConverter : JsonConverter { 58 | 59 | public override bool CanConvert (Type objectType) => objectType == typeof(Rect); 60 | 61 | public override object ReadJson (JsonReader reader, Type _, object? existing, JsonSerializer __) { 62 | var obj = JObject.Load(reader); 63 | var width = obj["width"]!.ToObject(); 64 | var height = obj["height"]!.ToObject(); 65 | var x = obj["x"]!.ToObject(); 66 | var y = 1f - obj["y"]!.ToObject() - height; 67 | return new Rect(x, y, width, height); 68 | } 69 | 70 | public override void WriteJson (JsonWriter writer, object? value, JsonSerializer _) { 71 | var rect = (Rect)value!; 72 | var obj = new JObject { 73 | ["x"] = rect.x, 74 | ["y"] = rect.y, 75 | ["width"] = rect.width, 76 | ["height"] = rect.height 77 | }; 78 | obj.WriteTo(writer); 79 | } 80 | } 81 | 82 | public sealed class Vector3Converter : JsonConverter { 83 | 84 | public override bool CanConvert (Type objectType) => objectType == typeof(Vector3); 85 | 86 | public override object ReadJson (JsonReader reader, Type _, object? existing, JsonSerializer __) { 87 | var obj = JObject.Load(reader); 88 | return new Vector3( 89 | obj["x"]!.ToObject(), 90 | 1f - obj["y"]!.ToObject(), 91 | obj["score"]!.ToObject() 92 | ); 93 | } 94 | 95 | public override void WriteJson (JsonWriter writer, object? value, JsonSerializer _) { 96 | var vector = (Vector3)value!; 97 | var obj = new JObject { 98 | ["x"] = vector.x, 99 | ["y"] = vector.y, 100 | ["score"] = vector.z 101 | }; 102 | obj.WriteTo(writer); 103 | } 104 | } 105 | #endregion 106 | } -------------------------------------------------------------------------------- /Assets/Pose.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5005727f918c14f289b202ccd867b89c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/PoseVisualizer.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * MoveNet Multipose 3 | * Copyright © 2024 NatML Inc. All Rights Reserved. 4 | */ 5 | 6 | using System.Collections.Generic; 7 | using UnityEngine; 8 | using UnityEngine.UI; 9 | 10 | /// 11 | /// Pose visualizer. 12 | /// This visualizer uses visualizes the pose keypoints overlaid on a UI panel. 13 | /// 14 | [RequireComponent(typeof(RawImage), typeof(AspectRatioFitter))] 15 | public sealed class PoseVisualizer : MonoBehaviour { 16 | 17 | #region --Inspector-- 18 | public Image bodyRect; 19 | public RectTransform keypoint; 20 | #endregion 21 | 22 | 23 | #region --Client API-- 24 | /// 25 | /// Render detected poses. 26 | /// 27 | /// Body poses to render. 28 | public void Render (Texture texture, params Pose[] poses) { 29 | // Show texture 30 | var rawImage = GetComponent(); 31 | var aspectFitter = GetComponent(); 32 | rawImage.texture = texture; 33 | aspectFitter.aspectRatio = (float)texture.width / texture.height; 34 | // Delete current 35 | foreach (var rect in currentRects) 36 | GameObject.Destroy(rect.gameObject); 37 | foreach (var keypoint in currentKeypoints) 38 | GameObject.Destroy(keypoint.gameObject); 39 | currentRects.Clear(); 40 | currentKeypoints.Clear(); 41 | // Visualize 42 | foreach (var pose in poses) { 43 | // Render bounding rect 44 | var poseUI = Instantiate(bodyRect, transform); 45 | poseUI.gameObject.SetActive(true); 46 | VisualizeRect(pose, poseUI); 47 | currentRects.Add(poseUI); 48 | // Render keypoints 49 | foreach (var point in new [] { 50 | pose.nose, pose.leftEye, pose.rightEye, pose.leftEar, pose.rightEar, 51 | pose.leftShoulder, pose.rightShoulder, pose.leftElbow, pose.rightElbow, 52 | pose.leftWrist, pose.rightWrist, pose.leftHip, pose.rightHip, pose.leftKnee, 53 | pose.rightKnee, pose.leftAnkle, pose.rightAnkle 54 | }) { 55 | var keypointUI = Instantiate(keypoint, transform); 56 | keypointUI.gameObject.SetActive(true); 57 | VisualizeAnchor(point, keypointUI); 58 | currentKeypoints.Add(keypointUI); 59 | } 60 | } 61 | } 62 | #endregion 63 | 64 | 65 | #region --Operations-- 66 | private readonly List currentRects = new List(); 67 | private readonly List currentKeypoints = new List(); 68 | 69 | private void VisualizeRect (Pose pose, Image prefab) { 70 | var rectTransform = prefab.transform as RectTransform; 71 | var imageTransform = transform as RectTransform; 72 | rectTransform.anchorMin = 0.5f * Vector2.one; 73 | rectTransform.anchorMax = 0.5f * Vector2.one; 74 | rectTransform.pivot = Vector2.zero; 75 | rectTransform.sizeDelta = Vector2.Scale(imageTransform.rect.size, pose.rect.size); 76 | rectTransform.anchoredPosition = Rect.NormalizedToPoint(imageTransform.rect, pose.rect.position); 77 | } 78 | 79 | private void VisualizeAnchor (Vector2 point, RectTransform anchor) { 80 | var imageTransform = transform as RectTransform; 81 | anchor.anchorMin = 0.5f * Vector2.one; 82 | anchor.anchorMax = 0.5f * Vector2.one; 83 | anchor.pivot = 0.5f * Vector2.one; 84 | anchor.anchoredPosition = Rect.NormalizedToPoint(imageTransform.rect, point); 85 | } 86 | #endregion 87 | } -------------------------------------------------------------------------------- /Assets/PoseVisualizer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd87c1d78fd9f4083bdd6382bbbf5ff9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/runner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natmlx/movenet-multipose-unity/4cf8ec2ddee6e72206c4e2dfd8fb0ebf437bbb89/Assets/runner.jpg -------------------------------------------------------------------------------- /Assets/runner.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8af0012b5fac44e02acefedc19a16770 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 1 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: WebGL 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Standalone 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: iPhone 111 | maxTextureSize: 2048 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Android 124 | maxTextureSize: 2048 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | spriteSheet: 136 | serializedVersion: 2 137 | sprites: [] 138 | outline: [] 139 | physicsShape: [] 140 | bones: [] 141 | spriteID: 142 | internalID: 0 143 | vertices: [] 144 | indices: 145 | edges: [] 146 | weights: [] 147 | secondaryTextures: [] 148 | nameFileIdTable: {} 149 | mipmapLimitGroupName: 150 | pSDRemoveMatte: 0 151 | userData: 152 | assetBundleName: 153 | assetBundleVariant: 154 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "scopedRegistries": [ 3 | { 4 | "name": "VideoKit", 5 | "url": "https://registry.npmjs.com", 6 | "scopes": ["ai.videokit"] 7 | }, 8 | { 9 | "name": "Function", 10 | "url": "https://registry.npmjs.com", 11 | "scopes": ["ai.fxn"] 12 | } 13 | ], 14 | "dependencies": { 15 | "ai.fxn.fxn3d": "0.0.38", 16 | "ai.videokit.videokit": "0.0.23-alpha.17", 17 | "com.unity.feature.development": "1.0.2", 18 | "com.unity.ide.vscode": "1.2.5", 19 | "com.unity.toolchain.macos-x86_64-linux-x86_64": "2.0.10", 20 | "com.unity.ugui": "2.0.0", 21 | "com.unity.modules.audio": "1.0.0", 22 | "com.unity.modules.imageconversion": "1.0.0", 23 | "com.unity.modules.imgui": "1.0.0", 24 | "com.unity.modules.screencapture": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.unitywebrequest": "1.0.0", 28 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 29 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 30 | "com.unity.modules.unitywebrequestwww": "1.0.0" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "ai.fxn.fxn3d": { 4 | "version": "0.0.38", 5 | "depth": 0, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.nuget.newtonsoft-json": "3.2.1" 9 | }, 10 | "url": "https://registry.npmjs.com" 11 | }, 12 | "ai.videokit.videokit": { 13 | "version": "0.0.23-alpha.17", 14 | "depth": 0, 15 | "source": "registry", 16 | "dependencies": { 17 | "ai.fxn.fxn3d": "0.0.38" 18 | }, 19 | "url": "https://registry.npmjs.com" 20 | }, 21 | "com.unity.editorcoroutines": { 22 | "version": "1.0.0", 23 | "depth": 1, 24 | "source": "registry", 25 | "dependencies": {}, 26 | "url": "https://packages.unity.com" 27 | }, 28 | "com.unity.ext.nunit": { 29 | "version": "2.0.5", 30 | "depth": 2, 31 | "source": "registry", 32 | "dependencies": {}, 33 | "url": "https://packages.unity.com" 34 | }, 35 | "com.unity.feature.development": { 36 | "version": "1.0.2", 37 | "depth": 0, 38 | "source": "builtin", 39 | "dependencies": { 40 | "com.unity.ide.visualstudio": "2.0.22", 41 | "com.unity.ide.rider": "3.0.31", 42 | "com.unity.editorcoroutines": "1.0.0", 43 | "com.unity.performance.profile-analyzer": "1.2.2", 44 | "com.unity.test-framework": "1.4.5", 45 | "com.unity.testtools.codecoverage": "1.2.6" 46 | } 47 | }, 48 | "com.unity.ide.rider": { 49 | "version": "3.0.31", 50 | "depth": 1, 51 | "source": "registry", 52 | "dependencies": { 53 | "com.unity.ext.nunit": "1.0.6" 54 | }, 55 | "url": "https://packages.unity.com" 56 | }, 57 | "com.unity.ide.visualstudio": { 58 | "version": "2.0.22", 59 | "depth": 1, 60 | "source": "registry", 61 | "dependencies": { 62 | "com.unity.test-framework": "1.1.9" 63 | }, 64 | "url": "https://packages.unity.com" 65 | }, 66 | "com.unity.ide.vscode": { 67 | "version": "1.2.5", 68 | "depth": 0, 69 | "source": "registry", 70 | "dependencies": {}, 71 | "url": "https://packages.unity.com" 72 | }, 73 | "com.unity.nuget.newtonsoft-json": { 74 | "version": "3.2.1", 75 | "depth": 1, 76 | "source": "registry", 77 | "dependencies": {}, 78 | "url": "https://packages.unity.com" 79 | }, 80 | "com.unity.performance.profile-analyzer": { 81 | "version": "1.2.2", 82 | "depth": 1, 83 | "source": "registry", 84 | "dependencies": {}, 85 | "url": "https://packages.unity.com" 86 | }, 87 | "com.unity.settings-manager": { 88 | "version": "2.0.1", 89 | "depth": 2, 90 | "source": "registry", 91 | "dependencies": {}, 92 | "url": "https://packages.unity.com" 93 | }, 94 | "com.unity.sysroot": { 95 | "version": "2.0.10", 96 | "depth": 1, 97 | "source": "registry", 98 | "dependencies": {}, 99 | "url": "https://packages.unity.com" 100 | }, 101 | "com.unity.sysroot.linux-x86_64": { 102 | "version": "2.0.9", 103 | "depth": 1, 104 | "source": "registry", 105 | "dependencies": { 106 | "com.unity.sysroot": "2.0.10" 107 | }, 108 | "url": "https://packages.unity.com" 109 | }, 110 | "com.unity.test-framework": { 111 | "version": "1.4.5", 112 | "depth": 1, 113 | "source": "registry", 114 | "dependencies": { 115 | "com.unity.ext.nunit": "2.0.3", 116 | "com.unity.modules.imgui": "1.0.0", 117 | "com.unity.modules.jsonserialize": "1.0.0" 118 | }, 119 | "url": "https://packages.unity.com" 120 | }, 121 | "com.unity.testtools.codecoverage": { 122 | "version": "1.2.6", 123 | "depth": 1, 124 | "source": "registry", 125 | "dependencies": { 126 | "com.unity.test-framework": "1.0.16", 127 | "com.unity.settings-manager": "1.0.1" 128 | }, 129 | "url": "https://packages.unity.com" 130 | }, 131 | "com.unity.toolchain.macos-x86_64-linux-x86_64": { 132 | "version": "2.0.10", 133 | "depth": 0, 134 | "source": "registry", 135 | "dependencies": { 136 | "com.unity.sysroot": "2.0.10", 137 | "com.unity.sysroot.linux-x86_64": "2.0.9" 138 | }, 139 | "url": "https://packages.unity.com" 140 | }, 141 | "com.unity.ugui": { 142 | "version": "2.0.0", 143 | "depth": 0, 144 | "source": "builtin", 145 | "dependencies": { 146 | "com.unity.modules.ui": "1.0.0", 147 | "com.unity.modules.imgui": "1.0.0" 148 | } 149 | }, 150 | "com.unity.visualscripting": { 151 | "version": "1.9.5", 152 | "depth": 0, 153 | "source": "registry", 154 | "dependencies": { 155 | "com.unity.ugui": "1.0.0", 156 | "com.unity.modules.jsonserialize": "1.0.0" 157 | }, 158 | "url": "https://packages.unity.com" 159 | }, 160 | "com.unity.modules.assetbundle": { 161 | "version": "1.0.0", 162 | "depth": 1, 163 | "source": "builtin", 164 | "dependencies": {} 165 | }, 166 | "com.unity.modules.audio": { 167 | "version": "1.0.0", 168 | "depth": 0, 169 | "source": "builtin", 170 | "dependencies": {} 171 | }, 172 | "com.unity.modules.hierarchycore": { 173 | "version": "1.0.0", 174 | "depth": 1, 175 | "source": "builtin", 176 | "dependencies": {} 177 | }, 178 | "com.unity.modules.imageconversion": { 179 | "version": "1.0.0", 180 | "depth": 0, 181 | "source": "builtin", 182 | "dependencies": {} 183 | }, 184 | "com.unity.modules.imgui": { 185 | "version": "1.0.0", 186 | "depth": 0, 187 | "source": "builtin", 188 | "dependencies": {} 189 | }, 190 | "com.unity.modules.jsonserialize": { 191 | "version": "1.0.0", 192 | "depth": 1, 193 | "source": "builtin", 194 | "dependencies": {} 195 | }, 196 | "com.unity.modules.screencapture": { 197 | "version": "1.0.0", 198 | "depth": 0, 199 | "source": "builtin", 200 | "dependencies": { 201 | "com.unity.modules.imageconversion": "1.0.0" 202 | } 203 | }, 204 | "com.unity.modules.ui": { 205 | "version": "1.0.0", 206 | "depth": 0, 207 | "source": "builtin", 208 | "dependencies": {} 209 | }, 210 | "com.unity.modules.uielements": { 211 | "version": "1.0.0", 212 | "depth": 0, 213 | "source": "builtin", 214 | "dependencies": { 215 | "com.unity.modules.ui": "1.0.0", 216 | "com.unity.modules.imgui": "1.0.0", 217 | "com.unity.modules.jsonserialize": "1.0.0", 218 | "com.unity.modules.hierarchycore": "1.0.0" 219 | } 220 | }, 221 | "com.unity.modules.unitywebrequest": { 222 | "version": "1.0.0", 223 | "depth": 0, 224 | "source": "builtin", 225 | "dependencies": {} 226 | }, 227 | "com.unity.modules.unitywebrequestassetbundle": { 228 | "version": "1.0.0", 229 | "depth": 1, 230 | "source": "builtin", 231 | "dependencies": { 232 | "com.unity.modules.assetbundle": "1.0.0", 233 | "com.unity.modules.unitywebrequest": "1.0.0" 234 | } 235 | }, 236 | "com.unity.modules.unitywebrequestaudio": { 237 | "version": "1.0.0", 238 | "depth": 0, 239 | "source": "builtin", 240 | "dependencies": { 241 | "com.unity.modules.unitywebrequest": "1.0.0", 242 | "com.unity.modules.audio": "1.0.0" 243 | } 244 | }, 245 | "com.unity.modules.unitywebrequesttexture": { 246 | "version": "1.0.0", 247 | "depth": 0, 248 | "source": "builtin", 249 | "dependencies": { 250 | "com.unity.modules.unitywebrequest": "1.0.0", 251 | "com.unity.modules.imageconversion": "1.0.0" 252 | } 253 | }, 254 | "com.unity.modules.unitywebrequestwww": { 255 | "version": "1.0.0", 256 | "depth": 0, 257 | "source": "builtin", 258 | "dependencies": { 259 | "com.unity.modules.unitywebrequest": "1.0.0", 260 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 261 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 262 | "com.unity.modules.audio": "1.0.0", 263 | "com.unity.modules.assetbundle": "1.0.0", 264 | "com.unity.modules.imageconversion": "1.0.0" 265 | } 266 | } 267 | } 268 | } 269 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/MoveNetMultiposeSample.unity 10 | guid: 9fc0d4010bbf28b4594072e72b8655ab 11 | m_configObjects: 12 | ai.natml.hub.settings: {fileID: 11400000, guid: d607451838d784468865e20e15dfd303, type: 2} 13 | ai.natml.natdevice.settings: {fileID: 11400000, guid: 6e6d931c654d64784889edafb1aaabb1, type: 2} 14 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 31 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 0} 42 | m_TransparencySortMode: 0 43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 44 | m_DefaultRenderingPath: 1 45 | m_DefaultMobileRenderingPath: 1 46 | m_TierSettings: [] 47 | m_LightmapStripping: 0 48 | m_FogStripping: 0 49 | m_InstancingStripping: 0 50 | m_LightmapKeepPlain: 1 51 | m_LightmapKeepDirCombined: 1 52 | m_LightmapKeepDynamicPlain: 1 53 | m_LightmapKeepDynamicDirCombined: 1 54 | m_LightmapKeepShadowMask: 1 55 | m_LightmapKeepSubtractive: 1 56 | m_FogKeepLinear: 1 57 | m_FogKeepExp: 1 58 | m_FogKeepExp2: 1 59 | m_AlbedoSwatchInfos: [] 60 | m_LightsUseLinearIntensity: 0 61 | m_LightsUseColorTemperature: 0 62 | m_LogWhenShaderIsCompiled: 0 63 | m_AllowEnlightenSupportForUpgradedProject: 0 64 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 0 16 | m_AdvancedSettingsExpanded: 1 17 | m_ScopedRegistriesSettingsExpanded: 1 18 | m_SeeAllPackageVersions: 0 19 | m_DismissPreviewPackagesInUse: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.com 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_ConfigSource: 0 29 | - m_Id: scoped:project:VideoKit 30 | m_Name: VideoKit 31 | m_Url: https://registry.npmjs.com 32 | m_Scopes: 33 | - ai.videokit 34 | m_IsDefault: 0 35 | m_Capabilities: 0 36 | m_ConfigSource: 4 37 | - m_Id: scoped:project:Function 38 | m_Name: Function 39 | m_Url: https://registry.npmjs.com 40 | m_Scopes: 41 | - ai.fxn 42 | m_IsDefault: 0 43 | m_Capabilities: 0 44 | m_ConfigSource: 4 45 | m_UserSelectedRegistryName: VideoKit 46 | m_UserAddingNewScopedRegistry: 0 47 | m_RegistryInfoDraft: 48 | m_Modified: 0 49 | m_ErrorMessage: 50 | m_UserModificationsInstanceId: -838 51 | m_OriginalInstanceId: -842 52 | m_LoadAssets: 0 53 | -------------------------------------------------------------------------------- /ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "m_Dictionary": { 3 | "m_DictionaryValues": [] 4 | } 5 | } -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 28 7 | productGUID: 0c5a3c3defdb44dceb86216fcbcc8b79 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 0 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: NatML 16 | productName: MoveNet Multipose 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.0746262, g: 0.0746262, b: 0.122641504, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: 43 | - logo: {fileID: 21300000, guid: 0733e6937997f4b97be94e96d7a9651f, type: 3} 44 | duration: 2 45 | m_VirtualRealitySplashScreen: {fileID: 0} 46 | m_HolographicTrackingLossScreen: {fileID: 0} 47 | defaultScreenWidth: 1920 48 | defaultScreenHeight: 1080 49 | defaultScreenWidthWeb: 960 50 | defaultScreenHeightWeb: 600 51 | m_StereoRenderingPath: 0 52 | m_ActiveColorSpace: 0 53 | unsupportedMSAAFallback: 0 54 | m_SpriteBatchMaxVertexCount: 65535 55 | m_SpriteBatchVertexThreshold: 300 56 | m_MTRendering: 1 57 | mipStripping: 0 58 | numberOfMipsStripped: 0 59 | numberOfMipsStrippedPerMipmapLimitGroup: {} 60 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 61 | iosShowActivityIndicatorOnLoading: -1 62 | androidShowActivityIndicatorOnLoading: -1 63 | iosUseCustomAppBackgroundBehavior: 0 64 | allowedAutorotateToPortrait: 1 65 | allowedAutorotateToPortraitUpsideDown: 1 66 | allowedAutorotateToLandscapeRight: 1 67 | allowedAutorotateToLandscapeLeft: 1 68 | useOSAutorotation: 1 69 | use32BitDisplayBuffer: 1 70 | preserveFramebufferAlpha: 0 71 | disableDepthAndStencilBuffers: 0 72 | androidStartInFullscreen: 1 73 | androidRenderOutsideSafeArea: 1 74 | androidUseSwappy: 1 75 | androidBlitType: 0 76 | androidResizeableActivity: 0 77 | androidDefaultWindowWidth: 1920 78 | androidDefaultWindowHeight: 1080 79 | androidMinimumWindowWidth: 400 80 | androidMinimumWindowHeight: 300 81 | androidFullscreenMode: 1 82 | androidAutoRotationBehavior: 1 83 | androidPredictiveBackSupport: 0 84 | androidApplicationEntry: 1 85 | defaultIsNativeResolution: 1 86 | macRetinaSupport: 1 87 | runInBackground: 1 88 | muteOtherAudioSources: 0 89 | Prepare IOS For Recording: 0 90 | Force IOS Speakers When Recording: 0 91 | deferSystemGesturesMode: 0 92 | hideHomeButton: 0 93 | submitAnalytics: 1 94 | usePlayerLog: 1 95 | dedicatedServerOptimizations: 0 96 | bakeCollisionMeshes: 0 97 | forceSingleInstance: 0 98 | useFlipModelSwapchain: 1 99 | resizableWindow: 0 100 | useMacAppStoreValidation: 0 101 | macAppStoreCategory: public.app-category.games 102 | gpuSkinning: 1 103 | meshDeformation: 2 104 | xboxPIXTextureCapture: 0 105 | xboxEnableAvatar: 0 106 | xboxEnableKinect: 0 107 | xboxEnableKinectAutoTracking: 0 108 | xboxEnableFitness: 0 109 | visibleInBackground: 1 110 | allowFullscreenSwitch: 1 111 | fullscreenMode: 1 112 | xboxSpeechDB: 0 113 | xboxEnableHeadOrientation: 0 114 | xboxEnableGuest: 0 115 | xboxEnablePIXSampling: 0 116 | metalFramebufferOnly: 0 117 | xboxOneResolution: 0 118 | xboxOneSResolution: 0 119 | xboxOneXResolution: 3 120 | xboxOneMonoLoggingLevel: 0 121 | xboxOneLoggingLevel: 1 122 | xboxOneDisableEsram: 0 123 | xboxOneEnableTypeOptimization: 0 124 | xboxOnePresentImmediateThreshold: 0 125 | switchQueueCommandMemory: 0 126 | switchQueueControlMemory: 16384 127 | switchQueueComputeMemory: 262144 128 | switchNVNShaderPoolsGranularity: 33554432 129 | switchNVNDefaultPoolsGranularity: 16777216 130 | switchNVNOtherPoolsGranularity: 16777216 131 | switchGpuScratchPoolGranularity: 2097152 132 | switchAllowGpuScratchShrinking: 0 133 | switchNVNMaxPublicTextureIDCount: 0 134 | switchNVNMaxPublicSamplerIDCount: 0 135 | switchMaxWorkerMultiple: 8 136 | switchNVNGraphicsFirmwareMemory: 32 137 | vulkanNumSwapchainBuffers: 3 138 | vulkanEnableSetSRGBWrite: 0 139 | vulkanEnablePreTransform: 1 140 | vulkanEnableLateAcquireNextImage: 0 141 | vulkanEnableCommandBufferRecycling: 1 142 | loadStoreDebugModeEnabled: 0 143 | visionOSBundleVersion: 1.0 144 | tvOSBundleVersion: 1.0 145 | bundleVersion: 0.1 146 | preloadedAssets: 147 | - {fileID: 0} 148 | - {fileID: 0} 149 | metroInputSource: 0 150 | wsaTransparentSwapchain: 0 151 | m_HolographicPauseOnTrackingLoss: 1 152 | xboxOneDisableKinectGpuReservation: 1 153 | xboxOneEnable7thCore: 1 154 | vrSettings: 155 | enable360StereoCapture: 0 156 | isWsaHolographicRemotingEnabled: 0 157 | enableFrameTimingStats: 0 158 | enableOpenGLProfilerGPURecorders: 1 159 | allowHDRDisplaySupport: 0 160 | useHDRDisplay: 0 161 | hdrBitDepth: 0 162 | m_ColorGamuts: 00000000 163 | targetPixelDensity: 30 164 | resolutionScalingMode: 0 165 | resetResolutionOnWindowResize: 0 166 | androidSupportedAspectRatio: 1 167 | androidMaxAspectRatio: 2.1 168 | androidMinAspectRatio: 1 169 | applicationIdentifier: 170 | Android: app.natml.vision.movenetmultipose 171 | Standalone: com.DefaultCompany.MoveNet-Multipose 172 | iPhone: app.natml.movenet-multipose 173 | buildNumber: 174 | Standalone: 0 175 | VisionOS: 0 176 | iPhone: 0 177 | tvOS: 0 178 | overrideDefaultApplicationIdentifier: 1 179 | AndroidBundleVersionCode: 1 180 | AndroidMinSdkVersion: 24 181 | AndroidTargetSdkVersion: 0 182 | AndroidPreferredInstallLocation: 0 183 | aotOptions: 184 | stripEngineCode: 1 185 | iPhoneStrippingLevel: 0 186 | iPhoneScriptCallOptimization: 0 187 | ForceInternetPermission: 0 188 | ForceSDCardPermission: 0 189 | CreateWallpaper: 0 190 | androidSplitApplicationBinary: 0 191 | keepLoadedShadersAlive: 0 192 | StripUnusedMeshComponents: 1 193 | strictShaderVariantMatching: 0 194 | VertexChannelCompressionMask: 4054 195 | iPhoneSdkVersion: 988 196 | iOSSimulatorArchitecture: 0 197 | iOSTargetOSVersionString: 13.0 198 | tvOSSdkVersion: 0 199 | tvOSSimulatorArchitecture: 0 200 | tvOSRequireExtendedGameController: 0 201 | tvOSTargetOSVersionString: 13.0 202 | VisionOSSdkVersion: 0 203 | VisionOSTargetOSVersionString: 1.0 204 | uIPrerenderedIcon: 0 205 | uIRequiresPersistentWiFi: 0 206 | uIRequiresFullScreen: 1 207 | uIStatusBarHidden: 1 208 | uIExitOnSuspend: 0 209 | uIStatusBarStyle: 0 210 | appleTVSplashScreen: {fileID: 0} 211 | appleTVSplashScreen2x: {fileID: 0} 212 | tvOSSmallIconLayers: [] 213 | tvOSSmallIconLayers2x: [] 214 | tvOSLargeIconLayers: [] 215 | tvOSLargeIconLayers2x: [] 216 | tvOSTopShelfImageLayers: [] 217 | tvOSTopShelfImageLayers2x: [] 218 | tvOSTopShelfImageWideLayers: [] 219 | tvOSTopShelfImageWideLayers2x: [] 220 | iOSLaunchScreenType: 0 221 | iOSLaunchScreenPortrait: {fileID: 0} 222 | iOSLaunchScreenLandscape: {fileID: 0} 223 | iOSLaunchScreenBackgroundColor: 224 | serializedVersion: 2 225 | rgba: 0 226 | iOSLaunchScreenFillPct: 100 227 | iOSLaunchScreenSize: 100 228 | iOSLaunchScreeniPadType: 0 229 | iOSLaunchScreeniPadImage: {fileID: 0} 230 | iOSLaunchScreeniPadBackgroundColor: 231 | serializedVersion: 2 232 | rgba: 0 233 | iOSLaunchScreeniPadFillPct: 100 234 | iOSLaunchScreeniPadSize: 100 235 | iOSLaunchScreenCustomStoryboardPath: 236 | iOSLaunchScreeniPadCustomStoryboardPath: 237 | iOSDeviceRequirements: [] 238 | iOSURLSchemes: [] 239 | macOSURLSchemes: [] 240 | iOSBackgroundModes: 0 241 | iOSMetalForceHardShadows: 0 242 | metalEditorSupport: 1 243 | metalAPIValidation: 1 244 | metalCompileShaderBinary: 0 245 | iOSRenderExtraFrameOnPause: 0 246 | iosCopyPluginsCodeInsteadOfSymlink: 0 247 | appleDeveloperTeamID: 248 | iOSManualSigningProvisioningProfileID: 249 | tvOSManualSigningProvisioningProfileID: 250 | VisionOSManualSigningProvisioningProfileID: 251 | iOSManualSigningProvisioningProfileType: 0 252 | tvOSManualSigningProvisioningProfileType: 0 253 | VisionOSManualSigningProvisioningProfileType: 0 254 | appleEnableAutomaticSigning: 0 255 | iOSRequireARKit: 0 256 | iOSAutomaticallyDetectAndAddCapabilities: 1 257 | appleEnableProMotion: 0 258 | shaderPrecisionModel: 0 259 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 260 | templatePackageId: com.unity.template.3d@8.1.0 261 | templateDefaultScene: Assets/Scenes/SampleScene.unity 262 | useCustomMainManifest: 0 263 | useCustomLauncherManifest: 0 264 | useCustomMainGradleTemplate: 0 265 | useCustomLauncherGradleManifest: 0 266 | useCustomBaseGradleTemplate: 0 267 | useCustomGradlePropertiesTemplate: 0 268 | useCustomGradleSettingsTemplate: 0 269 | useCustomProguardFile: 0 270 | AndroidTargetArchitectures: 3 271 | AndroidSplashScreenScale: 0 272 | androidSplashScreen: {fileID: 0} 273 | AndroidKeystoreName: 274 | AndroidKeyaliasName: 275 | AndroidEnableArmv9SecurityFeatures: 0 276 | AndroidEnableArm64MTE: 0 277 | AndroidBuildApkPerCpuArchitecture: 0 278 | AndroidTVCompatibility: 0 279 | AndroidIsGame: 1 280 | AndroidEnableTango: 0 281 | androidEnableBanner: 1 282 | androidUseLowAccuracyLocation: 0 283 | androidUseCustomKeystore: 0 284 | m_AndroidBanners: 285 | - width: 320 286 | height: 180 287 | banner: {fileID: 0} 288 | androidGamepadSupportLevel: 0 289 | AndroidMinifyRelease: 0 290 | AndroidMinifyDebug: 0 291 | AndroidValidateAppBundleSize: 1 292 | AndroidAppBundleSizeToValidate: 150 293 | AndroidReportGooglePlayAppDependencies: 1 294 | androidSymbolsSizeThreshold: 800 295 | m_BuildTargetIcons: [] 296 | m_BuildTargetPlatformIcons: 297 | - m_BuildTarget: iPhone 298 | m_Icons: 299 | - m_Textures: [] 300 | m_Width: 180 301 | m_Height: 180 302 | m_Kind: 0 303 | m_SubKind: iPhone 304 | - m_Textures: [] 305 | m_Width: 120 306 | m_Height: 120 307 | m_Kind: 0 308 | m_SubKind: iPhone 309 | - m_Textures: [] 310 | m_Width: 167 311 | m_Height: 167 312 | m_Kind: 0 313 | m_SubKind: iPad 314 | - m_Textures: [] 315 | m_Width: 152 316 | m_Height: 152 317 | m_Kind: 0 318 | m_SubKind: iPad 319 | - m_Textures: [] 320 | m_Width: 76 321 | m_Height: 76 322 | m_Kind: 0 323 | m_SubKind: iPad 324 | - m_Textures: [] 325 | m_Width: 120 326 | m_Height: 120 327 | m_Kind: 3 328 | m_SubKind: iPhone 329 | - m_Textures: [] 330 | m_Width: 80 331 | m_Height: 80 332 | m_Kind: 3 333 | m_SubKind: iPhone 334 | - m_Textures: [] 335 | m_Width: 80 336 | m_Height: 80 337 | m_Kind: 3 338 | m_SubKind: iPad 339 | - m_Textures: [] 340 | m_Width: 40 341 | m_Height: 40 342 | m_Kind: 3 343 | m_SubKind: iPad 344 | - m_Textures: [] 345 | m_Width: 87 346 | m_Height: 87 347 | m_Kind: 1 348 | m_SubKind: iPhone 349 | - m_Textures: [] 350 | m_Width: 58 351 | m_Height: 58 352 | m_Kind: 1 353 | m_SubKind: iPhone 354 | - m_Textures: [] 355 | m_Width: 29 356 | m_Height: 29 357 | m_Kind: 1 358 | m_SubKind: iPhone 359 | - m_Textures: [] 360 | m_Width: 58 361 | m_Height: 58 362 | m_Kind: 1 363 | m_SubKind: iPad 364 | - m_Textures: [] 365 | m_Width: 29 366 | m_Height: 29 367 | m_Kind: 1 368 | m_SubKind: iPad 369 | - m_Textures: [] 370 | m_Width: 60 371 | m_Height: 60 372 | m_Kind: 2 373 | m_SubKind: iPhone 374 | - m_Textures: [] 375 | m_Width: 40 376 | m_Height: 40 377 | m_Kind: 2 378 | m_SubKind: iPhone 379 | - m_Textures: [] 380 | m_Width: 40 381 | m_Height: 40 382 | m_Kind: 2 383 | m_SubKind: iPad 384 | - m_Textures: [] 385 | m_Width: 20 386 | m_Height: 20 387 | m_Kind: 2 388 | m_SubKind: iPad 389 | - m_Textures: [] 390 | m_Width: 1024 391 | m_Height: 1024 392 | m_Kind: 4 393 | m_SubKind: App Store 394 | - m_BuildTarget: Android 395 | m_Icons: 396 | - m_Textures: [] 397 | m_Width: 432 398 | m_Height: 432 399 | m_Kind: 2 400 | m_SubKind: 401 | - m_Textures: [] 402 | m_Width: 324 403 | m_Height: 324 404 | m_Kind: 2 405 | m_SubKind: 406 | - m_Textures: [] 407 | m_Width: 216 408 | m_Height: 216 409 | m_Kind: 2 410 | m_SubKind: 411 | - m_Textures: [] 412 | m_Width: 162 413 | m_Height: 162 414 | m_Kind: 2 415 | m_SubKind: 416 | - m_Textures: [] 417 | m_Width: 108 418 | m_Height: 108 419 | m_Kind: 2 420 | m_SubKind: 421 | - m_Textures: [] 422 | m_Width: 81 423 | m_Height: 81 424 | m_Kind: 2 425 | m_SubKind: 426 | - m_Textures: [] 427 | m_Width: 192 428 | m_Height: 192 429 | m_Kind: 1 430 | m_SubKind: 431 | - m_Textures: [] 432 | m_Width: 144 433 | m_Height: 144 434 | m_Kind: 1 435 | m_SubKind: 436 | - m_Textures: [] 437 | m_Width: 96 438 | m_Height: 96 439 | m_Kind: 1 440 | m_SubKind: 441 | - m_Textures: [] 442 | m_Width: 72 443 | m_Height: 72 444 | m_Kind: 1 445 | m_SubKind: 446 | - m_Textures: [] 447 | m_Width: 48 448 | m_Height: 48 449 | m_Kind: 1 450 | m_SubKind: 451 | - m_Textures: [] 452 | m_Width: 36 453 | m_Height: 36 454 | m_Kind: 1 455 | m_SubKind: 456 | - m_Textures: [] 457 | m_Width: 192 458 | m_Height: 192 459 | m_Kind: 0 460 | m_SubKind: 461 | - m_Textures: [] 462 | m_Width: 144 463 | m_Height: 144 464 | m_Kind: 0 465 | m_SubKind: 466 | - m_Textures: [] 467 | m_Width: 96 468 | m_Height: 96 469 | m_Kind: 0 470 | m_SubKind: 471 | - m_Textures: [] 472 | m_Width: 72 473 | m_Height: 72 474 | m_Kind: 0 475 | m_SubKind: 476 | - m_Textures: [] 477 | m_Width: 48 478 | m_Height: 48 479 | m_Kind: 0 480 | m_SubKind: 481 | - m_Textures: [] 482 | m_Width: 36 483 | m_Height: 36 484 | m_Kind: 0 485 | m_SubKind: 486 | - m_BuildTarget: VisionOS 487 | m_Icons: 488 | - m_Textures: [] 489 | m_Width: 1024 490 | m_Height: 1024 491 | m_Kind: 0 492 | m_SubKind: 493 | m_BuildTargetBatching: 494 | - m_BuildTarget: Standalone 495 | m_StaticBatching: 1 496 | m_DynamicBatching: 0 497 | - m_BuildTarget: tvOS 498 | m_StaticBatching: 1 499 | m_DynamicBatching: 0 500 | - m_BuildTarget: Android 501 | m_StaticBatching: 1 502 | m_DynamicBatching: 0 503 | - m_BuildTarget: iPhone 504 | m_StaticBatching: 1 505 | m_DynamicBatching: 0 506 | - m_BuildTarget: WebGL 507 | m_StaticBatching: 0 508 | m_DynamicBatching: 0 509 | m_BuildTargetShaderSettings: [] 510 | m_BuildTargetGraphicsJobs: 511 | - m_BuildTarget: MacStandaloneSupport 512 | m_GraphicsJobs: 0 513 | - m_BuildTarget: Switch 514 | m_GraphicsJobs: 1 515 | - m_BuildTarget: MetroSupport 516 | m_GraphicsJobs: 1 517 | - m_BuildTarget: AppleTVSupport 518 | m_GraphicsJobs: 0 519 | - m_BuildTarget: BJMSupport 520 | m_GraphicsJobs: 1 521 | - m_BuildTarget: LinuxStandaloneSupport 522 | m_GraphicsJobs: 1 523 | - m_BuildTarget: PS4Player 524 | m_GraphicsJobs: 1 525 | - m_BuildTarget: iOSSupport 526 | m_GraphicsJobs: 0 527 | - m_BuildTarget: WindowsStandaloneSupport 528 | m_GraphicsJobs: 1 529 | - m_BuildTarget: XboxOnePlayer 530 | m_GraphicsJobs: 1 531 | - m_BuildTarget: LuminSupport 532 | m_GraphicsJobs: 0 533 | - m_BuildTarget: AndroidPlayer 534 | m_GraphicsJobs: 0 535 | - m_BuildTarget: WebGLSupport 536 | m_GraphicsJobs: 0 537 | m_BuildTargetGraphicsJobMode: 538 | - m_BuildTarget: PS4Player 539 | m_GraphicsJobMode: 0 540 | - m_BuildTarget: XboxOnePlayer 541 | m_GraphicsJobMode: 0 542 | m_BuildTargetGraphicsAPIs: 543 | - m_BuildTarget: AndroidPlayer 544 | m_APIs: 150000000b000000 545 | m_Automatic: 1 546 | - m_BuildTarget: iOSSupport 547 | m_APIs: 10000000 548 | m_Automatic: 1 549 | - m_BuildTarget: AppleTVSupport 550 | m_APIs: 10000000 551 | m_Automatic: 1 552 | - m_BuildTarget: WebGLSupport 553 | m_APIs: 0b000000 554 | m_Automatic: 1 555 | m_BuildTargetVRSettings: 556 | - m_BuildTarget: Standalone 557 | m_Enabled: 0 558 | m_Devices: 559 | - Oculus 560 | - OpenVR 561 | m_DefaultShaderChunkSizeInMB: 16 562 | m_DefaultShaderChunkCount: 0 563 | openGLRequireES31: 0 564 | openGLRequireES31AEP: 0 565 | openGLRequireES32: 0 566 | m_TemplateCustomTags: {} 567 | mobileMTRendering: 568 | Android: 1 569 | iPhone: 1 570 | tvOS: 1 571 | m_BuildTargetGroupLightmapEncodingQuality: 572 | - serializedVersion: 2 573 | m_BuildTarget: Android 574 | m_EncodingQuality: 1 575 | - serializedVersion: 2 576 | m_BuildTarget: iOS 577 | m_EncodingQuality: 1 578 | - serializedVersion: 2 579 | m_BuildTarget: tvOS 580 | m_EncodingQuality: 1 581 | m_BuildTargetGroupLightmapSettings: [] 582 | m_BuildTargetGroupLoadStoreDebugModeSettings: [] 583 | m_BuildTargetNormalMapEncoding: 584 | - m_BuildTarget: Android 585 | m_Encoding: 1 586 | - m_BuildTarget: iPhone 587 | m_Encoding: 1 588 | - m_BuildTarget: tvOS 589 | m_Encoding: 1 590 | m_BuildTargetDefaultTextureCompressionFormat: 591 | - serializedVersion: 3 592 | m_BuildTarget: Android 593 | m_Formats: 03000000 594 | playModeTestRunnerEnabled: 0 595 | runPlayModeTestAsEditModeTest: 0 596 | actionOnDotNetUnhandledException: 1 597 | editorGfxJobOverride: 1 598 | enableInternalProfiler: 0 599 | logObjCUncaughtExceptions: 1 600 | enableCrashReportAPI: 0 601 | cameraUsageDescription: Allow this app use the camera. 602 | locationUsageDescription: 603 | microphoneUsageDescription: 604 | bluetoothUsageDescription: 605 | macOSTargetOSVersion: 11.0 606 | switchNMETAOverride: 607 | switchNetLibKey: 608 | switchSocketMemoryPoolSize: 6144 609 | switchSocketAllocatorPoolSize: 128 610 | switchSocketConcurrencyLimit: 14 611 | switchScreenResolutionBehavior: 2 612 | switchUseCPUProfiler: 0 613 | switchEnableFileSystemTrace: 0 614 | switchLTOSetting: 0 615 | switchApplicationID: 0x01004b9000490000 616 | switchNSODependencies: 617 | switchCompilerFlags: 618 | switchTitleNames_0: 619 | switchTitleNames_1: 620 | switchTitleNames_2: 621 | switchTitleNames_3: 622 | switchTitleNames_4: 623 | switchTitleNames_5: 624 | switchTitleNames_6: 625 | switchTitleNames_7: 626 | switchTitleNames_8: 627 | switchTitleNames_9: 628 | switchTitleNames_10: 629 | switchTitleNames_11: 630 | switchTitleNames_12: 631 | switchTitleNames_13: 632 | switchTitleNames_14: 633 | switchTitleNames_15: 634 | switchPublisherNames_0: 635 | switchPublisherNames_1: 636 | switchPublisherNames_2: 637 | switchPublisherNames_3: 638 | switchPublisherNames_4: 639 | switchPublisherNames_5: 640 | switchPublisherNames_6: 641 | switchPublisherNames_7: 642 | switchPublisherNames_8: 643 | switchPublisherNames_9: 644 | switchPublisherNames_10: 645 | switchPublisherNames_11: 646 | switchPublisherNames_12: 647 | switchPublisherNames_13: 648 | switchPublisherNames_14: 649 | switchPublisherNames_15: 650 | switchIcons_0: {fileID: 0} 651 | switchIcons_1: {fileID: 0} 652 | switchIcons_2: {fileID: 0} 653 | switchIcons_3: {fileID: 0} 654 | switchIcons_4: {fileID: 0} 655 | switchIcons_5: {fileID: 0} 656 | switchIcons_6: {fileID: 0} 657 | switchIcons_7: {fileID: 0} 658 | switchIcons_8: {fileID: 0} 659 | switchIcons_9: {fileID: 0} 660 | switchIcons_10: {fileID: 0} 661 | switchIcons_11: {fileID: 0} 662 | switchIcons_12: {fileID: 0} 663 | switchIcons_13: {fileID: 0} 664 | switchIcons_14: {fileID: 0} 665 | switchIcons_15: {fileID: 0} 666 | switchSmallIcons_0: {fileID: 0} 667 | switchSmallIcons_1: {fileID: 0} 668 | switchSmallIcons_2: {fileID: 0} 669 | switchSmallIcons_3: {fileID: 0} 670 | switchSmallIcons_4: {fileID: 0} 671 | switchSmallIcons_5: {fileID: 0} 672 | switchSmallIcons_6: {fileID: 0} 673 | switchSmallIcons_7: {fileID: 0} 674 | switchSmallIcons_8: {fileID: 0} 675 | switchSmallIcons_9: {fileID: 0} 676 | switchSmallIcons_10: {fileID: 0} 677 | switchSmallIcons_11: {fileID: 0} 678 | switchSmallIcons_12: {fileID: 0} 679 | switchSmallIcons_13: {fileID: 0} 680 | switchSmallIcons_14: {fileID: 0} 681 | switchSmallIcons_15: {fileID: 0} 682 | switchManualHTML: 683 | switchAccessibleURLs: 684 | switchLegalInformation: 685 | switchMainThreadStackSize: 1048576 686 | switchPresenceGroupId: 687 | switchLogoHandling: 0 688 | switchReleaseVersion: 0 689 | switchDisplayVersion: 1.0.0 690 | switchStartupUserAccount: 0 691 | switchSupportedLanguagesMask: 0 692 | switchLogoType: 0 693 | switchApplicationErrorCodeCategory: 694 | switchUserAccountSaveDataSize: 0 695 | switchUserAccountSaveDataJournalSize: 0 696 | switchApplicationAttribute: 0 697 | switchCardSpecSize: -1 698 | switchCardSpecClock: -1 699 | switchRatingsMask: 0 700 | switchRatingsInt_0: 0 701 | switchRatingsInt_1: 0 702 | switchRatingsInt_2: 0 703 | switchRatingsInt_3: 0 704 | switchRatingsInt_4: 0 705 | switchRatingsInt_5: 0 706 | switchRatingsInt_6: 0 707 | switchRatingsInt_7: 0 708 | switchRatingsInt_8: 0 709 | switchRatingsInt_9: 0 710 | switchRatingsInt_10: 0 711 | switchRatingsInt_11: 0 712 | switchRatingsInt_12: 0 713 | switchLocalCommunicationIds_0: 714 | switchLocalCommunicationIds_1: 715 | switchLocalCommunicationIds_2: 716 | switchLocalCommunicationIds_3: 717 | switchLocalCommunicationIds_4: 718 | switchLocalCommunicationIds_5: 719 | switchLocalCommunicationIds_6: 720 | switchLocalCommunicationIds_7: 721 | switchParentalControl: 0 722 | switchAllowsScreenshot: 1 723 | switchAllowsVideoCapturing: 1 724 | switchAllowsRuntimeAddOnContentInstall: 0 725 | switchDataLossConfirmation: 0 726 | switchUserAccountLockEnabled: 0 727 | switchSystemResourceMemory: 16777216 728 | switchSupportedNpadStyles: 22 729 | switchNativeFsCacheSize: 32 730 | switchIsHoldTypeHorizontal: 0 731 | switchSupportedNpadCount: 8 732 | switchEnableTouchScreen: 1 733 | switchSocketConfigEnabled: 0 734 | switchTcpInitialSendBufferSize: 32 735 | switchTcpInitialReceiveBufferSize: 64 736 | switchTcpAutoSendBufferSizeMax: 256 737 | switchTcpAutoReceiveBufferSizeMax: 256 738 | switchUdpSendBufferSize: 9 739 | switchUdpReceiveBufferSize: 42 740 | switchSocketBufferEfficiency: 4 741 | switchSocketInitializeEnabled: 1 742 | switchNetworkInterfaceManagerInitializeEnabled: 1 743 | switchDisableHTCSPlayerConnection: 0 744 | switchUseNewStyleFilepaths: 0 745 | switchUseLegacyFmodPriorities: 0 746 | switchUseMicroSleepForYield: 1 747 | switchEnableRamDiskSupport: 0 748 | switchMicroSleepForYieldTime: 25 749 | switchRamDiskSpaceSize: 12 750 | switchUpgradedPlayerSettingsToNMETA: 0 751 | ps4NPAgeRating: 12 752 | ps4NPTitleSecret: 753 | ps4NPTrophyPackPath: 754 | ps4ParentalLevel: 11 755 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 756 | ps4Category: 0 757 | ps4MasterVersion: 01.00 758 | ps4AppVersion: 01.00 759 | ps4AppType: 0 760 | ps4ParamSfxPath: 761 | ps4VideoOutPixelFormat: 0 762 | ps4VideoOutInitialWidth: 1920 763 | ps4VideoOutBaseModeInitialWidth: 1920 764 | ps4VideoOutReprojectionRate: 60 765 | ps4PronunciationXMLPath: 766 | ps4PronunciationSIGPath: 767 | ps4BackgroundImagePath: 768 | ps4StartupImagePath: 769 | ps4StartupImagesFolder: 770 | ps4IconImagesFolder: 771 | ps4SaveDataImagePath: 772 | ps4SdkOverride: 773 | ps4BGMPath: 774 | ps4ShareFilePath: 775 | ps4ShareOverlayImagePath: 776 | ps4PrivacyGuardImagePath: 777 | ps4ExtraSceSysFile: 778 | ps4NPtitleDatPath: 779 | ps4RemotePlayKeyAssignment: -1 780 | ps4RemotePlayKeyMappingDir: 781 | ps4PlayTogetherPlayerCount: 0 782 | ps4EnterButtonAssignment: 1 783 | ps4ApplicationParam1: 0 784 | ps4ApplicationParam2: 0 785 | ps4ApplicationParam3: 0 786 | ps4ApplicationParam4: 0 787 | ps4DownloadDataSize: 0 788 | ps4GarlicHeapSize: 2048 789 | ps4ProGarlicHeapSize: 2560 790 | playerPrefsMaxSize: 32768 791 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 792 | ps4pnSessions: 1 793 | ps4pnPresence: 1 794 | ps4pnFriends: 1 795 | ps4pnGameCustomData: 1 796 | playerPrefsSupport: 0 797 | enableApplicationExit: 0 798 | resetTempFolder: 1 799 | restrictedAudioUsageRights: 0 800 | ps4UseResolutionFallback: 0 801 | ps4ReprojectionSupport: 0 802 | ps4UseAudio3dBackend: 0 803 | ps4UseLowGarlicFragmentationMode: 1 804 | ps4SocialScreenEnabled: 0 805 | ps4ScriptOptimizationLevel: 0 806 | ps4Audio3dVirtualSpeakerCount: 14 807 | ps4attribCpuUsage: 0 808 | ps4PatchPkgPath: 809 | ps4PatchLatestPkgPath: 810 | ps4PatchChangeinfoPath: 811 | ps4PatchDayOne: 0 812 | ps4attribUserManagement: 0 813 | ps4attribMoveSupport: 0 814 | ps4attrib3DSupport: 0 815 | ps4attribShareSupport: 0 816 | ps4attribExclusiveVR: 0 817 | ps4disableAutoHideSplash: 0 818 | ps4videoRecordingFeaturesUsed: 0 819 | ps4contentSearchFeaturesUsed: 0 820 | ps4CompatibilityPS5: 0 821 | ps4AllowPS5Detection: 0 822 | ps4GPU800MHz: 1 823 | ps4attribEyeToEyeDistanceSettingVR: 0 824 | ps4IncludedModules: [] 825 | ps4attribVROutputEnabled: 0 826 | monoEnv: 827 | splashScreenBackgroundSourceLandscape: {fileID: 0} 828 | splashScreenBackgroundSourcePortrait: {fileID: 0} 829 | blurSplashScreenBackground: 1 830 | spritePackerPolicy: 831 | webGLMemorySize: 16 832 | webGLExceptionSupport: 1 833 | webGLNameFilesAsHashes: 0 834 | webGLShowDiagnostics: 0 835 | webGLDataCaching: 1 836 | webGLDebugSymbols: 0 837 | webGLEmscriptenArgs: ' --bind ' 838 | webGLModulesDirectory: 839 | webGLTemplate: APPLICATION:Default 840 | webGLAnalyzeBuildSize: 0 841 | webGLUseEmbeddedResources: 0 842 | webGLCompressionFormat: 2 843 | webGLWasmArithmeticExceptions: 0 844 | webGLLinkerTarget: 1 845 | webGLThreadsSupport: 0 846 | webGLDecompressionFallback: 0 847 | webGLInitialMemorySize: 32 848 | webGLMaximumMemorySize: 2048 849 | webGLMemoryGrowthMode: 2 850 | webGLMemoryLinearGrowthStep: 16 851 | webGLMemoryGeometricGrowthStep: 0.2 852 | webGLMemoryGeometricGrowthCap: 96 853 | webGLEnableWebGPU: 0 854 | webGLPowerPreference: 2 855 | webGLWebAssemblyTable: 0 856 | webGLWebAssemblyBigInt: 0 857 | webGLCloseOnQuit: 0 858 | webWasm2023: 0 859 | scriptingDefineSymbols: {} 860 | additionalCompilerArguments: {} 861 | platformArchitecture: {} 862 | scriptingBackend: 863 | Android: 1 864 | il2cppCompilerConfiguration: {} 865 | il2cppCodeGeneration: {} 866 | il2cppStacktraceInformation: {} 867 | managedStrippingLevel: 868 | Android: 1 869 | EmbeddedLinux: 1 870 | GameCoreScarlett: 1 871 | GameCoreXboxOne: 1 872 | Nintendo Switch: 1 873 | PS4: 1 874 | PS5: 1 875 | QNX: 1 876 | Stadia: 1 877 | VisionOS: 1 878 | WebGL: 1 879 | Windows Store Apps: 1 880 | XboxOne: 1 881 | iPhone: 1 882 | tvOS: 1 883 | incrementalIl2cppBuild: {} 884 | suppressCommonWarnings: 1 885 | allowUnsafeCode: 0 886 | useDeterministicCompilation: 1 887 | additionalIl2CppArgs: 888 | scriptingRuntimeVersion: 1 889 | gcIncremental: 1 890 | gcWBarrierValidation: 0 891 | apiCompatibilityLevelPerPlatform: {} 892 | editorAssembliesCompatibilityLevel: 1 893 | m_RenderingPath: 1 894 | m_MobileRenderingPath: 1 895 | metroPackageName: Template_3D 896 | metroPackageVersion: 897 | metroCertificatePath: 898 | metroCertificatePassword: 899 | metroCertificateSubject: 900 | metroCertificateIssuer: 901 | metroCertificateNotAfter: 0000000000000000 902 | metroApplicationDescription: Template_3D 903 | wsaImages: {} 904 | metroTileShortName: 905 | metroTileShowName: 0 906 | metroMediumTileShowName: 0 907 | metroLargeTileShowName: 0 908 | metroWideTileShowName: 0 909 | metroSupportStreamingInstall: 0 910 | metroLastRequiredScene: 0 911 | metroDefaultTileSize: 1 912 | metroTileForegroundText: 2 913 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 914 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} 915 | metroSplashScreenUseBackgroundColor: 0 916 | syncCapabilities: 0 917 | platformCapabilities: {} 918 | metroTargetDeviceFamilies: {} 919 | metroFTAName: 920 | metroFTAFileTypes: [] 921 | metroProtocolName: 922 | vcxProjDefaultLanguage: 923 | XboxOneProductId: 924 | XboxOneUpdateKey: 925 | XboxOneSandboxId: 926 | XboxOneContentId: 927 | XboxOneTitleId: 928 | XboxOneSCId: 929 | XboxOneGameOsOverridePath: 930 | XboxOnePackagingOverridePath: 931 | XboxOneAppManifestOverridePath: 932 | XboxOneVersion: 1.0.0.0 933 | XboxOnePackageEncryption: 0 934 | XboxOnePackageUpdateGranularity: 2 935 | XboxOneDescription: 936 | XboxOneLanguage: 937 | - enus 938 | XboxOneCapability: [] 939 | XboxOneGameRating: {} 940 | XboxOneIsContentPackage: 0 941 | XboxOneEnhancedXboxCompatibilityMode: 0 942 | XboxOneEnableGPUVariability: 1 943 | XboxOneSockets: {} 944 | XboxOneSplashScreen: {fileID: 0} 945 | XboxOneAllowedProductIds: [] 946 | XboxOnePersistentLocalStorageSize: 0 947 | XboxOneXTitleMemory: 8 948 | XboxOneOverrideIdentityName: 949 | XboxOneOverrideIdentityPublisher: 950 | vrEditorSettings: {} 951 | cloudServicesEnabled: 952 | UNet: 1 953 | luminIcon: 954 | m_Name: 955 | m_ModelFolderPath: 956 | m_PortalFolderPath: 957 | luminCert: 958 | m_CertPath: 959 | m_SignPackage: 1 960 | luminIsChannelApp: 0 961 | luminVersion: 962 | m_VersionCode: 1 963 | m_VersionName: 964 | hmiPlayerDataPath: 965 | hmiForceSRGBBlit: 1 966 | embeddedLinuxEnableGamepadInput: 1 967 | hmiCpuConfiguration: 968 | hmiLogStartupTiming: 0 969 | qnxGraphicConfPath: 970 | apiCompatibilityLevel: 6 971 | captureStartupLogs: {} 972 | activeInputHandler: 0 973 | windowsGamepadBackendHint: 0 974 | cloudProjectId: 975 | framebufferDepthMemorylessMode: 0 976 | qualitySettingsNames: [] 977 | projectName: 978 | organizationId: 979 | cloudEnabled: 0 980 | legacyClampBlendShapeWeights: 0 981 | hmiLoadingImage: {fileID: 0} 982 | platformRequiresReadableAssets: 0 983 | virtualTexturingSupportEnabled: 0 984 | insecureHttpOption: 0 985 | androidVulkanDenyFilterList: [] 986 | androidVulkanAllowFilterList: [] 987 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 6000.0.28f1 2 | m_EditorVersionWithRevision: 6000.0.28f1 (f336aca0cab5) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 3 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | globalTextureMipmapLimit: 1 23 | textureMipmapLimitSettings: [] 24 | anisotropicTextures: 0 25 | antiAliasing: 0 26 | softParticles: 0 27 | softVegetation: 0 28 | realtimeReflectionProbes: 0 29 | billboardsFaceCameraPosition: 0 30 | useLegacyDetailDistribution: 1 31 | vSyncCount: 0 32 | realtimeGICPUUsage: 25 33 | lodBias: 0.3 34 | maximumLODLevel: 0 35 | enableLODCrossFade: 1 36 | streamingMipmapsActive: 0 37 | streamingMipmapsAddAllCameras: 1 38 | streamingMipmapsMemoryBudget: 512 39 | streamingMipmapsRenderersPerFrame: 512 40 | streamingMipmapsMaxLevelReduction: 2 41 | streamingMipmapsMaxFileIORequests: 1024 42 | particleRaycastBudget: 4 43 | asyncUploadTimeSlice: 2 44 | asyncUploadBufferSize: 16 45 | asyncUploadPersistentBuffer: 1 46 | resolutionScalingFixedDPIFactor: 1 47 | customRenderPipeline: {fileID: 0} 48 | terrainQualityOverrides: 0 49 | terrainPixelError: 1 50 | terrainDetailDensityScale: 1 51 | terrainBasemapDistance: 1000 52 | terrainDetailDistance: 80 53 | terrainTreeDistance: 5000 54 | terrainBillboardStart: 50 55 | terrainFadeLength: 5 56 | terrainMaxTrees: 50 57 | excludedTargetPlatforms: [] 58 | - serializedVersion: 3 59 | name: Low 60 | pixelLightCount: 0 61 | shadows: 0 62 | shadowResolution: 0 63 | shadowProjection: 1 64 | shadowCascades: 1 65 | shadowDistance: 20 66 | shadowNearPlaneOffset: 3 67 | shadowCascade2Split: 0.33333334 68 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 69 | shadowmaskMode: 0 70 | skinWeights: 2 71 | globalTextureMipmapLimit: 0 72 | textureMipmapLimitSettings: [] 73 | anisotropicTextures: 0 74 | antiAliasing: 0 75 | softParticles: 0 76 | softVegetation: 0 77 | realtimeReflectionProbes: 0 78 | billboardsFaceCameraPosition: 0 79 | useLegacyDetailDistribution: 1 80 | vSyncCount: 0 81 | realtimeGICPUUsage: 25 82 | lodBias: 0.4 83 | maximumLODLevel: 0 84 | enableLODCrossFade: 1 85 | streamingMipmapsActive: 0 86 | streamingMipmapsAddAllCameras: 1 87 | streamingMipmapsMemoryBudget: 512 88 | streamingMipmapsRenderersPerFrame: 512 89 | streamingMipmapsMaxLevelReduction: 2 90 | streamingMipmapsMaxFileIORequests: 1024 91 | particleRaycastBudget: 16 92 | asyncUploadTimeSlice: 2 93 | asyncUploadBufferSize: 16 94 | asyncUploadPersistentBuffer: 1 95 | resolutionScalingFixedDPIFactor: 1 96 | customRenderPipeline: {fileID: 0} 97 | terrainQualityOverrides: 0 98 | terrainPixelError: 1 99 | terrainDetailDensityScale: 1 100 | terrainBasemapDistance: 1000 101 | terrainDetailDistance: 80 102 | terrainTreeDistance: 5000 103 | terrainBillboardStart: 50 104 | terrainFadeLength: 5 105 | terrainMaxTrees: 50 106 | excludedTargetPlatforms: [] 107 | - serializedVersion: 3 108 | name: Medium 109 | pixelLightCount: 1 110 | shadows: 1 111 | shadowResolution: 0 112 | shadowProjection: 1 113 | shadowCascades: 1 114 | shadowDistance: 20 115 | shadowNearPlaneOffset: 3 116 | shadowCascade2Split: 0.33333334 117 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 118 | shadowmaskMode: 0 119 | skinWeights: 2 120 | globalTextureMipmapLimit: 0 121 | textureMipmapLimitSettings: [] 122 | anisotropicTextures: 1 123 | antiAliasing: 0 124 | softParticles: 0 125 | softVegetation: 0 126 | realtimeReflectionProbes: 0 127 | billboardsFaceCameraPosition: 0 128 | useLegacyDetailDistribution: 1 129 | vSyncCount: 1 130 | realtimeGICPUUsage: 25 131 | lodBias: 0.7 132 | maximumLODLevel: 0 133 | enableLODCrossFade: 1 134 | streamingMipmapsActive: 0 135 | streamingMipmapsAddAllCameras: 1 136 | streamingMipmapsMemoryBudget: 512 137 | streamingMipmapsRenderersPerFrame: 512 138 | streamingMipmapsMaxLevelReduction: 2 139 | streamingMipmapsMaxFileIORequests: 1024 140 | particleRaycastBudget: 64 141 | asyncUploadTimeSlice: 2 142 | asyncUploadBufferSize: 16 143 | asyncUploadPersistentBuffer: 1 144 | resolutionScalingFixedDPIFactor: 1 145 | customRenderPipeline: {fileID: 0} 146 | terrainQualityOverrides: 0 147 | terrainPixelError: 1 148 | terrainDetailDensityScale: 1 149 | terrainBasemapDistance: 1000 150 | terrainDetailDistance: 80 151 | terrainTreeDistance: 5000 152 | terrainBillboardStart: 50 153 | terrainFadeLength: 5 154 | terrainMaxTrees: 50 155 | excludedTargetPlatforms: [] 156 | - serializedVersion: 3 157 | name: High 158 | pixelLightCount: 2 159 | shadows: 2 160 | shadowResolution: 1 161 | shadowProjection: 1 162 | shadowCascades: 2 163 | shadowDistance: 40 164 | shadowNearPlaneOffset: 3 165 | shadowCascade2Split: 0.33333334 166 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 167 | shadowmaskMode: 1 168 | skinWeights: 2 169 | globalTextureMipmapLimit: 0 170 | textureMipmapLimitSettings: [] 171 | anisotropicTextures: 1 172 | antiAliasing: 0 173 | softParticles: 0 174 | softVegetation: 1 175 | realtimeReflectionProbes: 1 176 | billboardsFaceCameraPosition: 1 177 | useLegacyDetailDistribution: 1 178 | vSyncCount: 1 179 | realtimeGICPUUsage: 50 180 | lodBias: 1 181 | maximumLODLevel: 0 182 | enableLODCrossFade: 1 183 | streamingMipmapsActive: 0 184 | streamingMipmapsAddAllCameras: 1 185 | streamingMipmapsMemoryBudget: 512 186 | streamingMipmapsRenderersPerFrame: 512 187 | streamingMipmapsMaxLevelReduction: 2 188 | streamingMipmapsMaxFileIORequests: 1024 189 | particleRaycastBudget: 256 190 | asyncUploadTimeSlice: 2 191 | asyncUploadBufferSize: 16 192 | asyncUploadPersistentBuffer: 1 193 | resolutionScalingFixedDPIFactor: 1 194 | customRenderPipeline: {fileID: 0} 195 | terrainQualityOverrides: 0 196 | terrainPixelError: 1 197 | terrainDetailDensityScale: 1 198 | terrainBasemapDistance: 1000 199 | terrainDetailDistance: 80 200 | terrainTreeDistance: 5000 201 | terrainBillboardStart: 50 202 | terrainFadeLength: 5 203 | terrainMaxTrees: 50 204 | excludedTargetPlatforms: [] 205 | - serializedVersion: 3 206 | name: Very High 207 | pixelLightCount: 3 208 | shadows: 2 209 | shadowResolution: 2 210 | shadowProjection: 1 211 | shadowCascades: 2 212 | shadowDistance: 70 213 | shadowNearPlaneOffset: 3 214 | shadowCascade2Split: 0.33333334 215 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 216 | shadowmaskMode: 1 217 | skinWeights: 4 218 | globalTextureMipmapLimit: 0 219 | textureMipmapLimitSettings: [] 220 | anisotropicTextures: 2 221 | antiAliasing: 2 222 | softParticles: 1 223 | softVegetation: 1 224 | realtimeReflectionProbes: 1 225 | billboardsFaceCameraPosition: 1 226 | useLegacyDetailDistribution: 1 227 | vSyncCount: 1 228 | realtimeGICPUUsage: 50 229 | lodBias: 1.5 230 | maximumLODLevel: 0 231 | enableLODCrossFade: 1 232 | streamingMipmapsActive: 0 233 | streamingMipmapsAddAllCameras: 1 234 | streamingMipmapsMemoryBudget: 512 235 | streamingMipmapsRenderersPerFrame: 512 236 | streamingMipmapsMaxLevelReduction: 2 237 | streamingMipmapsMaxFileIORequests: 1024 238 | particleRaycastBudget: 1024 239 | asyncUploadTimeSlice: 2 240 | asyncUploadBufferSize: 16 241 | asyncUploadPersistentBuffer: 1 242 | resolutionScalingFixedDPIFactor: 1 243 | customRenderPipeline: {fileID: 0} 244 | terrainQualityOverrides: 0 245 | terrainPixelError: 1 246 | terrainDetailDensityScale: 1 247 | terrainBasemapDistance: 1000 248 | terrainDetailDistance: 80 249 | terrainTreeDistance: 5000 250 | terrainBillboardStart: 50 251 | terrainFadeLength: 5 252 | terrainMaxTrees: 50 253 | excludedTargetPlatforms: [] 254 | - serializedVersion: 3 255 | name: Ultra 256 | pixelLightCount: 4 257 | shadows: 2 258 | shadowResolution: 2 259 | shadowProjection: 1 260 | shadowCascades: 4 261 | shadowDistance: 150 262 | shadowNearPlaneOffset: 3 263 | shadowCascade2Split: 0.33333334 264 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 265 | shadowmaskMode: 1 266 | skinWeights: 4 267 | globalTextureMipmapLimit: 0 268 | textureMipmapLimitSettings: [] 269 | anisotropicTextures: 2 270 | antiAliasing: 2 271 | softParticles: 1 272 | softVegetation: 1 273 | realtimeReflectionProbes: 1 274 | billboardsFaceCameraPosition: 1 275 | useLegacyDetailDistribution: 1 276 | vSyncCount: 1 277 | realtimeGICPUUsage: 100 278 | lodBias: 2 279 | maximumLODLevel: 0 280 | enableLODCrossFade: 1 281 | streamingMipmapsActive: 0 282 | streamingMipmapsAddAllCameras: 1 283 | streamingMipmapsMemoryBudget: 512 284 | streamingMipmapsRenderersPerFrame: 512 285 | streamingMipmapsMaxLevelReduction: 2 286 | streamingMipmapsMaxFileIORequests: 1024 287 | particleRaycastBudget: 4096 288 | asyncUploadTimeSlice: 2 289 | asyncUploadBufferSize: 16 290 | asyncUploadPersistentBuffer: 1 291 | resolutionScalingFixedDPIFactor: 1 292 | customRenderPipeline: {fileID: 0} 293 | terrainQualityOverrides: 0 294 | terrainPixelError: 1 295 | terrainDetailDensityScale: 1 296 | terrainBasemapDistance: 1000 297 | terrainDetailDistance: 80 298 | terrainTreeDistance: 5000 299 | terrainBillboardStart: 50 300 | terrainFadeLength: 5 301 | terrainMaxTrees: 50 302 | excludedTargetPlatforms: [] 303 | m_TextureMipmapLimitGroupNames: [] 304 | m_PerPlatformDefaultQuality: 305 | Android: 2 306 | Lumin: 5 307 | Nintendo 3DS: 5 308 | Nintendo Switch: 5 309 | PS4: 5 310 | PSP2: 2 311 | Server: 0 312 | Stadia: 5 313 | Standalone: 5 314 | VisionOS: 0 315 | WebGL: 3 316 | Windows Store Apps: 5 317 | XboxOne: 5 318 | iPhone: 2 319 | tvOS: 2 320 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "defaultInstantiationMode": 0 8 | }, 9 | { 10 | "userAdded": false, 11 | "type": "UnityEditor.Animations.AnimatorController", 12 | "defaultInstantiationMode": 0 13 | }, 14 | { 15 | "userAdded": false, 16 | "type": "UnityEngine.AnimatorOverrideController", 17 | "defaultInstantiationMode": 0 18 | }, 19 | { 20 | "userAdded": false, 21 | "type": "UnityEditor.Audio.AudioMixerController", 22 | "defaultInstantiationMode": 0 23 | }, 24 | { 25 | "userAdded": false, 26 | "type": "UnityEngine.ComputeShader", 27 | "defaultInstantiationMode": 1 28 | }, 29 | { 30 | "userAdded": false, 31 | "type": "UnityEngine.Cubemap", 32 | "defaultInstantiationMode": 0 33 | }, 34 | { 35 | "userAdded": false, 36 | "type": "UnityEngine.GameObject", 37 | "defaultInstantiationMode": 0 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEditor.LightingDataAsset", 42 | "defaultInstantiationMode": 0 43 | }, 44 | { 45 | "userAdded": false, 46 | "type": "UnityEngine.LightingSettings", 47 | "defaultInstantiationMode": 0 48 | }, 49 | { 50 | "userAdded": false, 51 | "type": "UnityEngine.Material", 52 | "defaultInstantiationMode": 0 53 | }, 54 | { 55 | "userAdded": false, 56 | "type": "UnityEditor.MonoScript", 57 | "defaultInstantiationMode": 1 58 | }, 59 | { 60 | "userAdded": false, 61 | "type": "UnityEngine.PhysicMaterial", 62 | "defaultInstantiationMode": 0 63 | }, 64 | { 65 | "userAdded": false, 66 | "type": "UnityEngine.PhysicsMaterial", 67 | "defaultInstantiationMode": 0 68 | }, 69 | { 70 | "userAdded": false, 71 | "type": "UnityEngine.PhysicsMaterial2D", 72 | "defaultInstantiationMode": 0 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 77 | "defaultInstantiationMode": 0 78 | }, 79 | { 80 | "userAdded": false, 81 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 82 | "defaultInstantiationMode": 0 83 | }, 84 | { 85 | "userAdded": false, 86 | "type": "UnityEngine.Rendering.VolumeProfile", 87 | "defaultInstantiationMode": 0 88 | }, 89 | { 90 | "userAdded": false, 91 | "type": "UnityEditor.SceneAsset", 92 | "defaultInstantiationMode": 0 93 | }, 94 | { 95 | "userAdded": false, 96 | "type": "UnityEngine.Shader", 97 | "defaultInstantiationMode": 1 98 | }, 99 | { 100 | "userAdded": false, 101 | "type": "UnityEngine.ShaderVariantCollection", 102 | "defaultInstantiationMode": 1 103 | }, 104 | { 105 | "userAdded": false, 106 | "type": "UnityEngine.Texture", 107 | "defaultInstantiationMode": 0 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Texture2D", 112 | "defaultInstantiationMode": 0 113 | }, 114 | { 115 | "userAdded": false, 116 | "type": "UnityEngine.Timeline.TimelineAsset", 117 | "defaultInstantiationMode": 0 118 | } 119 | ], 120 | "defaultDependencyTypeInfo": { 121 | "userAdded": false, 122 | "type": "", 123 | "defaultInstantiationMode": 1 124 | }, 125 | "newSceneOverride": 0 126 | } -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Hidden Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MoveNet Multipose 2 | [MoveNet](https://blog.tensorflow.org/2021/05/next-generation-pose-detection-with-movenet-and-tensorflowjs.html) multiple body pose detection from Google MediaPipe. 3 | 4 | ![demo](demo.gif) 5 | 6 | ## Predicting Poses in an Image 7 | [Install Function](https://docs.fxn.ai) in your Unity project then create a Function client: 8 | ```csharp 9 | using Function; 10 | using Newtonsoft.Json; 11 | using Newtonsoft.Json.Linq; 12 | 13 | // Create a Function client 14 | var fxn = FunctionUnity.Create(); 15 | ``` 16 | 17 | Then predict the poses in an image: 18 | ```csharp 19 | // Predict poses 20 | var prediction = await fxn.Predictions.Create( 21 | tag: "@natml/movenet-multipose", 22 | inputs: new () { ["image"] = image.ToImage() } 23 | ); 24 | var poseObjects = prediction.results[0] as JArray; 25 | ``` 26 | 27 | Finally, parse the detected poses with the `Pose` struct: 28 | ```csharp 29 | // Parse the detected poses 30 | Pose[] poses = poseObjects.ToObject(Pose.Serializer); 31 | ``` 32 | 33 | > [!NOTE] 34 | > [Check out the schema](https://fxn.ai/@natml/movenet-multipose) of the returned poses. 35 | 36 | ## Requirements 37 | - Unity 2022.3+ 38 | 39 | ## Supported Platforms 40 | - Android API level 24+ 41 | - iOS 14+ 42 | - macOS 12+ (Apple Silicon and Intel) 43 | - Windows 10+ (64-bit only) 44 | - WebGL: 45 | - Chrome 91+ 46 | - Firefox 90+ 47 | - Safari 16.4+ 48 | 49 | ## Resources 50 | - Join the [Function community on Discord](https://natml.ai/community). 51 | - See the [Function documentation](https://docs.fxn.ai). 52 | - Check out [Function on GitHub](https://github.com/fxnai). 53 | - Email support at [hi@fxn.ai](mailto:hi@fxn.ai). 54 | 55 | Thank you very much! -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | RecentlyUsedSceneGuid-0: 9 | value: 5a5757560101590a5d0c0e24427b5d44434e4c7a7b7a23677f2b4565b7b5353a 10 | flags: 0 11 | vcSharedLogLevel: 12 | value: 0d5e400f0650 13 | flags: 0 14 | m_VCAutomaticAdd: 1 15 | m_VCDebugCom: 0 16 | m_VCDebugCmd: 0 17 | m_VCDebugOut: 0 18 | m_SemanticMergeMode: 2 19 | m_DesiredImportWorkerCount: 2 20 | m_StandbyImportWorkerCount: 2 21 | m_IdleImportWorkerShutdownDelay: 60000 22 | m_VCShowFailedCheckout: 1 23 | m_VCOverwriteFailedCheckoutAssets: 1 24 | m_VCProjectOverlayIcons: 1 25 | m_VCHierarchyOverlayIcons: 1 26 | m_VCOtherOverlayIcons: 1 27 | m_VCAllowAsyncUpdate: 1 28 | m_ArtifactGarbageCollection: 1 29 | -------------------------------------------------------------------------------- /UserSettings/Layouts/CurrentMaximizeLayout.dwlt: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 52 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 1 12 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_Children: 16 | - {fileID: 3} 17 | - {fileID: 5} 18 | - {fileID: 7} 19 | - {fileID: 13} 20 | m_Position: 21 | serializedVersion: 2 22 | x: 0 23 | y: 36 24 | width: 1440 25 | height: 844 26 | m_MinSize: {x: 400, y: 100} 27 | m_MaxSize: {x: 32384, y: 16192} 28 | vertical: 0 29 | controlID: 117 30 | draggingID: 0 31 | --- !u!114 &2 32 | MonoBehaviour: 33 | m_ObjectHideFlags: 52 34 | m_CorrespondingSourceObject: {fileID: 0} 35 | m_PrefabInstance: {fileID: 0} 36 | m_PrefabAsset: {fileID: 0} 37 | m_GameObject: {fileID: 0} 38 | m_Enabled: 1 39 | m_EditorHideFlags: 0 40 | m_Script: {fileID: 13854, guid: 0000000000000000e000000000000000, type: 0} 41 | m_Name: 42 | m_EditorClassIdentifier: 43 | m_MinSize: {x: 310, y: 200} 44 | m_MaxSize: {x: 4000, y: 4000} 45 | m_TitleContent: 46 | m_Text: Project Settings 47 | m_Image: {fileID: 866346219090771560, guid: 0000000000000000d000000000000000, type: 0} 48 | m_Tooltip: 49 | m_TextWithWhitespace: "Project Settings\u200B" 50 | m_Pos: 51 | serializedVersion: 2 52 | x: 1114.5 53 | y: 36 54 | width: 324.5 55 | height: 818 56 | m_SerializedDataModeController: 57 | m_DataMode: 0 58 | m_PreferredDataMode: 0 59 | m_SupportedDataModes: 60 | isAutomatic: 1 61 | m_ViewDataDictionary: {fileID: 0} 62 | m_OverlayCanvas: 63 | m_LastAppliedPresetName: Default 64 | m_SaveData: [] 65 | m_ContainerData: [] 66 | m_OverlaysVisible: 1 67 | m_PosLeft: {x: 0, y: 0} 68 | m_PosRight: {x: 0, y: 0} 69 | m_Scope: 1 70 | m_SplitterFlex: 0.2 71 | m_SearchText: 72 | m_TreeViewState: 73 | scrollPos: {x: 0, y: 0} 74 | m_SelectedIDs: 98c6d09b 75 | m_LastClickedID: -1680816488 76 | m_ExpandedIDs: a01a5fa600000000e594f01a6ec88043 77 | m_RenameOverlay: 78 | m_UserAcceptedRename: 0 79 | m_Name: 80 | m_OriginalName: 81 | m_EditFieldRect: 82 | serializedVersion: 2 83 | x: 0 84 | y: 0 85 | width: 0 86 | height: 0 87 | m_UserData: 0 88 | m_IsWaitingForDelay: 0 89 | m_IsRenaming: 0 90 | m_OriginalEventType: 11 91 | m_IsRenamingFilename: 0 92 | m_TrimLeadingAndTrailingWhitespace: 0 93 | m_ClientGUIView: {fileID: 0} 94 | m_SearchString: 95 | --- !u!114 &3 96 | MonoBehaviour: 97 | m_ObjectHideFlags: 52 98 | m_CorrespondingSourceObject: {fileID: 0} 99 | m_PrefabInstance: {fileID: 0} 100 | m_PrefabAsset: {fileID: 0} 101 | m_GameObject: {fileID: 0} 102 | m_Enabled: 1 103 | m_EditorHideFlags: 0 104 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 105 | m_Name: SceneView 106 | m_EditorClassIdentifier: 107 | m_Children: [] 108 | m_Position: 109 | serializedVersion: 2 110 | x: 0 111 | y: 0 112 | width: 427.5 113 | height: 844 114 | m_MinSize: {x: 201, y: 226} 115 | m_MaxSize: {x: 4001, y: 4026} 116 | m_ActualView: {fileID: 4} 117 | m_Panes: 118 | - {fileID: 4} 119 | m_Selected: 0 120 | m_LastSelected: 0 121 | --- !u!114 &4 122 | MonoBehaviour: 123 | m_ObjectHideFlags: 52 124 | m_CorrespondingSourceObject: {fileID: 0} 125 | m_PrefabInstance: {fileID: 0} 126 | m_PrefabAsset: {fileID: 0} 127 | m_GameObject: {fileID: 0} 128 | m_Enabled: 1 129 | m_EditorHideFlags: 1 130 | m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} 131 | m_Name: 132 | m_EditorClassIdentifier: 133 | m_MinSize: {x: 200, y: 200} 134 | m_MaxSize: {x: 4000, y: 4000} 135 | m_TitleContent: 136 | m_Text: Scene 137 | m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0} 138 | m_Tooltip: 139 | m_TextWithWhitespace: "Scene\u200B" 140 | m_Pos: 141 | serializedVersion: 2 142 | x: 0 143 | y: 36 144 | width: 426.5 145 | height: 818 146 | m_SerializedDataModeController: 147 | m_DataMode: 0 148 | m_PreferredDataMode: 0 149 | m_SupportedDataModes: 150 | isAutomatic: 1 151 | m_ViewDataDictionary: {fileID: 0} 152 | m_OverlayCanvas: 153 | m_LastAppliedPresetName: Default 154 | m_SaveData: 155 | - dockPosition: 0 156 | containerId: overlay-toolbar__top 157 | displayed: 1 158 | id: Tool Settings 159 | index: 0 160 | contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":-24.0,"y":-24.0},"m_FloatingSnapCorner":3,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 161 | floating: 0 162 | collapsed: 0 163 | snapOffset: {x: 0, y: 0} 164 | snapOffsetDelta: {x: -24, y: -24} 165 | snapCorner: 3 166 | layout: 1 167 | size: {x: 0, y: 0} 168 | sizeOverridden: 0 169 | - dockPosition: 0 170 | containerId: overlay-toolbar__top 171 | displayed: 1 172 | id: unity-grid-and-snap-toolbar 173 | index: 1 174 | contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":-141.0,"y":149.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":1,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 175 | floating: 0 176 | collapsed: 0 177 | snapOffset: {x: -141, y: 149} 178 | snapOffsetDelta: {x: 0, y: 0} 179 | snapCorner: 1 180 | layout: 1 181 | size: {x: 0, y: 0} 182 | sizeOverridden: 0 183 | - dockPosition: 1 184 | containerId: overlay-toolbar__top 185 | displayed: 1 186 | id: unity-scene-view-toolbar 187 | index: 0 188 | contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 189 | floating: 0 190 | collapsed: 0 191 | snapOffset: {x: 24, y: 0} 192 | snapOffsetDelta: {x: 0, y: 0} 193 | snapCorner: 0 194 | layout: 1 195 | size: {x: 0, y: 0} 196 | sizeOverridden: 0 197 | - dockPosition: 1 198 | containerId: overlay-toolbar__top 199 | displayed: 0 200 | id: unity-search-toolbar 201 | index: 2 202 | contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":-24.0,"y":0.0},"m_FloatingSnapCorner":1,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 203 | floating: 0 204 | collapsed: 0 205 | snapOffset: {x: 0, y: 0} 206 | snapOffsetDelta: {x: -24, y: 0} 207 | snapCorner: 1 208 | layout: 1 209 | size: {x: 0, y: 0} 210 | sizeOverridden: 0 211 | - dockPosition: 0 212 | containerId: overlay-container--left 213 | displayed: 1 214 | id: unity-transform-toolbar 215 | index: 0 216 | contents: '{"m_Layout":2,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 217 | floating: 0 218 | collapsed: 0 219 | snapOffset: {x: 24, y: 0} 220 | snapOffsetDelta: {x: 0, y: 0} 221 | snapCorner: 0 222 | layout: 2 223 | size: {x: 0, y: 0} 224 | sizeOverridden: 0 225 | - dockPosition: 0 226 | containerId: overlay-container--right 227 | displayed: 1 228 | id: Orientation 229 | index: 0 230 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":67.5,"y":86.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 231 | floating: 0 232 | collapsed: 0 233 | snapOffset: {x: 67.5, y: 86} 234 | snapOffsetDelta: {x: 0, y: 0} 235 | snapCorner: 0 236 | layout: 4 237 | size: {x: 0, y: 0} 238 | sizeOverridden: 0 239 | - dockPosition: 1 240 | containerId: overlay-container--right 241 | displayed: 0 242 | id: Scene View/Light Settings 243 | index: 0 244 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 245 | floating: 0 246 | collapsed: 0 247 | snapOffset: {x: 0, y: 0} 248 | snapOffsetDelta: {x: 24, y: 0} 249 | snapCorner: 0 250 | layout: 4 251 | size: {x: 0, y: 0} 252 | sizeOverridden: 0 253 | - dockPosition: 1 254 | containerId: overlay-container--right 255 | displayed: 0 256 | id: Scene View/Camera 257 | index: 1 258 | contents: 259 | floating: 0 260 | collapsed: 0 261 | snapOffset: {x: 0, y: 0} 262 | snapOffsetDelta: {x: 0, y: 0} 263 | snapCorner: 0 264 | layout: 4 265 | size: {x: 0, y: 0} 266 | sizeOverridden: 0 267 | - dockPosition: 1 268 | containerId: overlay-container--right 269 | displayed: 0 270 | id: Scene View/Cloth Constraints 271 | index: 1 272 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 273 | floating: 0 274 | collapsed: 0 275 | snapOffset: {x: 0, y: 0} 276 | snapOffsetDelta: {x: 24, y: 0} 277 | snapCorner: 0 278 | layout: 4 279 | size: {x: 0, y: 0} 280 | sizeOverridden: 0 281 | - dockPosition: 1 282 | containerId: overlay-container--right 283 | displayed: 0 284 | id: Scene View/Cloth Collisions 285 | index: 2 286 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 287 | floating: 0 288 | collapsed: 0 289 | snapOffset: {x: 0, y: 0} 290 | snapOffsetDelta: {x: 24, y: 0} 291 | snapCorner: 0 292 | layout: 4 293 | size: {x: 0, y: 0} 294 | sizeOverridden: 0 295 | - dockPosition: 1 296 | containerId: overlay-container--right 297 | displayed: 0 298 | id: Scene View/Navmesh Display 299 | index: 4 300 | contents: 301 | floating: 0 302 | collapsed: 0 303 | snapOffset: {x: 0, y: 0} 304 | snapOffsetDelta: {x: 0, y: 0} 305 | snapCorner: 0 306 | layout: 4 307 | size: {x: 0, y: 0} 308 | sizeOverridden: 0 309 | - dockPosition: 1 310 | containerId: overlay-container--right 311 | displayed: 0 312 | id: Scene View/Agent Display 313 | index: 5 314 | contents: 315 | floating: 0 316 | collapsed: 0 317 | snapOffset: {x: 0, y: 0} 318 | snapOffsetDelta: {x: 0, y: 0} 319 | snapCorner: 0 320 | layout: 4 321 | size: {x: 0, y: 0} 322 | sizeOverridden: 0 323 | - dockPosition: 1 324 | containerId: overlay-container--right 325 | displayed: 0 326 | id: Scene View/Obstacle Display 327 | index: 6 328 | contents: 329 | floating: 0 330 | collapsed: 0 331 | snapOffset: {x: 0, y: 0} 332 | snapOffsetDelta: {x: 0, y: 0} 333 | snapCorner: 0 334 | layout: 4 335 | size: {x: 0, y: 0} 336 | sizeOverridden: 0 337 | - dockPosition: 1 338 | containerId: overlay-container--right 339 | displayed: 0 340 | id: Scene View/Occlusion Culling 341 | index: 3 342 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 343 | floating: 0 344 | collapsed: 0 345 | snapOffset: {x: 0, y: 0} 346 | snapOffsetDelta: {x: 24, y: 0} 347 | snapCorner: 0 348 | layout: 4 349 | size: {x: 0, y: 0} 350 | sizeOverridden: 0 351 | - dockPosition: 1 352 | containerId: overlay-container--right 353 | displayed: 0 354 | id: Scene View/Physics Debugger 355 | index: 4 356 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 357 | floating: 0 358 | collapsed: 0 359 | snapOffset: {x: 0, y: 0} 360 | snapOffsetDelta: {x: 24, y: 0} 361 | snapCorner: 0 362 | layout: 4 363 | size: {x: 0, y: 0} 364 | sizeOverridden: 0 365 | - dockPosition: 1 366 | containerId: overlay-container--right 367 | displayed: 0 368 | id: Scene View/Scene Visibility 369 | index: 5 370 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 371 | floating: 0 372 | collapsed: 0 373 | snapOffset: {x: 0, y: 0} 374 | snapOffsetDelta: {x: 24, y: 0} 375 | snapCorner: 0 376 | layout: 4 377 | size: {x: 0, y: 0} 378 | sizeOverridden: 0 379 | - dockPosition: 1 380 | containerId: overlay-container--right 381 | displayed: 0 382 | id: Scene View/Particles 383 | index: 6 384 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 385 | floating: 0 386 | collapsed: 0 387 | snapOffset: {x: 0, y: 0} 388 | snapOffsetDelta: {x: 24, y: 0} 389 | snapCorner: 0 390 | layout: 4 391 | size: {x: 0, y: 0} 392 | sizeOverridden: 0 393 | - dockPosition: 0 394 | containerId: overlay-toolbar__top 395 | displayed: 0 396 | id: Brush Attributes 397 | index: 2 398 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 399 | floating: 0 400 | collapsed: 0 401 | snapOffset: {x: 0, y: 0} 402 | snapOffsetDelta: {x: 24, y: 0} 403 | snapCorner: 0 404 | layout: 4 405 | size: {x: 0, y: 0} 406 | sizeOverridden: 0 407 | - dockPosition: 1 408 | containerId: overlay-toolbar__top 409 | displayed: 1 410 | id: unity-scene-view-camera-mode-toolbar 411 | index: 1 412 | contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 413 | floating: 0 414 | collapsed: 0 415 | snapOffset: {x: 24, y: 0} 416 | snapOffsetDelta: {x: 0, y: 0} 417 | snapCorner: 0 418 | layout: 1 419 | size: {x: 0, y: 0} 420 | sizeOverridden: 0 421 | - dockPosition: 0 422 | containerId: overlay-toolbar__left 423 | displayed: 0 424 | id: Terrain Tools 425 | index: 0 426 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 427 | floating: 0 428 | collapsed: 0 429 | snapOffset: {x: 0, y: 0} 430 | snapOffsetDelta: {x: 24, y: 0} 431 | snapCorner: 0 432 | layout: 4 433 | size: {x: 0, y: 0} 434 | sizeOverridden: 0 435 | - dockPosition: 0 436 | containerId: overlay-toolbar__left 437 | displayed: 0 438 | id: Brush Masks 439 | index: 1 440 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 441 | floating: 0 442 | collapsed: 0 443 | snapOffset: {x: 0, y: 0} 444 | snapOffsetDelta: {x: 24, y: 0} 445 | snapCorner: 0 446 | layout: 4 447 | size: {x: 0, y: 0} 448 | sizeOverridden: 0 449 | - dockPosition: 1 450 | containerId: overlay-container--left 451 | displayed: 0 452 | id: Scene View/Lighting Visualization Colors 453 | index: 0 454 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 455 | floating: 0 456 | collapsed: 0 457 | snapOffset: {x: 0, y: 0} 458 | snapOffsetDelta: {x: 24, y: 0} 459 | snapCorner: 0 460 | layout: 4 461 | size: {x: 0, y: 0} 462 | sizeOverridden: 0 463 | - dockPosition: 1 464 | containerId: overlay-container--left 465 | displayed: 1 466 | id: Overlays/OverlayMenu 467 | index: 1 468 | contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":0.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 469 | floating: 0 470 | collapsed: 0 471 | snapOffset: {x: 24, y: 0} 472 | snapOffsetDelta: {x: 0, y: 0} 473 | snapCorner: 0 474 | layout: 1 475 | size: {x: 0, y: 0} 476 | sizeOverridden: 0 477 | - dockPosition: 1 478 | containerId: overlay-container--right 479 | displayed: 0 480 | id: SceneView/CamerasOverlay 481 | index: 7 482 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 483 | floating: 0 484 | collapsed: 0 485 | snapOffset: {x: 0, y: 0} 486 | snapOffsetDelta: {x: 24, y: 0} 487 | snapCorner: 0 488 | layout: 4 489 | size: {x: 0, y: 0} 490 | sizeOverridden: 0 491 | - dockPosition: 1 492 | containerId: overlay-container--right 493 | displayed: 0 494 | id: Scene View/PBR Validation Settings 495 | index: 8 496 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 497 | floating: 0 498 | collapsed: 0 499 | snapOffset: {x: 0, y: 0} 500 | snapOffsetDelta: {x: 24, y: 0} 501 | snapCorner: 0 502 | layout: 4 503 | size: {x: 0, y: 0} 504 | sizeOverridden: 0 505 | - dockPosition: 1 506 | containerId: overlay-container--right 507 | displayed: 0 508 | id: Scene View/TrailRenderer 509 | index: 9 510 | contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' 511 | floating: 0 512 | collapsed: 0 513 | snapOffset: {x: 0, y: 0} 514 | snapOffsetDelta: {x: 24, y: 0} 515 | snapCorner: 0 516 | layout: 4 517 | size: {x: 0, y: 0} 518 | sizeOverridden: 0 519 | m_ContainerData: 520 | - containerId: overlay-toolbar__top 521 | scrollOffset: 0 522 | - containerId: overlay-toolbar__left 523 | scrollOffset: 0 524 | - containerId: overlay-container--left 525 | scrollOffset: 0 526 | - containerId: overlay-container--right 527 | scrollOffset: 0 528 | - containerId: overlay-toolbar__right 529 | scrollOffset: 0 530 | - containerId: overlay-toolbar__bottom 531 | scrollOffset: 0 532 | - containerId: Floating 533 | scrollOffset: 0 534 | m_OverlaysVisible: 1 535 | m_WindowGUID: 91601b208231940e6a400055583cef8f 536 | m_Gizmos: 1 537 | m_OverrideSceneCullingMask: 6917529027641081856 538 | m_SceneIsLit: 1 539 | m_SceneLighting: 1 540 | m_2DMode: 0 541 | m_isRotationLocked: 0 542 | m_PlayAudio: 0 543 | m_AudioPlay: 0 544 | m_DebugDrawModesUseInteractiveLightBakingData: 0 545 | m_Position: 546 | m_Target: {x: 0, y: 0, z: 0} 547 | speed: 2 548 | m_Value: {x: 0, y: 0, z: 0} 549 | m_RenderMode: 0 550 | m_CameraMode: 551 | drawMode: 0 552 | name: Shaded 553 | section: Shading Mode 554 | m_ValidateTrueMetals: 0 555 | m_DoValidateTrueMetals: 0 556 | m_SceneViewState: 557 | m_AlwaysRefresh: 0 558 | showFog: 1 559 | showSkybox: 1 560 | showFlares: 1 561 | showImageEffects: 1 562 | showParticleSystems: 1 563 | showVisualEffectGraphs: 1 564 | m_FxEnabled: 1 565 | m_Grid: 566 | xGrid: 567 | m_Fade: 568 | m_Target: 0 569 | speed: 2 570 | m_Value: 0 571 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 572 | m_Pivot: {x: 0, y: 0, z: 0} 573 | m_Size: {x: 0, y: 0} 574 | yGrid: 575 | m_Fade: 576 | m_Target: 1 577 | speed: 2 578 | m_Value: 1 579 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 580 | m_Pivot: {x: 0, y: 0, z: 0} 581 | m_Size: {x: 1, y: 1} 582 | zGrid: 583 | m_Fade: 584 | m_Target: 0 585 | speed: 2 586 | m_Value: 0 587 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 588 | m_Pivot: {x: 0, y: 0, z: 0} 589 | m_Size: {x: 1, y: 1} 590 | m_ShowGrid: 1 591 | m_GridAxis: 1 592 | m_gridOpacity: 0.5 593 | m_Rotation: 594 | m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} 595 | speed: 2 596 | m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} 597 | m_Size: 598 | m_Target: 10 599 | speed: 2 600 | m_Value: 10 601 | m_Ortho: 602 | m_Target: 0 603 | speed: 2 604 | m_Value: 0 605 | m_CameraSettings: 606 | m_Speed: 1 607 | m_SpeedNormalized: 0.5 608 | m_SpeedMin: 0.01 609 | m_SpeedMax: 2 610 | m_EasingEnabled: 1 611 | m_EasingDuration: 0.4 612 | m_AccelerationEnabled: 1 613 | m_FieldOfViewHorizontalOrVertical: 60 614 | m_NearClip: 0.03 615 | m_FarClip: 10000 616 | m_DynamicClip: 1 617 | m_OcclusionCulling: 0 618 | m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} 619 | m_LastSceneViewOrtho: 0 620 | m_Viewpoint: 621 | m_SceneView: {fileID: 4} 622 | m_CameraOverscanSettings: 623 | m_Opacity: 50 624 | m_Scale: 1 625 | m_ReplacementShader: {fileID: 0} 626 | m_ReplacementString: 627 | m_SceneVisActive: 1 628 | m_LastLockedObject: {fileID: 0} 629 | m_LastDebugDrawMode: 35 630 | m_ViewIsLockedToObject: 0 631 | --- !u!114 &5 632 | MonoBehaviour: 633 | m_ObjectHideFlags: 52 634 | m_CorrespondingSourceObject: {fileID: 0} 635 | m_PrefabInstance: {fileID: 0} 636 | m_PrefabAsset: {fileID: 0} 637 | m_GameObject: {fileID: 0} 638 | m_Enabled: 1 639 | m_EditorHideFlags: 1 640 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 641 | m_Name: GameView 642 | m_EditorClassIdentifier: 643 | m_Children: [] 644 | m_Position: 645 | serializedVersion: 2 646 | x: 427.5 647 | y: 0 648 | width: 373.5 649 | height: 844 650 | m_MinSize: {x: 202, y: 226} 651 | m_MaxSize: {x: 4002, y: 4026} 652 | m_ActualView: {fileID: 6} 653 | m_Panes: 654 | - {fileID: 6} 655 | m_Selected: 0 656 | m_LastSelected: 0 657 | --- !u!114 &6 658 | MonoBehaviour: 659 | m_ObjectHideFlags: 52 660 | m_CorrespondingSourceObject: {fileID: 0} 661 | m_PrefabInstance: {fileID: 0} 662 | m_PrefabAsset: {fileID: 0} 663 | m_GameObject: {fileID: 0} 664 | m_Enabled: 1 665 | m_EditorHideFlags: 1 666 | m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} 667 | m_Name: 668 | m_EditorClassIdentifier: 669 | m_MinSize: {x: 200, y: 200} 670 | m_MaxSize: {x: 4000, y: 4000} 671 | m_TitleContent: 672 | m_Text: Game 673 | m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0} 674 | m_Tooltip: 675 | m_TextWithWhitespace: "Game\u200B" 676 | m_Pos: 677 | serializedVersion: 2 678 | x: 427.5 679 | y: 36 680 | width: 371.5 681 | height: 818 682 | m_SerializedDataModeController: 683 | m_DataMode: 0 684 | m_PreferredDataMode: 0 685 | m_SupportedDataModes: 686 | isAutomatic: 1 687 | m_ViewDataDictionary: {fileID: 0} 688 | m_OverlayCanvas: 689 | m_LastAppliedPresetName: Default 690 | m_SaveData: [] 691 | m_ContainerData: [] 692 | m_OverlaysVisible: 1 693 | m_SerializedViewNames: [] 694 | m_SerializedViewValues: [] 695 | m_PlayModeViewName: GameView 696 | m_ShowGizmos: 0 697 | m_TargetDisplay: 0 698 | m_ClearColor: {r: 0, g: 0, b: 0, a: 0} 699 | m_TargetSize: {x: 743, y: 1594} 700 | m_TextureFilterMode: 0 701 | m_TextureHideFlags: 61 702 | m_RenderIMGUI: 1 703 | m_EnterPlayModeBehavior: 0 704 | m_UseMipMap: 0 705 | m_VSyncEnabled: 0 706 | m_Gizmos: 0 707 | m_Stats: 0 708 | m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 709 | m_ZoomArea: 710 | m_HRangeLocked: 0 711 | m_VRangeLocked: 0 712 | hZoomLockedByDefault: 0 713 | vZoomLockedByDefault: 0 714 | m_HBaseRangeMin: -185.75 715 | m_HBaseRangeMax: 185.75 716 | m_VBaseRangeMin: -398.5 717 | m_VBaseRangeMax: 398.5 718 | m_HAllowExceedBaseRangeMin: 1 719 | m_HAllowExceedBaseRangeMax: 1 720 | m_VAllowExceedBaseRangeMin: 1 721 | m_VAllowExceedBaseRangeMax: 1 722 | m_ScaleWithWindow: 0 723 | m_HSlider: 0 724 | m_VSlider: 0 725 | m_IgnoreScrollWheelUntilClicked: 0 726 | m_EnableMouseInput: 1 727 | m_EnableSliderZoomHorizontal: 0 728 | m_EnableSliderZoomVertical: 0 729 | m_UniformScale: 1 730 | m_UpDirection: 1 731 | m_DrawArea: 732 | serializedVersion: 2 733 | x: 0 734 | y: 21 735 | width: 371.5 736 | height: 797 737 | m_Scale: {x: 1, y: 1} 738 | m_Translation: {x: 185.75, y: 398.5} 739 | m_MarginLeft: 0 740 | m_MarginRight: 0 741 | m_MarginTop: 0 742 | m_MarginBottom: 0 743 | m_LastShownAreaInsideMargins: 744 | serializedVersion: 2 745 | x: -185.75 746 | y: -398.5 747 | width: 371.5 748 | height: 797 749 | m_MinimalGUI: 1 750 | m_defaultScale: 1 751 | m_LastWindowPixelSize: {x: 743, y: 1636} 752 | m_ClearInEditMode: 1 753 | m_NoCameraWarning: 1 754 | m_LowResolutionForAspectRatios: 00000000000000000000 755 | m_XRRenderMode: 0 756 | m_RenderTexture: {fileID: 0} 757 | --- !u!114 &7 758 | MonoBehaviour: 759 | m_ObjectHideFlags: 52 760 | m_CorrespondingSourceObject: {fileID: 0} 761 | m_PrefabInstance: {fileID: 0} 762 | m_PrefabAsset: {fileID: 0} 763 | m_GameObject: {fileID: 0} 764 | m_Enabled: 1 765 | m_EditorHideFlags: 1 766 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 767 | m_Name: 768 | m_EditorClassIdentifier: 769 | m_Children: 770 | - {fileID: 8} 771 | - {fileID: 11} 772 | m_Position: 773 | serializedVersion: 2 774 | x: 801 775 | y: 0 776 | width: 313.5 777 | height: 844 778 | m_MinSize: {x: 100, y: 100} 779 | m_MaxSize: {x: 8096, y: 16192} 780 | vertical: 1 781 | controlID: 45 782 | draggingID: 0 783 | --- !u!114 &8 784 | MonoBehaviour: 785 | m_ObjectHideFlags: 52 786 | m_CorrespondingSourceObject: {fileID: 0} 787 | m_PrefabInstance: {fileID: 0} 788 | m_PrefabAsset: {fileID: 0} 789 | m_GameObject: {fileID: 0} 790 | m_Enabled: 1 791 | m_EditorHideFlags: 1 792 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 793 | m_Name: ConsoleWindow 794 | m_EditorClassIdentifier: 795 | m_Children: [] 796 | m_Position: 797 | serializedVersion: 2 798 | x: 0 799 | y: 0 800 | width: 313.5 801 | height: 371 802 | m_MinSize: {x: 102, y: 126} 803 | m_MaxSize: {x: 4002, y: 4026} 804 | m_ActualView: {fileID: 10} 805 | m_Panes: 806 | - {fileID: 9} 807 | - {fileID: 10} 808 | m_Selected: 1 809 | m_LastSelected: 0 810 | --- !u!114 &9 811 | MonoBehaviour: 812 | m_ObjectHideFlags: 52 813 | m_CorrespondingSourceObject: {fileID: 0} 814 | m_PrefabInstance: {fileID: 0} 815 | m_PrefabAsset: {fileID: 0} 816 | m_GameObject: {fileID: 0} 817 | m_Enabled: 1 818 | m_EditorHideFlags: 1 819 | m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} 820 | m_Name: 821 | m_EditorClassIdentifier: 822 | m_MinSize: {x: 200, y: 200} 823 | m_MaxSize: {x: 4000, y: 4000} 824 | m_TitleContent: 825 | m_Text: Hierarchy 826 | m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0} 827 | m_Tooltip: 828 | m_TextWithWhitespace: "Hierarchy\u200B" 829 | m_Pos: 830 | serializedVersion: 2 831 | x: 801 832 | y: 36 833 | width: 311.5 834 | height: 345 835 | m_SerializedDataModeController: 836 | m_DataMode: 0 837 | m_PreferredDataMode: 0 838 | m_SupportedDataModes: 839 | isAutomatic: 1 840 | m_ViewDataDictionary: {fileID: 0} 841 | m_OverlayCanvas: 842 | m_LastAppliedPresetName: Default 843 | m_SaveData: [] 844 | m_ContainerData: [] 845 | m_OverlaysVisible: 1 846 | m_SceneHierarchy: 847 | m_TreeViewState: 848 | scrollPos: {x: 0, y: 0} 849 | m_SelectedIDs: 850 | m_LastClickedID: 0 851 | m_ExpandedIDs: 58d4ffffe6d4ffff52d6ffff0e770000 852 | m_RenameOverlay: 853 | m_UserAcceptedRename: 0 854 | m_Name: 855 | m_OriginalName: 856 | m_EditFieldRect: 857 | serializedVersion: 2 858 | x: 0 859 | y: 0 860 | width: 0 861 | height: 0 862 | m_UserData: 0 863 | m_IsWaitingForDelay: 0 864 | m_IsRenaming: 0 865 | m_OriginalEventType: 11 866 | m_IsRenamingFilename: 0 867 | m_TrimLeadingAndTrailingWhitespace: 0 868 | m_ClientGUIView: {fileID: 0} 869 | m_SearchString: 870 | m_ExpandedScenes: [] 871 | m_CurrenRootInstanceID: 0 872 | m_LockTracker: 873 | m_IsLocked: 0 874 | m_CurrentSortingName: TransformSorting 875 | m_WindowGUID: 717ae2314ee4343c0a9a0d537e950dac 876 | --- !u!114 &10 877 | MonoBehaviour: 878 | m_ObjectHideFlags: 52 879 | m_CorrespondingSourceObject: {fileID: 0} 880 | m_PrefabInstance: {fileID: 0} 881 | m_PrefabAsset: {fileID: 0} 882 | m_GameObject: {fileID: 0} 883 | m_Enabled: 1 884 | m_EditorHideFlags: 0 885 | m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} 886 | m_Name: 887 | m_EditorClassIdentifier: 888 | m_MinSize: {x: 100, y: 100} 889 | m_MaxSize: {x: 4000, y: 4000} 890 | m_TitleContent: 891 | m_Text: Console 892 | m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0} 893 | m_Tooltip: 894 | m_TextWithWhitespace: "Console\u200B" 895 | m_Pos: 896 | serializedVersion: 2 897 | x: 801 898 | y: 36 899 | width: 311.5 900 | height: 345 901 | m_SerializedDataModeController: 902 | m_DataMode: 0 903 | m_PreferredDataMode: 0 904 | m_SupportedDataModes: 905 | isAutomatic: 1 906 | m_ViewDataDictionary: {fileID: 0} 907 | m_OverlayCanvas: 908 | m_LastAppliedPresetName: Default 909 | m_SaveData: [] 910 | m_ContainerData: [] 911 | m_OverlaysVisible: 1 912 | --- !u!114 &11 913 | MonoBehaviour: 914 | m_ObjectHideFlags: 52 915 | m_CorrespondingSourceObject: {fileID: 0} 916 | m_PrefabInstance: {fileID: 0} 917 | m_PrefabAsset: {fileID: 0} 918 | m_GameObject: {fileID: 0} 919 | m_Enabled: 1 920 | m_EditorHideFlags: 1 921 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 922 | m_Name: 923 | m_EditorClassIdentifier: 924 | m_Children: [] 925 | m_Position: 926 | serializedVersion: 2 927 | x: 0 928 | y: 371 929 | width: 313.5 930 | height: 473 931 | m_MinSize: {x: 232, y: 276} 932 | m_MaxSize: {x: 10002, y: 10026} 933 | m_ActualView: {fileID: 12} 934 | m_Panes: 935 | - {fileID: 12} 936 | m_Selected: 0 937 | m_LastSelected: 0 938 | --- !u!114 &12 939 | MonoBehaviour: 940 | m_ObjectHideFlags: 52 941 | m_CorrespondingSourceObject: {fileID: 0} 942 | m_PrefabInstance: {fileID: 0} 943 | m_PrefabAsset: {fileID: 0} 944 | m_GameObject: {fileID: 0} 945 | m_Enabled: 1 946 | m_EditorHideFlags: 1 947 | m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} 948 | m_Name: 949 | m_EditorClassIdentifier: 950 | m_MinSize: {x: 230, y: 250} 951 | m_MaxSize: {x: 10000, y: 10000} 952 | m_TitleContent: 953 | m_Text: Project 954 | m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0} 955 | m_Tooltip: 956 | m_TextWithWhitespace: "Project\u200B" 957 | m_Pos: 958 | serializedVersion: 2 959 | x: 801 960 | y: 407 961 | width: 311.5 962 | height: 447 963 | m_SerializedDataModeController: 964 | m_DataMode: 0 965 | m_PreferredDataMode: 0 966 | m_SupportedDataModes: 967 | isAutomatic: 1 968 | m_ViewDataDictionary: {fileID: 0} 969 | m_OverlayCanvas: 970 | m_LastAppliedPresetName: Default 971 | m_SaveData: [] 972 | m_ContainerData: [] 973 | m_OverlaysVisible: 1 974 | m_SearchFilter: 975 | m_NameFilter: 976 | m_ClassNames: [] 977 | m_AssetLabels: [] 978 | m_AssetBundleNames: [] 979 | m_ReferencingInstanceIDs: 980 | m_SceneHandles: 981 | m_ShowAllHits: 0 982 | m_SkipHidden: 0 983 | m_SearchArea: 1 984 | m_Folders: 985 | - Assets 986 | m_Globs: [] 987 | m_ProductIds: 988 | m_AnyWithAssetOrigin: 0 989 | m_OriginalText: 990 | m_ImportLogFlags: 0 991 | m_FilterByTypeIntersection: 0 992 | m_ViewMode: 1 993 | m_StartGridSize: 64 994 | m_LastFolders: 995 | - Assets 996 | m_LastFoldersGridSize: -1 997 | m_LastProjectPath: /Users/yusuf/Desktop/movenet-multipose-unity 998 | m_LockTracker: 999 | m_IsLocked: 0 1000 | m_FolderTreeState: 1001 | scrollPos: {x: 0, y: 0} 1002 | m_SelectedIDs: 54760000 1003 | m_LastClickedID: 30292 1004 | m_ExpandedIDs: 000000005476000000ca9a3bffffff7f 1005 | m_RenameOverlay: 1006 | m_UserAcceptedRename: 0 1007 | m_Name: 1008 | m_OriginalName: 1009 | m_EditFieldRect: 1010 | serializedVersion: 2 1011 | x: 0 1012 | y: 0 1013 | width: 0 1014 | height: 0 1015 | m_UserData: 0 1016 | m_IsWaitingForDelay: 0 1017 | m_IsRenaming: 0 1018 | m_OriginalEventType: 11 1019 | m_IsRenamingFilename: 1 1020 | m_TrimLeadingAndTrailingWhitespace: 0 1021 | m_ClientGUIView: {fileID: 0} 1022 | m_SearchString: 1023 | m_CreateAssetUtility: 1024 | m_EndAction: {fileID: 0} 1025 | m_InstanceID: 0 1026 | m_Path: 1027 | m_Icon: {fileID: 0} 1028 | m_ResourceFile: 1029 | m_AssetTreeState: 1030 | scrollPos: {x: 0, y: 0} 1031 | m_SelectedIDs: 1032 | m_LastClickedID: 0 1033 | m_ExpandedIDs: 1034 | m_RenameOverlay: 1035 | m_UserAcceptedRename: 0 1036 | m_Name: 1037 | m_OriginalName: 1038 | m_EditFieldRect: 1039 | serializedVersion: 2 1040 | x: 0 1041 | y: 0 1042 | width: 0 1043 | height: 0 1044 | m_UserData: 0 1045 | m_IsWaitingForDelay: 0 1046 | m_IsRenaming: 0 1047 | m_OriginalEventType: 11 1048 | m_IsRenamingFilename: 1 1049 | m_TrimLeadingAndTrailingWhitespace: 0 1050 | m_ClientGUIView: {fileID: 0} 1051 | m_SearchString: 1052 | m_CreateAssetUtility: 1053 | m_EndAction: {fileID: 0} 1054 | m_InstanceID: 0 1055 | m_Path: 1056 | m_Icon: {fileID: 0} 1057 | m_ResourceFile: 1058 | m_ListAreaState: 1059 | m_SelectedInstanceIDs: fe760000 1060 | m_LastClickedInstanceID: 30462 1061 | m_HadKeyboardFocusLastEvent: 1 1062 | m_ExpandedInstanceIDs: c6230000 1063 | m_RenameOverlay: 1064 | m_UserAcceptedRename: 0 1065 | m_Name: 1066 | m_OriginalName: 1067 | m_EditFieldRect: 1068 | serializedVersion: 2 1069 | x: 0 1070 | y: 0 1071 | width: 0 1072 | height: 0 1073 | m_UserData: 0 1074 | m_IsWaitingForDelay: 0 1075 | m_IsRenaming: 0 1076 | m_OriginalEventType: 11 1077 | m_IsRenamingFilename: 1 1078 | m_TrimLeadingAndTrailingWhitespace: 0 1079 | m_ClientGUIView: {fileID: 11} 1080 | m_CreateAssetUtility: 1081 | m_EndAction: {fileID: 0} 1082 | m_InstanceID: 0 1083 | m_Path: 1084 | m_Icon: {fileID: 0} 1085 | m_ResourceFile: 1086 | m_NewAssetIndexInList: -1 1087 | m_ScrollPosition: {x: 0, y: 0} 1088 | m_GridSize: 64 1089 | m_SkipHiddenPackages: 0 1090 | m_DirectoriesAreaWidth: 115 1091 | --- !u!114 &13 1092 | MonoBehaviour: 1093 | m_ObjectHideFlags: 52 1094 | m_CorrespondingSourceObject: {fileID: 0} 1095 | m_PrefabInstance: {fileID: 0} 1096 | m_PrefabAsset: {fileID: 0} 1097 | m_GameObject: {fileID: 0} 1098 | m_Enabled: 1 1099 | m_EditorHideFlags: 1 1100 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 1101 | m_Name: ProjectSettingsWindow 1102 | m_EditorClassIdentifier: 1103 | m_Children: [] 1104 | m_Position: 1105 | serializedVersion: 2 1106 | x: 1114.5 1107 | y: 0 1108 | width: 325.5 1109 | height: 844 1110 | m_MinSize: {x: 311, y: 226} 1111 | m_MaxSize: {x: 4001, y: 4026} 1112 | m_ActualView: {fileID: 2} 1113 | m_Panes: 1114 | - {fileID: 14} 1115 | - {fileID: 2} 1116 | m_Selected: 1 1117 | m_LastSelected: 0 1118 | --- !u!114 &14 1119 | MonoBehaviour: 1120 | m_ObjectHideFlags: 52 1121 | m_CorrespondingSourceObject: {fileID: 0} 1122 | m_PrefabInstance: {fileID: 0} 1123 | m_PrefabAsset: {fileID: 0} 1124 | m_GameObject: {fileID: 0} 1125 | m_Enabled: 1 1126 | m_EditorHideFlags: 1 1127 | m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} 1128 | m_Name: 1129 | m_EditorClassIdentifier: 1130 | m_MinSize: {x: 275, y: 50} 1131 | m_MaxSize: {x: 4000, y: 4000} 1132 | m_TitleContent: 1133 | m_Text: Inspector 1134 | m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0} 1135 | m_Tooltip: 1136 | m_TextWithWhitespace: "Inspector\u200B" 1137 | m_Pos: 1138 | serializedVersion: 2 1139 | x: 1114.5 1140 | y: 36 1141 | width: 324.5 1142 | height: 818 1143 | m_SerializedDataModeController: 1144 | m_DataMode: 0 1145 | m_PreferredDataMode: 0 1146 | m_SupportedDataModes: 1147 | isAutomatic: 1 1148 | m_ViewDataDictionary: {fileID: 0} 1149 | m_OverlayCanvas: 1150 | m_LastAppliedPresetName: Default 1151 | m_SaveData: [] 1152 | m_ContainerData: [] 1153 | m_OverlaysVisible: 1 1154 | m_ObjectsLockedBeforeSerialization: [] 1155 | m_InstanceIDsLockedBeforeSerialization: 1156 | m_PreviewResizer: 1157 | m_CachedPref: -160 1158 | m_ControlHash: -371814159 1159 | m_PrefName: Preview_InspectorPreview 1160 | m_LastInspectedObjectInstanceID: -1 1161 | m_LastVerticalScrollValue: 0 1162 | m_GlobalObjectId: 1163 | m_InspectorMode: 0 1164 | m_LockTracker: 1165 | m_IsLocked: 0 1166 | m_PreviewWindow: {fileID: 0} 1167 | -------------------------------------------------------------------------------- /UserSettings/Layouts/default-2021.dwlt: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 52 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 1 12 | m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_PixelRect: 16 | serializedVersion: 2 17 | x: 0 18 | y: 0 19 | width: 1440 20 | height: 900 21 | m_ShowMode: 4 22 | m_Title: Hierarchy 23 | m_RootView: {fileID: 2} 24 | m_MinSize: {x: 875, y: 542} 25 | m_MaxSize: {x: 10000, y: 10000} 26 | m_Maximized: 0 27 | --- !u!114 &2 28 | MonoBehaviour: 29 | m_ObjectHideFlags: 52 30 | m_CorrespondingSourceObject: {fileID: 0} 31 | m_PrefabInstance: {fileID: 0} 32 | m_PrefabAsset: {fileID: 0} 33 | m_GameObject: {fileID: 0} 34 | m_Enabled: 1 35 | m_EditorHideFlags: 1 36 | m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} 37 | m_Name: 38 | m_EditorClassIdentifier: 39 | m_Children: 40 | - {fileID: 3} 41 | - {fileID: 5} 42 | - {fileID: 4} 43 | m_Position: 44 | serializedVersion: 2 45 | x: 0 46 | y: 0 47 | width: 1440 48 | height: 900 49 | m_MinSize: {x: 875, y: 300} 50 | m_MaxSize: {x: 10000, y: 10000} 51 | m_UseTopView: 1 52 | m_TopViewHeight: 30 53 | m_UseBottomView: 1 54 | m_BottomViewHeight: 20 55 | --- !u!114 &3 56 | MonoBehaviour: 57 | m_ObjectHideFlags: 52 58 | m_CorrespondingSourceObject: {fileID: 0} 59 | m_PrefabInstance: {fileID: 0} 60 | m_PrefabAsset: {fileID: 0} 61 | m_GameObject: {fileID: 0} 62 | m_Enabled: 1 63 | m_EditorHideFlags: 1 64 | m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} 65 | m_Name: 66 | m_EditorClassIdentifier: 67 | m_Children: [] 68 | m_Position: 69 | serializedVersion: 2 70 | x: 0 71 | y: 0 72 | width: 1440 73 | height: 30 74 | m_MinSize: {x: 0, y: 0} 75 | m_MaxSize: {x: 0, y: 0} 76 | m_LastLoadedLayoutName: 77 | --- !u!114 &4 78 | MonoBehaviour: 79 | m_ObjectHideFlags: 52 80 | m_CorrespondingSourceObject: {fileID: 0} 81 | m_PrefabInstance: {fileID: 0} 82 | m_PrefabAsset: {fileID: 0} 83 | m_GameObject: {fileID: 0} 84 | m_Enabled: 1 85 | m_EditorHideFlags: 1 86 | m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} 87 | m_Name: 88 | m_EditorClassIdentifier: 89 | m_Children: [] 90 | m_Position: 91 | serializedVersion: 2 92 | x: 0 93 | y: 880 94 | width: 1440 95 | height: 20 96 | m_MinSize: {x: 0, y: 0} 97 | m_MaxSize: {x: 0, y: 0} 98 | --- !u!114 &5 99 | MonoBehaviour: 100 | m_ObjectHideFlags: 52 101 | m_CorrespondingSourceObject: {fileID: 0} 102 | m_PrefabInstance: {fileID: 0} 103 | m_PrefabAsset: {fileID: 0} 104 | m_GameObject: {fileID: 0} 105 | m_Enabled: 1 106 | m_EditorHideFlags: 1 107 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 108 | m_Name: 109 | m_EditorClassIdentifier: 110 | m_Children: 111 | - {fileID: 6} 112 | - {fileID: 7} 113 | - {fileID: 8} 114 | - {fileID: 11} 115 | m_Position: 116 | serializedVersion: 2 117 | x: 0 118 | y: 30 119 | width: 1440 120 | height: 850 121 | m_MinSize: {x: 400, y: 200} 122 | m_MaxSize: {x: 32384, y: 16192} 123 | vertical: 0 124 | controlID: 17 125 | --- !u!114 &6 126 | MonoBehaviour: 127 | m_ObjectHideFlags: 52 128 | m_CorrespondingSourceObject: {fileID: 0} 129 | m_PrefabInstance: {fileID: 0} 130 | m_PrefabAsset: {fileID: 0} 131 | m_GameObject: {fileID: 0} 132 | m_Enabled: 1 133 | m_EditorHideFlags: 0 134 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 135 | m_Name: SceneView 136 | m_EditorClassIdentifier: 137 | m_Children: [] 138 | m_Position: 139 | serializedVersion: 2 140 | x: 0 141 | y: 0 142 | width: 427.5 143 | height: 850 144 | m_MinSize: {x: 201, y: 221} 145 | m_MaxSize: {x: 4001, y: 4021} 146 | m_ActualView: {fileID: 13} 147 | m_Panes: 148 | - {fileID: 13} 149 | m_Selected: 0 150 | m_LastSelected: 0 151 | --- !u!114 &7 152 | MonoBehaviour: 153 | m_ObjectHideFlags: 52 154 | m_CorrespondingSourceObject: {fileID: 0} 155 | m_PrefabInstance: {fileID: 0} 156 | m_PrefabAsset: {fileID: 0} 157 | m_GameObject: {fileID: 0} 158 | m_Enabled: 1 159 | m_EditorHideFlags: 1 160 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 161 | m_Name: GameView 162 | m_EditorClassIdentifier: 163 | m_Children: [] 164 | m_Position: 165 | serializedVersion: 2 166 | x: 427.5 167 | y: 0 168 | width: 373.5 169 | height: 850 170 | m_MinSize: {x: 202, y: 221} 171 | m_MaxSize: {x: 4002, y: 4021} 172 | m_ActualView: {fileID: 12} 173 | m_Panes: 174 | - {fileID: 12} 175 | m_Selected: 0 176 | m_LastSelected: 0 177 | --- !u!114 &8 178 | MonoBehaviour: 179 | m_ObjectHideFlags: 52 180 | m_CorrespondingSourceObject: {fileID: 0} 181 | m_PrefabInstance: {fileID: 0} 182 | m_PrefabAsset: {fileID: 0} 183 | m_GameObject: {fileID: 0} 184 | m_Enabled: 1 185 | m_EditorHideFlags: 1 186 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 187 | m_Name: 188 | m_EditorClassIdentifier: 189 | m_Children: 190 | - {fileID: 9} 191 | - {fileID: 10} 192 | m_Position: 193 | serializedVersion: 2 194 | x: 801 195 | y: 0 196 | width: 313.5 197 | height: 850 198 | m_MinSize: {x: 100, y: 200} 199 | m_MaxSize: {x: 8096, y: 16192} 200 | vertical: 1 201 | controlID: 167 202 | --- !u!114 &9 203 | MonoBehaviour: 204 | m_ObjectHideFlags: 52 205 | m_CorrespondingSourceObject: {fileID: 0} 206 | m_PrefabInstance: {fileID: 0} 207 | m_PrefabAsset: {fileID: 0} 208 | m_GameObject: {fileID: 0} 209 | m_Enabled: 1 210 | m_EditorHideFlags: 1 211 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 212 | m_Name: SceneHierarchyWindow 213 | m_EditorClassIdentifier: 214 | m_Children: [] 215 | m_Position: 216 | serializedVersion: 2 217 | x: 0 218 | y: 0 219 | width: 313.5 220 | height: 374 221 | m_MinSize: {x: 202, y: 221} 222 | m_MaxSize: {x: 4002, y: 4021} 223 | m_ActualView: {fileID: 14} 224 | m_Panes: 225 | - {fileID: 14} 226 | - {fileID: 15} 227 | m_Selected: 0 228 | m_LastSelected: 1 229 | --- !u!114 &10 230 | MonoBehaviour: 231 | m_ObjectHideFlags: 52 232 | m_CorrespondingSourceObject: {fileID: 0} 233 | m_PrefabInstance: {fileID: 0} 234 | m_PrefabAsset: {fileID: 0} 235 | m_GameObject: {fileID: 0} 236 | m_Enabled: 1 237 | m_EditorHideFlags: 1 238 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 239 | m_Name: 240 | m_EditorClassIdentifier: 241 | m_Children: [] 242 | m_Position: 243 | serializedVersion: 2 244 | x: 0 245 | y: 374 246 | width: 313.5 247 | height: 476 248 | m_MinSize: {x: 232, y: 271} 249 | m_MaxSize: {x: 10002, y: 10021} 250 | m_ActualView: {fileID: 16} 251 | m_Panes: 252 | - {fileID: 16} 253 | m_Selected: 0 254 | m_LastSelected: 0 255 | --- !u!114 &11 256 | MonoBehaviour: 257 | m_ObjectHideFlags: 52 258 | m_CorrespondingSourceObject: {fileID: 0} 259 | m_PrefabInstance: {fileID: 0} 260 | m_PrefabAsset: {fileID: 0} 261 | m_GameObject: {fileID: 0} 262 | m_Enabled: 1 263 | m_EditorHideFlags: 1 264 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 265 | m_Name: InspectorWindow 266 | m_EditorClassIdentifier: 267 | m_Children: [] 268 | m_Position: 269 | serializedVersion: 2 270 | x: 1114.5 271 | y: 0 272 | width: 325.5 273 | height: 850 274 | m_MinSize: {x: 276, y: 71} 275 | m_MaxSize: {x: 4001, y: 4021} 276 | m_ActualView: {fileID: 17} 277 | m_Panes: 278 | - {fileID: 17} 279 | - {fileID: 18} 280 | m_Selected: 0 281 | m_LastSelected: 1 282 | --- !u!114 &12 283 | MonoBehaviour: 284 | m_ObjectHideFlags: 52 285 | m_CorrespondingSourceObject: {fileID: 0} 286 | m_PrefabInstance: {fileID: 0} 287 | m_PrefabAsset: {fileID: 0} 288 | m_GameObject: {fileID: 0} 289 | m_Enabled: 1 290 | m_EditorHideFlags: 1 291 | m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} 292 | m_Name: 293 | m_EditorClassIdentifier: 294 | m_MinSize: {x: 200, y: 200} 295 | m_MaxSize: {x: 4000, y: 4000} 296 | m_TitleContent: 297 | m_Text: Game 298 | m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0} 299 | m_Tooltip: 300 | m_Pos: 301 | serializedVersion: 2 302 | x: 427.5 303 | y: 30 304 | width: 371.5 305 | height: 829 306 | m_ViewDataDictionary: {fileID: 0} 307 | m_OverlayCanvas: 308 | m_LastAppliedPresetName: Default 309 | m_SaveData: [] 310 | m_SerializedViewNames: [] 311 | m_SerializedViewValues: [] 312 | m_PlayModeViewName: GameView 313 | m_ShowGizmos: 0 314 | m_TargetDisplay: 0 315 | m_ClearColor: {r: 0, g: 0, b: 0, a: 0} 316 | m_TargetSize: {x: 743, y: 1616} 317 | m_TextureFilterMode: 0 318 | m_TextureHideFlags: 61 319 | m_RenderIMGUI: 1 320 | m_EnterPlayModeBehavior: 0 321 | m_UseMipMap: 0 322 | m_VSyncEnabled: 0 323 | m_Gizmos: 0 324 | m_Stats: 0 325 | m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 326 | m_ZoomArea: 327 | m_HRangeLocked: 0 328 | m_VRangeLocked: 0 329 | hZoomLockedByDefault: 0 330 | vZoomLockedByDefault: 0 331 | m_HBaseRangeMin: -185.75 332 | m_HBaseRangeMax: 185.75 333 | m_VBaseRangeMin: -404 334 | m_VBaseRangeMax: 404 335 | m_HAllowExceedBaseRangeMin: 1 336 | m_HAllowExceedBaseRangeMax: 1 337 | m_VAllowExceedBaseRangeMin: 1 338 | m_VAllowExceedBaseRangeMax: 1 339 | m_ScaleWithWindow: 0 340 | m_HSlider: 0 341 | m_VSlider: 0 342 | m_IgnoreScrollWheelUntilClicked: 0 343 | m_EnableMouseInput: 1 344 | m_EnableSliderZoomHorizontal: 0 345 | m_EnableSliderZoomVertical: 0 346 | m_UniformScale: 1 347 | m_UpDirection: 1 348 | m_DrawArea: 349 | serializedVersion: 2 350 | x: 0 351 | y: 21 352 | width: 371.5 353 | height: 808 354 | m_Scale: {x: 1, y: 1} 355 | m_Translation: {x: 185.75, y: 404} 356 | m_MarginLeft: 0 357 | m_MarginRight: 0 358 | m_MarginTop: 0 359 | m_MarginBottom: 0 360 | m_LastShownAreaInsideMargins: 361 | serializedVersion: 2 362 | x: -185.75 363 | y: -404 364 | width: 371.5 365 | height: 808 366 | m_MinimalGUI: 1 367 | m_defaultScale: 1 368 | m_LastWindowPixelSize: {x: 743, y: 1658} 369 | m_ClearInEditMode: 1 370 | m_NoCameraWarning: 1 371 | m_LowResolutionForAspectRatios: 00000000000000000000 372 | m_XRRenderMode: 0 373 | m_RenderTexture: {fileID: 0} 374 | --- !u!114 &13 375 | MonoBehaviour: 376 | m_ObjectHideFlags: 52 377 | m_CorrespondingSourceObject: {fileID: 0} 378 | m_PrefabInstance: {fileID: 0} 379 | m_PrefabAsset: {fileID: 0} 380 | m_GameObject: {fileID: 0} 381 | m_Enabled: 1 382 | m_EditorHideFlags: 1 383 | m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} 384 | m_Name: 385 | m_EditorClassIdentifier: 386 | m_MinSize: {x: 200, y: 200} 387 | m_MaxSize: {x: 4000, y: 4000} 388 | m_TitleContent: 389 | m_Text: Scene 390 | m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0} 391 | m_Tooltip: 392 | m_Pos: 393 | serializedVersion: 2 394 | x: 0 395 | y: 30 396 | width: 426.5 397 | height: 829 398 | m_ViewDataDictionary: {fileID: 0} 399 | m_OverlayCanvas: 400 | m_LastAppliedPresetName: Default 401 | m_SaveData: 402 | - dockPosition: 0 403 | containerId: overlay-toolbar__top 404 | floating: 0 405 | collapsed: 0 406 | displayed: 1 407 | snapOffset: {x: 0, y: 0} 408 | snapOffsetDelta: {x: -98, y: -26} 409 | snapCorner: 3 410 | id: Tool Settings 411 | index: 0 412 | layout: 1 413 | - dockPosition: 0 414 | containerId: overlay-toolbar__top 415 | floating: 0 416 | collapsed: 0 417 | displayed: 1 418 | snapOffset: {x: -141, y: 149} 419 | snapOffsetDelta: {x: 0, y: 0} 420 | snapCorner: 1 421 | id: unity-grid-and-snap-toolbar 422 | index: 1 423 | layout: 1 424 | - dockPosition: 1 425 | containerId: overlay-toolbar__top 426 | floating: 0 427 | collapsed: 0 428 | displayed: 1 429 | snapOffset: {x: 0, y: 0} 430 | snapOffsetDelta: {x: 0, y: 0} 431 | snapCorner: 0 432 | id: unity-scene-view-toolbar 433 | index: 0 434 | layout: 1 435 | - dockPosition: 1 436 | containerId: overlay-toolbar__top 437 | floating: 0 438 | collapsed: 0 439 | displayed: 0 440 | snapOffset: {x: 0, y: 0} 441 | snapOffsetDelta: {x: 0, y: 0} 442 | snapCorner: 1 443 | id: unity-search-toolbar 444 | index: 1 445 | layout: 1 446 | - dockPosition: 0 447 | containerId: overlay-container--left 448 | floating: 0 449 | collapsed: 0 450 | displayed: 1 451 | snapOffset: {x: 0, y: 0} 452 | snapOffsetDelta: {x: 0, y: 0} 453 | snapCorner: 0 454 | id: unity-transform-toolbar 455 | index: 0 456 | layout: 2 457 | - dockPosition: 0 458 | containerId: overlay-container--right 459 | floating: 0 460 | collapsed: 0 461 | displayed: 1 462 | snapOffset: {x: 67.5, y: 86} 463 | snapOffsetDelta: {x: 0, y: 0} 464 | snapCorner: 0 465 | id: Orientation 466 | index: 0 467 | layout: 4 468 | - dockPosition: 1 469 | containerId: overlay-container--right 470 | floating: 0 471 | collapsed: 0 472 | displayed: 0 473 | snapOffset: {x: 0, y: 0} 474 | snapOffsetDelta: {x: 0, y: 0} 475 | snapCorner: 0 476 | id: Scene View/Light Settings 477 | index: 0 478 | layout: 4 479 | - dockPosition: 1 480 | containerId: overlay-container--right 481 | floating: 0 482 | collapsed: 0 483 | displayed: 0 484 | snapOffset: {x: 0, y: 0} 485 | snapOffsetDelta: {x: 0, y: 0} 486 | snapCorner: 0 487 | id: Scene View/Camera 488 | index: 1 489 | layout: 4 490 | - dockPosition: 1 491 | containerId: overlay-container--right 492 | floating: 0 493 | collapsed: 0 494 | displayed: 0 495 | snapOffset: {x: 0, y: 0} 496 | snapOffsetDelta: {x: 0, y: 0} 497 | snapCorner: 0 498 | id: Scene View/Cloth Constraints 499 | index: 2 500 | layout: 4 501 | - dockPosition: 1 502 | containerId: overlay-container--right 503 | floating: 0 504 | collapsed: 0 505 | displayed: 0 506 | snapOffset: {x: 0, y: 0} 507 | snapOffsetDelta: {x: 0, y: 0} 508 | snapCorner: 0 509 | id: Scene View/Cloth Collisions 510 | index: 3 511 | layout: 4 512 | - dockPosition: 1 513 | containerId: overlay-container--right 514 | floating: 0 515 | collapsed: 0 516 | displayed: 0 517 | snapOffset: {x: 0, y: 0} 518 | snapOffsetDelta: {x: 0, y: 0} 519 | snapCorner: 0 520 | id: Scene View/Navmesh Display 521 | index: 4 522 | layout: 4 523 | - dockPosition: 1 524 | containerId: overlay-container--right 525 | floating: 0 526 | collapsed: 0 527 | displayed: 0 528 | snapOffset: {x: 0, y: 0} 529 | snapOffsetDelta: {x: 0, y: 0} 530 | snapCorner: 0 531 | id: Scene View/Agent Display 532 | index: 5 533 | layout: 4 534 | - dockPosition: 1 535 | containerId: overlay-container--right 536 | floating: 0 537 | collapsed: 0 538 | displayed: 0 539 | snapOffset: {x: 0, y: 0} 540 | snapOffsetDelta: {x: 0, y: 0} 541 | snapCorner: 0 542 | id: Scene View/Obstacle Display 543 | index: 6 544 | layout: 4 545 | - dockPosition: 1 546 | containerId: overlay-container--right 547 | floating: 0 548 | collapsed: 0 549 | displayed: 0 550 | snapOffset: {x: 0, y: 0} 551 | snapOffsetDelta: {x: 0, y: 0} 552 | snapCorner: 0 553 | id: Scene View/Occlusion Culling 554 | index: 7 555 | layout: 4 556 | - dockPosition: 1 557 | containerId: overlay-container--right 558 | floating: 0 559 | collapsed: 0 560 | displayed: 0 561 | snapOffset: {x: 0, y: 0} 562 | snapOffsetDelta: {x: 0, y: 0} 563 | snapCorner: 0 564 | id: Scene View/Physics Debugger 565 | index: 8 566 | layout: 4 567 | - dockPosition: 1 568 | containerId: overlay-container--right 569 | floating: 0 570 | collapsed: 0 571 | displayed: 0 572 | snapOffset: {x: 0, y: 0} 573 | snapOffsetDelta: {x: 0, y: 0} 574 | snapCorner: 0 575 | id: Scene View/Scene Visibility 576 | index: 9 577 | layout: 4 578 | - dockPosition: 1 579 | containerId: overlay-container--right 580 | floating: 0 581 | collapsed: 0 582 | displayed: 0 583 | snapOffset: {x: 0, y: 0} 584 | snapOffsetDelta: {x: 0, y: 0} 585 | snapCorner: 0 586 | id: Scene View/Particles 587 | index: 10 588 | layout: 4 589 | m_WindowGUID: 91601b208231940e6a400055583cef8f 590 | m_Gizmos: 1 591 | m_OverrideSceneCullingMask: 6917529027641081856 592 | m_SceneIsLit: 1 593 | m_SceneLighting: 1 594 | m_2DMode: 1 595 | m_isRotationLocked: 0 596 | m_PlayAudio: 0 597 | m_AudioPlay: 0 598 | m_Position: 599 | m_Target: {x: 371.5, y: 703, z: 0} 600 | speed: 2 601 | m_Value: {x: 371.5, y: 703, z: 0} 602 | m_RenderMode: 0 603 | m_CameraMode: 604 | drawMode: 0 605 | name: Shaded 606 | section: Shading Mode 607 | m_ValidateTrueMetals: 0 608 | m_DoValidateTrueMetals: 0 609 | m_ExposureSliderValue: 0 610 | m_SceneViewState: 611 | m_AlwaysRefresh: 0 612 | showFog: 1 613 | showSkybox: 1 614 | showFlares: 1 615 | showImageEffects: 1 616 | showParticleSystems: 1 617 | showVisualEffectGraphs: 1 618 | m_FxEnabled: 1 619 | m_Grid: 620 | xGrid: 621 | m_Fade: 622 | m_Target: 0 623 | speed: 2 624 | m_Value: 0 625 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 626 | m_Pivot: {x: 0, y: 0, z: 0} 627 | m_Size: {x: 0, y: 0} 628 | yGrid: 629 | m_Fade: 630 | m_Target: 0 631 | speed: 2 632 | m_Value: 0 633 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 634 | m_Pivot: {x: 0, y: 0, z: 0} 635 | m_Size: {x: 1, y: 1} 636 | zGrid: 637 | m_Fade: 638 | m_Target: 1 639 | speed: 2 640 | m_Value: 1 641 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 642 | m_Pivot: {x: 0, y: 0, z: 0} 643 | m_Size: {x: 1, y: 1} 644 | m_ShowGrid: 1 645 | m_GridAxis: 1 646 | m_gridOpacity: 0.5 647 | m_Rotation: 648 | m_Target: {x: 0, y: 0, z: 0, w: 1} 649 | speed: 2 650 | m_Value: {x: 0, y: 0, z: 0, w: 1} 651 | m_Size: 652 | m_Target: 48.646305 653 | speed: 2 654 | m_Value: 48.646305 655 | m_Ortho: 656 | m_Target: 1 657 | speed: 2 658 | m_Value: 1 659 | m_CameraSettings: 660 | m_Speed: 1 661 | m_SpeedNormalized: 0.5 662 | m_SpeedMin: 0.01 663 | m_SpeedMax: 2 664 | m_EasingEnabled: 1 665 | m_EasingDuration: 0.4 666 | m_AccelerationEnabled: 1 667 | m_FieldOfViewHorizontalOrVertical: 60 668 | m_NearClip: 0.03 669 | m_FarClip: 10000 670 | m_DynamicClip: 1 671 | m_OcclusionCulling: 0 672 | m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} 673 | m_LastSceneViewOrtho: 0 674 | m_ReplacementShader: {fileID: 0} 675 | m_ReplacementString: 676 | m_SceneVisActive: 1 677 | m_LastLockedObject: {fileID: 0} 678 | m_ViewIsLockedToObject: 0 679 | --- !u!114 &14 680 | MonoBehaviour: 681 | m_ObjectHideFlags: 52 682 | m_CorrespondingSourceObject: {fileID: 0} 683 | m_PrefabInstance: {fileID: 0} 684 | m_PrefabAsset: {fileID: 0} 685 | m_GameObject: {fileID: 0} 686 | m_Enabled: 1 687 | m_EditorHideFlags: 1 688 | m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} 689 | m_Name: 690 | m_EditorClassIdentifier: 691 | m_MinSize: {x: 200, y: 200} 692 | m_MaxSize: {x: 4000, y: 4000} 693 | m_TitleContent: 694 | m_Text: Hierarchy 695 | m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0} 696 | m_Tooltip: 697 | m_Pos: 698 | serializedVersion: 2 699 | x: 801 700 | y: 30 701 | width: 311.5 702 | height: 353 703 | m_ViewDataDictionary: {fileID: 0} 704 | m_OverlayCanvas: 705 | m_LastAppliedPresetName: Default 706 | m_SaveData: [] 707 | m_SceneHierarchy: 708 | m_TreeViewState: 709 | scrollPos: {x: 0, y: 0} 710 | m_SelectedIDs: fe840000 711 | m_LastClickedID: 34046 712 | m_ExpandedIDs: 7ecfffff94d0ffff 713 | m_RenameOverlay: 714 | m_UserAcceptedRename: 0 715 | m_Name: 716 | m_OriginalName: 717 | m_EditFieldRect: 718 | serializedVersion: 2 719 | x: 0 720 | y: 0 721 | width: 0 722 | height: 0 723 | m_UserData: 0 724 | m_IsWaitingForDelay: 0 725 | m_IsRenaming: 0 726 | m_OriginalEventType: 11 727 | m_IsRenamingFilename: 0 728 | m_ClientGUIView: {fileID: 0} 729 | m_SearchString: 730 | m_ExpandedScenes: [] 731 | m_CurrenRootInstanceID: 0 732 | m_LockTracker: 733 | m_IsLocked: 0 734 | m_CurrentSortingName: TransformSorting 735 | m_WindowGUID: 717ae2314ee4343c0a9a0d537e950dac 736 | --- !u!114 &15 737 | MonoBehaviour: 738 | m_ObjectHideFlags: 52 739 | m_CorrespondingSourceObject: {fileID: 0} 740 | m_PrefabInstance: {fileID: 0} 741 | m_PrefabAsset: {fileID: 0} 742 | m_GameObject: {fileID: 0} 743 | m_Enabled: 1 744 | m_EditorHideFlags: 0 745 | m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} 746 | m_Name: 747 | m_EditorClassIdentifier: 748 | m_MinSize: {x: 100, y: 100} 749 | m_MaxSize: {x: 4000, y: 4000} 750 | m_TitleContent: 751 | m_Text: Console 752 | m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0} 753 | m_Tooltip: 754 | m_Pos: 755 | serializedVersion: 2 756 | x: 801 757 | y: 30 758 | width: 311.5 759 | height: 353 760 | m_ViewDataDictionary: {fileID: 0} 761 | m_OverlayCanvas: 762 | m_LastAppliedPresetName: Default 763 | m_SaveData: [] 764 | --- !u!114 &16 765 | MonoBehaviour: 766 | m_ObjectHideFlags: 52 767 | m_CorrespondingSourceObject: {fileID: 0} 768 | m_PrefabInstance: {fileID: 0} 769 | m_PrefabAsset: {fileID: 0} 770 | m_GameObject: {fileID: 0} 771 | m_Enabled: 1 772 | m_EditorHideFlags: 1 773 | m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} 774 | m_Name: 775 | m_EditorClassIdentifier: 776 | m_MinSize: {x: 230, y: 250} 777 | m_MaxSize: {x: 10000, y: 10000} 778 | m_TitleContent: 779 | m_Text: Project 780 | m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0} 781 | m_Tooltip: 782 | m_Pos: 783 | serializedVersion: 2 784 | x: 801 785 | y: 404 786 | width: 311.5 787 | height: 455 788 | m_ViewDataDictionary: {fileID: 0} 789 | m_OverlayCanvas: 790 | m_LastAppliedPresetName: Default 791 | m_SaveData: [] 792 | m_SearchFilter: 793 | m_NameFilter: 794 | m_ClassNames: [] 795 | m_AssetLabels: [] 796 | m_AssetBundleNames: [] 797 | m_VersionControlStates: [] 798 | m_SoftLockControlStates: [] 799 | m_ReferencingInstanceIDs: 800 | m_SceneHandles: 801 | m_ShowAllHits: 0 802 | m_SkipHidden: 0 803 | m_SearchArea: 1 804 | m_Folders: 805 | - Assets 806 | m_Globs: [] 807 | m_OriginalText: 808 | m_ViewMode: 1 809 | m_StartGridSize: 64 810 | m_LastFolders: 811 | - Assets 812 | m_LastFoldersGridSize: -1 813 | m_LastProjectPath: /Users/yusuf/Desktop/movenet-multipose 814 | m_LockTracker: 815 | m_IsLocked: 0 816 | m_FolderTreeState: 817 | scrollPos: {x: 0, y: 0} 818 | m_SelectedIDs: 9e840000 819 | m_LastClickedID: 33950 820 | m_ExpandedIDs: 000000009e84000000ca9a3bffffff7f 821 | m_RenameOverlay: 822 | m_UserAcceptedRename: 0 823 | m_Name: 824 | m_OriginalName: 825 | m_EditFieldRect: 826 | serializedVersion: 2 827 | x: 0 828 | y: 0 829 | width: 0 830 | height: 0 831 | m_UserData: 0 832 | m_IsWaitingForDelay: 0 833 | m_IsRenaming: 0 834 | m_OriginalEventType: 11 835 | m_IsRenamingFilename: 1 836 | m_ClientGUIView: {fileID: 0} 837 | m_SearchString: 838 | m_CreateAssetUtility: 839 | m_EndAction: {fileID: 0} 840 | m_InstanceID: 0 841 | m_Path: 842 | m_Icon: {fileID: 0} 843 | m_ResourceFile: 844 | m_AssetTreeState: 845 | scrollPos: {x: 0, y: 0} 846 | m_SelectedIDs: 847 | m_LastClickedID: 0 848 | m_ExpandedIDs: 849 | m_RenameOverlay: 850 | m_UserAcceptedRename: 0 851 | m_Name: 852 | m_OriginalName: 853 | m_EditFieldRect: 854 | serializedVersion: 2 855 | x: 0 856 | y: 0 857 | width: 0 858 | height: 0 859 | m_UserData: 0 860 | m_IsWaitingForDelay: 0 861 | m_IsRenaming: 0 862 | m_OriginalEventType: 11 863 | m_IsRenamingFilename: 1 864 | m_ClientGUIView: {fileID: 0} 865 | m_SearchString: 866 | m_CreateAssetUtility: 867 | m_EndAction: {fileID: 0} 868 | m_InstanceID: 0 869 | m_Path: 870 | m_Icon: {fileID: 0} 871 | m_ResourceFile: 872 | m_ListAreaState: 873 | m_SelectedInstanceIDs: 874 | m_LastClickedInstanceID: 0 875 | m_HadKeyboardFocusLastEvent: 1 876 | m_ExpandedInstanceIDs: c6230000 877 | m_RenameOverlay: 878 | m_UserAcceptedRename: 0 879 | m_Name: 880 | m_OriginalName: 881 | m_EditFieldRect: 882 | serializedVersion: 2 883 | x: 0 884 | y: 0 885 | width: 0 886 | height: 0 887 | m_UserData: 0 888 | m_IsWaitingForDelay: 0 889 | m_IsRenaming: 0 890 | m_OriginalEventType: 11 891 | m_IsRenamingFilename: 1 892 | m_ClientGUIView: {fileID: 10} 893 | m_CreateAssetUtility: 894 | m_EndAction: {fileID: 0} 895 | m_InstanceID: 0 896 | m_Path: 897 | m_Icon: {fileID: 0} 898 | m_ResourceFile: 899 | m_NewAssetIndexInList: -1 900 | m_ScrollPosition: {x: 0, y: 0} 901 | m_GridSize: 64 902 | m_SkipHiddenPackages: 0 903 | m_DirectoriesAreaWidth: 115 904 | --- !u!114 &17 905 | MonoBehaviour: 906 | m_ObjectHideFlags: 52 907 | m_CorrespondingSourceObject: {fileID: 0} 908 | m_PrefabInstance: {fileID: 0} 909 | m_PrefabAsset: {fileID: 0} 910 | m_GameObject: {fileID: 0} 911 | m_Enabled: 1 912 | m_EditorHideFlags: 1 913 | m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} 914 | m_Name: 915 | m_EditorClassIdentifier: 916 | m_MinSize: {x: 275, y: 50} 917 | m_MaxSize: {x: 4000, y: 4000} 918 | m_TitleContent: 919 | m_Text: Inspector 920 | m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0} 921 | m_Tooltip: 922 | m_Pos: 923 | serializedVersion: 2 924 | x: 1114.5 925 | y: 30 926 | width: 324.5 927 | height: 829 928 | m_ViewDataDictionary: {fileID: 0} 929 | m_OverlayCanvas: 930 | m_LastAppliedPresetName: Default 931 | m_SaveData: [] 932 | m_ObjectsLockedBeforeSerialization: [] 933 | m_InstanceIDsLockedBeforeSerialization: 934 | m_PreviewResizer: 935 | m_CachedPref: -160 936 | m_ControlHash: -371814159 937 | m_PrefName: Preview_InspectorPreview 938 | m_LastInspectedObjectInstanceID: -1 939 | m_LastVerticalScrollValue: 0 940 | m_GlobalObjectId: 941 | m_InspectorMode: 0 942 | m_LockTracker: 943 | m_IsLocked: 0 944 | m_PreviewWindow: {fileID: 0} 945 | --- !u!114 &18 946 | MonoBehaviour: 947 | m_ObjectHideFlags: 52 948 | m_CorrespondingSourceObject: {fileID: 0} 949 | m_PrefabInstance: {fileID: 0} 950 | m_PrefabAsset: {fileID: 0} 951 | m_GameObject: {fileID: 0} 952 | m_Enabled: 1 953 | m_EditorHideFlags: 0 954 | m_Script: {fileID: 13854, guid: 0000000000000000e000000000000000, type: 0} 955 | m_Name: 956 | m_EditorClassIdentifier: 957 | m_MinSize: {x: 310, y: 200} 958 | m_MaxSize: {x: 4000, y: 4000} 959 | m_TitleContent: 960 | m_Text: Project Settings 961 | m_Image: {fileID: 866346219090771560, guid: 0000000000000000d000000000000000, type: 0} 962 | m_Tooltip: 963 | m_Pos: 964 | serializedVersion: 2 965 | x: 2497.5 966 | y: 83 967 | width: 307.5 968 | height: 900 969 | m_ViewDataDictionary: {fileID: 0} 970 | m_OverlayCanvas: 971 | m_LastAppliedPresetName: Default 972 | m_SaveData: [] 973 | m_PosLeft: {x: 0, y: 0} 974 | m_PosRight: {x: 3, y: 0} 975 | m_Scope: 1 976 | m_SplitterFlex: 0.2 977 | m_SearchText: 978 | m_TreeViewState: 979 | scrollPos: {x: 0, y: 0} 980 | m_SelectedIDs: 4dcf9b58 981 | m_LastClickedID: 1486606157 982 | m_ExpandedIDs: a01a5fa6000000006ec88043 983 | m_RenameOverlay: 984 | m_UserAcceptedRename: 0 985 | m_Name: 986 | m_OriginalName: 987 | m_EditFieldRect: 988 | serializedVersion: 2 989 | x: 0 990 | y: 0 991 | width: 0 992 | height: 0 993 | m_UserData: 0 994 | m_IsWaitingForDelay: 0 995 | m_IsRenaming: 0 996 | m_OriginalEventType: 11 997 | m_IsRenamingFilename: 0 998 | m_ClientGUIView: {fileID: 0} 999 | m_SearchString: 1000 | -------------------------------------------------------------------------------- /UserSettings/Search.settings: -------------------------------------------------------------------------------- 1 | trackSelection = true 2 | refreshSearchWindowsInPlayMode = false 3 | fetchPreview = true 4 | defaultFlags = 0 5 | keepOpen = false 6 | queryFolder = "Assets" 7 | onBoardingDoNotAskAgain = true 8 | showPackageIndexes = false 9 | showStatusBar = false 10 | scopes = { 11 | } 12 | providers = { 13 | packages = { 14 | active = true 15 | priority = 90 16 | defaultAction = null 17 | } 18 | adb = { 19 | active = false 20 | priority = 2500 21 | defaultAction = null 22 | } 23 | asset = { 24 | active = true 25 | priority = 25 26 | defaultAction = null 27 | } 28 | find = { 29 | active = true 30 | priority = 25 31 | defaultAction = null 32 | } 33 | log = { 34 | active = false 35 | priority = 210 36 | defaultAction = null 37 | } 38 | profilermarkers = { 39 | active = false 40 | priority = 100 41 | defaultAction = null 42 | } 43 | performance = { 44 | active = false 45 | priority = 100 46 | defaultAction = null 47 | } 48 | store = { 49 | active = true 50 | priority = 100 51 | defaultAction = null 52 | } 53 | scene = { 54 | active = true 55 | priority = 50 56 | defaultAction = null 57 | } 58 | } 59 | objectSelectors = { 60 | } 61 | recentSearches = [ 62 | ] 63 | searchItemFavorites = [ 64 | ] 65 | savedSearchesSortOrder = 0 66 | showSavedSearchPanel = false 67 | hideTabs = false 68 | expandedQueries = [ 69 | ] 70 | queryBuilder = false 71 | ignoredProperties = "id;name;classname;imagecontentshash" 72 | helperWidgetCurrentArea = "all" 73 | disabledIndexers = "" 74 | minIndexVariations = 2 75 | findProviderIndexHelper = true -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natmlx/movenet-multipose-unity/4cf8ec2ddee6e72206c4e2dfd8fb0ebf437bbb89/demo.gif --------------------------------------------------------------------------------