├── CHANGELOG.md ├── Samples~ └── Simple │ ├── Animations │ ├── run.fbx │ ├── idle.fbx │ ├── jump.fbx │ ├── run with events.fbx │ ├── Events.controller.meta │ ├── Auto Detect 1.controller.meta │ ├── Events.controller │ ├── Auto Detect 1.controller │ ├── idle.fbx.meta │ └── jump.fbx.meta │ ├── SFX │ ├── footstep00.ogg │ ├── footstep01.ogg │ ├── footstep02.ogg │ ├── footstep03.ogg │ ├── footstep04.ogg │ ├── footstep05.ogg │ ├── footstep06.ogg │ ├── footstep07.ogg │ ├── footstep08.ogg │ ├── footstep09.ogg │ ├── footstep00.ogg.meta │ ├── footstep01.ogg.meta │ ├── footstep02.ogg.meta │ ├── footstep03.ogg.meta │ ├── footstep04.ogg.meta │ ├── footstep05.ogg.meta │ ├── footstep06.ogg.meta │ ├── footstep07.ogg.meta │ ├── footstep08.ogg.meta │ └── footstep09.ogg.meta │ ├── Models │ ├── characterMedium.fbx │ └── characterMedium.fbx.meta │ ├── Textures │ ├── skaterMaleA.png │ └── skaterMaleA.png.meta │ ├── AutoDetection.unity.meta │ ├── AnimationEvents.unity.meta │ ├── SFX.meta │ ├── Character (Auto Detect).prefab.meta │ ├── Data.meta │ ├── Models.meta │ ├── Scripts.meta │ ├── Textures.meta │ ├── Animations.meta │ ├── Character (Animation Events).prefab.meta │ ├── Materials.meta │ ├── Data │ ├── SurfaceTypes.meta │ └── SurfaceTypes │ │ ├── Floor_Type 1.asset.meta │ │ ├── Floor_Type 2.asset.meta │ │ ├── Floor_Type 3.asset.meta │ │ ├── Floor_Type 4.asset.meta │ │ ├── Floor_Type 1.asset │ │ ├── Floor_Type 2.asset │ │ ├── Floor_Type 3.asset │ │ └── Floor_Type 4.asset │ ├── Materials │ ├── skin.mat.meta │ ├── Floor_Type 1.mat.meta │ ├── Floor_Type 2.mat.meta │ ├── Floor_Type 3.mat.meta │ ├── Floor_Type 4.mat.meta │ ├── Floor_Type 1.mat │ ├── Floor_Type 2.mat │ ├── Floor_Type 3.mat │ ├── Floor_Type 4.mat │ └── skin.mat │ ├── NewAudioMixer.mixer.meta │ ├── Scripts │ ├── Mover.cs.meta │ └── Mover.cs │ ├── NewAudioMixer.mixer │ ├── Character (Auto Detect).prefab │ ├── Character (Animation Events).prefab │ ├── AnimationEvents.unity │ └── AutoDetection.unity ├── CHANGELOG.md.meta ├── LICENSE.md.meta ├── README.md.meta ├── package.json.meta ├── Editor.meta ├── Runtime.meta ├── Runtime ├── Dropecho.Footstep.asmdef.meta ├── FootStepSurface.cs ├── FootStepAudio.cs.meta ├── FootStepDetector.cs.meta ├── FootStepSurface.cs.meta ├── FootStepSurfaceByTag.cs.meta ├── FootStepSurfaceType.cs.meta ├── TerrainTextureDetector.cs.meta ├── FootStepSurfaceByComponent.cs.meta ├── FootStepSurfaceByMaterial.cs.meta ├── FootStepSurfaceByTerrainTexture.cs.meta ├── FootStepSurfaceType.cs ├── Dropecho.Footstep.asmdef ├── FootStepSurfaceByTag.cs ├── FootStepSurfaceByComponent.cs ├── FootStepSurfaceByMaterial.cs ├── FootStepSurfaceByTerrainTexture.cs ├── FootStepAudio.cs ├── TerrainTextureDetector.cs └── FootStepDetector.cs ├── .github └── workflows │ └── add-to-project.yml ├── package.json ├── LICENSE.md ├── .gitignore ├── README.md └── .editorconfig /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## CHANGELOG -------------------------------------------------------------------------------- /Samples~/Simple/Animations/run.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/Animations/run.fbx -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep00.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep00.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep01.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep01.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep02.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep02.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep03.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep03.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep04.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep04.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep05.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep05.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep06.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep06.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep07.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep07.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep08.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep08.ogg -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep09.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/SFX/footstep09.ogg -------------------------------------------------------------------------------- /Samples~/Simple/Animations/idle.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/Animations/idle.fbx -------------------------------------------------------------------------------- /Samples~/Simple/Animations/jump.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/Animations/jump.fbx -------------------------------------------------------------------------------- /Samples~/Simple/Models/characterMedium.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/Models/characterMedium.fbx -------------------------------------------------------------------------------- /Samples~/Simple/Textures/skaterMaleA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/Textures/skaterMaleA.png -------------------------------------------------------------------------------- /Samples~/Simple/Animations/run with events.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropecho/unity_footstep/HEAD/Samples~/Simple/Animations/run with events.fbx -------------------------------------------------------------------------------- /CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7df0e05aabf9fe4d9566e78038c03ac 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 44fc1e344e5ea9b4fa14566547148a5d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d65711dcabfd354eb7dbc60579b715a 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7cb50e4f91d48c499ca9fbc22e3cad1 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 755fe1040bca4314db2114d5666f3d8e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93c6bc4c827bf76488300f30fcd59ecd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/AutoDetection.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 513f468891d2359429cbedd77a7ac245 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Samples~/Simple/AnimationEvents.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 196b81bffcef56341950ca339de440f1 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4358616b8fbee2a41ab5fe6fd943a8d3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Dropecho.Footstep.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aae82e0ae9dfc5b40994662e28ea4380 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Samples~/Simple/Character (Auto Detect).prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63cf066fc0121e046bf8c4edbc3945be 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Samples~/Simple/Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db6e5c36f172e8d45996f1bd46331000 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62c894640716cd445a6b4ee5c3444949 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e32b0b407bfe614d8004c8a4d8b44a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d3a776997398794cbd0735b2fdd7d9b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56955a5674da94d4ab6de9261a2790df 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Character (Animation Events).prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3108e17f808841848ba6750cc9736ca8 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aae986115eab0cf4380f4a830740d157 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa4e4a4339fa3dc45be8a033121e90f4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/FootStepSurface.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Dropecho { 6 | public class FootStepSurface : MonoBehaviour { 7 | public FootStepSurfaceByComponent type; 8 | } 9 | } -------------------------------------------------------------------------------- /Samples~/Simple/Materials/skin.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98bab7a8e1d66be48a51bfcc26c275c8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/NewAudioMixer.mixer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49d10c9f07f34484b9492e0e6ba26ec3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 24100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 1.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af9689dc516cf52438bc70d4469d9169 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 2.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eea70cf0404c1af43bd7c19b0d4d689a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 3.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0df18d55a0a5a1a46b98f20f17b8c354 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 4.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43cb47231ab57d54d9538a0c167b4211 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations/Events.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed3d949a504d5044ca4b4d43bf2fc398 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations/Auto Detect 1.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b160de1e5a4baa64587a46e276268650 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 1.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 075a5028dcc508d4483e507e5a5f8874 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 2.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8040298941c0462429314a5edbb68374 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 3.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 700b5115a3c919f48b41d6013b5dffb0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 4.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa0fe4db1d55ad24db71890174e3e92e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/FootStepAudio.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80a9200dd942c354e82dfb8ed1f8057d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepDetector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 111ef61b7be484140b90e03e68c60461 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurface.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b03277eb04d9854b8f620c9560cc5ef 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72c92fa4e5bacbc428dc68a568937626 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 639e1770264d6664ebf703462735024e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/TerrainTextureDetector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c3b0bf9dbc5eba4089c47ca30de1307 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Samples~/Simple/Scripts/Mover.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee40346acf17a8544a7dc94e57ed6b2c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByComponent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9f9192b7cdc3a840ac04921cb45d1af 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByMaterial.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d880778b5d78cc04199fa7c2c14b08b2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByTerrainTexture.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed027f7a073333a4198b4db0e9982e48 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceType.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Dropecho { 4 | public abstract class FootStepSurfaceType : ScriptableObject { 5 | [field: SerializeField] public LayerMask groundLayers { get; private set; } 6 | 7 | public virtual bool CheckIfPointOnSurface(Vector3 point) { 8 | return false; 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /Runtime/Dropecho.Footstep.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dropecho.Footstep", 3 | "rootNamespace": "", 4 | "references": [], 5 | "includePlatforms": [], 6 | "excludePlatforms": [], 7 | "allowUnsafeCode": false, 8 | "overrideReferences": false, 9 | "precompiledReferences": [], 10 | "autoReferenced": true, 11 | "defineConstraints": [], 12 | "versionDefines": [], 13 | "noEngineReferences": false 14 | } -------------------------------------------------------------------------------- /Samples~/Simple/Scripts/Mover.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class Mover : MonoBehaviour { 4 | Vector3 _startPos; 5 | 6 | // Start is called before the first frame update 7 | void Start() { 8 | _startPos = transform.position; 9 | } 10 | 11 | // Update is called once per frame 12 | void Update() { 13 | transform.position += transform.right * Time.deltaTime * 2; 14 | if (transform.position.x > 5) { 15 | transform.position = _startPos; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.github/workflows/add-to-project.yml: -------------------------------------------------------------------------------- 1 | name: Add new issues to org project 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | add-to-project: 10 | name: Add issue to project 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/add-to-project@v0.5.0 14 | with: 15 | # You can target a project in a different organization 16 | # to the issue 17 | project-url: https://github.com/orgs/dropecho/projects/5 18 | github-token: ${{ secrets.GH_PROJECTS_ACTIONS_TOKEN }} 19 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep00.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e03a5ba7bd7ba6408d37cde9148a676 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep01.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04e4ecef067b7f94ebc296124f6e6102 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep02.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4c976cc85a81d54786e9c296bf6de24 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep03.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6986103b51ca08849957df9452f00b0e 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep04.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 366c8757431c01f47838bd4f70a1b1c9 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep05.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7f31b76a5a126046a8d243a02439bbc 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep06.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 055a449df64786f4d96c7defe99dc6e4 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep07.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0eeb62e49acf5ba4b812c0afba3f61c6 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep08.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69330ff1c1f2a87459a95095125449ed 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Samples~/Simple/SFX/footstep09.ogg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3492aaba98fab1b4fa9c8f7f7de3a36c 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.dropecho.footstep", 3 | "version": "0.2.0", 4 | "displayName": "Dropecho FootStep Detector", 5 | "description": "An automatic (or manual) footstep audio surface system.", 6 | "author": "Dropecho ", 7 | "repository": "github:dropecho/unity_footstep", 8 | "license": "MIT", 9 | "samples": [{ 10 | "displayName": "Simple Example", 11 | "description": "Contains sample scene with two kinds of characters (using auto detection and animation events) to show off footsteps.", 12 | "path": "Samples~/Simple" 13 | }] 14 | } -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByTag.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace Dropecho { 5 | [CreateAssetMenu(menuName = "Dropecho/Character/Foot Step Surface/By Tag")] 6 | public class FootStepSurfaceByTag : FootStepSurfaceType { 7 | [field: SerializeField] public string tag { get; private set; } 8 | 9 | public override bool CheckIfPointOnSurface(Vector3 position) { 10 | if (Physics.Raycast(position + Vector3.up * 0.25f, Vector3.down, out RaycastHit hit, 0.5f, groundLayers)) { 11 | return hit.transform.tag == tag; 12 | } 13 | 14 | return false; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 1.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 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: 11500000, guid: d880778b5d78cc04199fa7c2c14b08b2, type: 3} 13 | m_Name: Floor_Type 1 14 | m_EditorClassIdentifier: 15 | k__BackingField: 16 | serializedVersion: 2 17 | m_Bits: 2147483647 18 | k__BackingField: {fileID: 2100000, guid: af9689dc516cf52438bc70d4469d9169, type: 2} 19 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 2.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 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: 11500000, guid: d880778b5d78cc04199fa7c2c14b08b2, type: 3} 13 | m_Name: Floor_Type 2 14 | m_EditorClassIdentifier: 15 | k__BackingField: 16 | serializedVersion: 2 17 | m_Bits: 2147483647 18 | k__BackingField: {fileID: 2100000, guid: eea70cf0404c1af43bd7c19b0d4d689a, type: 2} 19 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 3.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 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: 11500000, guid: d880778b5d78cc04199fa7c2c14b08b2, type: 3} 13 | m_Name: Floor_Type 3 14 | m_EditorClassIdentifier: 15 | k__BackingField: 16 | serializedVersion: 2 17 | m_Bits: 2147483647 18 | k__BackingField: {fileID: 2100000, guid: 0df18d55a0a5a1a46b98f20f17b8c354, type: 2} 19 | -------------------------------------------------------------------------------- /Samples~/Simple/Data/SurfaceTypes/Floor_Type 4.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 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: 11500000, guid: d880778b5d78cc04199fa7c2c14b08b2, type: 3} 13 | m_Name: Floor_Type 4 14 | m_EditorClassIdentifier: 15 | k__BackingField: 16 | serializedVersion: 2 17 | m_Bits: 2147483647 18 | k__BackingField: {fileID: 2100000, guid: 43cb47231ab57d54d9538a0c167b4211, type: 2} 19 | -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByComponent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Dropecho { 6 | [CreateAssetMenu(menuName = "Dropecho/Character/Foot Step Surface/By Component")] 7 | public class FootStepSurfaceByComponent : FootStepSurfaceType { 8 | public override bool CheckIfPointOnSurface(Vector3 position) { 9 | if (Physics.Raycast(position + Vector3.up * 0.25f, Vector3.down, out RaycastHit hit, 0.5f, groundLayers)) { 10 | var surface = hit.transform.GetComponent(); 11 | if (surface != null) { 12 | return surface.type == this; 13 | } 14 | } 15 | 16 | return false; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByMaterial.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace Dropecho { 5 | [CreateAssetMenu(menuName = "Dropecho/Character/Foot Step Surface/By Material")] 6 | public class FootStepSurfaceByMaterial : FootStepSurfaceType { 7 | [field: SerializeField] public Material material { get; private set; } 8 | 9 | public override bool CheckIfPointOnSurface(Vector3 position) { 10 | if (Physics.Raycast(position + Vector3.up * 0.25f, Vector3.down, out RaycastHit hit, 0.5f, groundLayers)) { 11 | var renderer = hit.transform.GetComponent(); 12 | if (renderer != null) { 13 | return renderer.sharedMaterial == material; 14 | } 15 | } 16 | 17 | return false; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Runtime/FootStepSurfaceByTerrainTexture.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace Dropecho { 5 | [CreateAssetMenu(menuName = "Dropecho/Character/Foot Step Surface/By Terrain Texture Index")] 6 | public class FootStepSurfaceByTerrainTexture : FootStepSurfaceType { 7 | public int terrainTextureIndex = 0; 8 | TerrainTextureDetector _terrainDetector; 9 | 10 | void OnEnable() { 11 | _terrainDetector = new TerrainTextureDetector(); 12 | } 13 | 14 | public override bool CheckIfPointOnSurface(Vector3 position) { 15 | if (Physics.Raycast(position + Vector3.up * 0.25f, Vector3.down, out RaycastHit hit, 0.5f, groundLayers)) { 16 | return terrainTextureIndex == _terrainDetector.GetMainTexture(hit.point); 17 | } 18 | 19 | return false; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Runtime/FootStepAudio.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Dropecho { 6 | public class FootStepAudio : MonoBehaviour { 7 | public AudioSource source; 8 | public AudioClip defaultClip; 9 | public FootStepSurfaceType[] surfaces; 10 | public AudioClip[] clips; 11 | 12 | public void OnFootStep(FootStepEvent evt) { 13 | var volume = 0.5f; 14 | // var volume = Mathf.InverseLerp(0, 0.1f, Mathf.Abs(evt.velocity)); 15 | 16 | var surfaceIndex = System.Array.IndexOf(surfaces, evt.surface); 17 | if (surfaceIndex >= 0 && clips.Length > surfaceIndex && clips[surfaceIndex] != null) { 18 | source.PlayOneShot(clips[surfaceIndex], volume); 19 | } else { 20 | source.PlayOneShot(defaultClip, volume); 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | ## LICENSE 2 | 3 | Copyright 2023 Benjamin Van Treese 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Asset meta data should only be ignored when the corresponding asset is also ignored 18 | !/[Aa]ssets/**/*.meta 19 | 20 | # Visual Studio cache directory 21 | .vs/ 22 | 23 | # Gradle cache directory 24 | .gradle/ 25 | 26 | # Autogenerated VS/MD/Consulo solution and project files 27 | ExportedObj/ 28 | .consulo/ 29 | *.csproj 30 | *.unityproj 31 | *.sln 32 | *.suo 33 | *.tmp 34 | *.user 35 | *.userprefs 36 | *.pidb 37 | *.booproj 38 | *.svd 39 | *.pdb 40 | *.mdb 41 | *.opendb 42 | *.VC.db 43 | 44 | # Unity3D generated meta files 45 | *.pidb.meta 46 | *.pdb.meta 47 | *.mdb.meta 48 | 49 | # Unity3D generated file on crash reports 50 | sysinfo.txt 51 | 52 | # Builds 53 | *.apk 54 | #*.unitypackage 55 | 56 | # Crashlytics generated file 57 | crashlytics-build.properties 58 | 59 | # Packed Addressables 60 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 61 | 62 | # Temporary auto-generated Android Assets 63 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 64 | /[Aa]ssets/[Ss]treamingAssets/aa/* -------------------------------------------------------------------------------- /Samples~/Simple/NewAudioMixer.mixer: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!241 &24100000 4 | AudioMixerController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: NewAudioMixer 10 | m_OutputGroup: {fileID: 0} 11 | m_MasterGroup: {fileID: 24300002} 12 | m_Snapshots: 13 | - {fileID: 24500006} 14 | m_StartSnapshot: {fileID: 24500006} 15 | m_SuspendThreshold: -80 16 | m_EnableSuspend: 1 17 | m_UpdateMode: 0 18 | m_ExposedParameters: [] 19 | m_AudioMixerGroupViews: [] 20 | m_CurrentViewIndex: 0 21 | m_TargetSnapshot: {fileID: 24500006} 22 | --- !u!243 &24300002 23 | AudioMixerGroupController: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_Name: Master 29 | m_AudioMixer: {fileID: 24100000} 30 | m_GroupID: 232d38cb598a758438b6bad4c24f1b7c 31 | m_Children: [] 32 | m_Volume: 19c5c8e6282ea754bb45d9019aa15a17 33 | m_Pitch: 9937baeb12f1b9647868e21e68c5b5b3 34 | m_Send: 00000000000000000000000000000000 35 | m_Effects: 36 | - {fileID: 24400004} 37 | m_UserColorIndex: 0 38 | m_Mute: 0 39 | m_Solo: 0 40 | m_BypassEffects: 0 41 | --- !u!244 &24400004 42 | AudioMixerEffectController: 43 | m_ObjectHideFlags: 3 44 | m_CorrespondingSourceObject: {fileID: 0} 45 | m_PrefabInstance: {fileID: 0} 46 | m_PrefabAsset: {fileID: 0} 47 | m_Name: 48 | m_EffectID: 30ad6f4bcc56e8444afe85931798e4a9 49 | m_EffectName: Attenuation 50 | m_MixLevel: 9956c12031c2235488da540e4177df1c 51 | m_Parameters: [] 52 | m_SendTarget: {fileID: 0} 53 | m_EnableWetMix: 0 54 | m_Bypass: 0 55 | --- !u!245 &24500006 56 | AudioMixerSnapshotController: 57 | m_ObjectHideFlags: 0 58 | m_CorrespondingSourceObject: {fileID: 0} 59 | m_PrefabInstance: {fileID: 0} 60 | m_PrefabAsset: {fileID: 0} 61 | m_Name: Snapshot 62 | m_AudioMixer: {fileID: 24100000} 63 | m_SnapshotID: e647b5263c608c64a909c826c19be14a 64 | m_FloatValues: {} 65 | m_TransitionOverrides: {} 66 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 1.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Floor_Type 1 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Color: {r: 0.5471698, g: 0.2761659, b: 0.2761659, a: 1} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | m_BuildTextureStacks: [] 80 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 2.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Floor_Type 2 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Color: {r: 0.3183564, g: 0.54901963, b: 0.27450982, a: 1} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | m_BuildTextureStacks: [] 80 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 3.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Floor_Type 3 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Color: {r: 0.27450982, g: 0.32399064, b: 0.54901963, a: 1} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | m_BuildTextureStacks: [] 80 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/Floor_Type 4.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Floor_Type 4 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Color: {r: 0.2541152, g: 0.09678712, b: 0.2735849, a: 1} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | m_BuildTextureStacks: [] 80 | -------------------------------------------------------------------------------- /Samples~/Simple/Materials/skin.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: skin 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: c8632dc8fbc0df44192c748354d6c827, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Color: {r: 0.82097983, g: 0.82097983, b: 0.82097983, a: 1} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} 79 | m_BuildTextureStacks: [] 80 | -------------------------------------------------------------------------------- /Runtime/TerrainTextureDetector.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Dropecho { 4 | public class TerrainTextureDetector { 5 | private Terrain terrain; 6 | private TerrainData terrainData; 7 | private Vector3 terrainPos; 8 | 9 | public TerrainTextureDetector() { 10 | terrain = Terrain.activeTerrain; 11 | terrainData = terrain?.terrainData; 12 | terrainPos = terrain ? terrain.transform.position : Vector3.zero; 13 | } 14 | 15 | public int GetMainTexture(Vector3 WorldPos) { 16 | // returns the zero-based index of the most dominant texture 17 | // on the main terrain at this world position. 18 | float[] mix = GetTextureMix(WorldPos); 19 | 20 | if (mix.Length == 0) { 21 | return -1; 22 | } 23 | 24 | float maxMix = 0; 25 | int maxIndex = 0; 26 | 27 | // loop through each mix value and find the maximum 28 | for (int n = 0; n < mix.Length; n++) { 29 | if (mix[n] > maxMix) { 30 | maxIndex = n; 31 | maxMix = mix[n]; 32 | } 33 | } 34 | return maxIndex; 35 | } 36 | 37 | public float[] GetTextureMix(Vector3 WorldPos) { 38 | if (terrainData == null) { 39 | return new float[] { }; 40 | } 41 | 42 | if ( 43 | WorldPos.x < terrainPos.x || WorldPos.x > terrainPos.x + terrainData.size.x || 44 | WorldPos.z < terrainPos.z || WorldPos.z > terrainPos.z + terrainData.size.y 45 | ) { 46 | return new float[] { }; 47 | } 48 | // returns an array containing the relative mix of textures 49 | // on the main terrain at this world position. 50 | 51 | // The number of values in the array will equal the number 52 | // of textures added to the terrain. 53 | 54 | // calculate which splat map cell the worldPos falls within (ignoring y) 55 | int mapX = (int)(((WorldPos.x - terrainPos.x) / terrainData.size.x) * terrainData.alphamapWidth); 56 | int mapZ = (int)(((WorldPos.z - terrainPos.z) / terrainData.size.z) * terrainData.alphamapHeight); 57 | 58 | // get the splat data for this cell as a 1x1xN 3d array (where N = number of textures) 59 | float[,,] splatmapData = terrainData.GetAlphamaps(mapX, mapZ, 1, 1); 60 | 61 | // extract the 3D array data to a 1D array: 62 | float[] cellMix = new float[splatmapData.GetUpperBound(2) + 1]; 63 | 64 | for (int n = 0; n < cellMix.Length; n++) { 65 | cellMix[n] = splatmapData[0, 0, n]; 66 | } 67 | return cellMix; 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /Samples~/Simple/Textures/skaterMaleA.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8632dc8fbc0df44192c748354d6c827 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 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 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | spriteSheet: 80 | serializedVersion: 2 81 | sprites: [] 82 | outline: [] 83 | physicsShape: [] 84 | bones: [] 85 | spriteID: 86 | internalID: 0 87 | vertices: [] 88 | indices: 89 | edges: [] 90 | weights: [] 91 | secondaryTextures: [] 92 | nameFileIdTable: {} 93 | spritePackingTag: 94 | pSDRemoveMatte: 0 95 | pSDShowRemoveMatteOption: 0 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | An "automatic" footstep detector for humanoid animators. 2 | 3 | This can be setup to automatically detect footsteps, or you can setup animation events and trigger the footstep detector through those, allowing you 4 | to use just the surface detection part. 5 | 6 | An example audio setup is included (the foot step audio component). 7 | 8 | Surface types can be detected in a variety of ways, by tag, material, terrain texture index, or by attaching a FootStepSurface component. 9 | 10 | [Example Video](https://www.youtube.com/watch?v=BFf3PyW09tQ) 11 | 12 | 13 | ## Install 14 | To use this, install it through the package manager. 15 | 16 | You can click on the code button in the top right, copy that or just copy this 17 | ```git@github.com:dropecho/unity_footstep.git``` 18 | 19 | Open unity, and open the package manager, in the dropdown select install from git, and paste that in. 20 | 21 | ![image](https://user-images.githubusercontent.com/316782/133017967-0cfd5087-bf10-4df3-87fe-cd46549edba8.png) 22 | 23 | ![image](https://user-images.githubusercontent.com/316782/133018219-fe062677-fe74-483b-a416-a82d81b8fc9d.png) 24 | 25 | It should then show up in the list of installed packages 26 | ![image](https://user-images.githubusercontent.com/316782/142772781-1e59901a-db67-4765-ba4d-c913f4a7925f.png) 27 | 28 | ## Quickstart 29 | 30 | For the most basic setup, do this 31 | ![image](https://user-images.githubusercontent.com/316782/146982575-54f79832-41af-4026-bdda-bcf1788be5c9.png) 32 | You should be able to start playmode and have it begin working. 33 | 34 | Look at usage below for more details. 35 | 36 | ## Usage 37 | 38 | Attach a foot step detector to the desired game object and assign the animator. 39 | ![image](https://user-images.githubusercontent.com/316782/146982675-095cc9e7-0693-455a-9be6-d0fbdc157e39.png) 40 | 41 | 42 | Create a surface type (under dropecho/character/surfacetype), and setup the desired data. 43 | ![image](https://user-images.githubusercontent.com/316782/146982748-27177d25-ea26-4a53-98ea-a5ca9babfc75.png) 44 | 45 | Assign the surface type to the foot step detector. 46 | ![image](https://user-images.githubusercontent.com/316782/146983018-685d61d1-e0f2-430f-96fb-5425cc3ed305.png) 47 | 48 | 49 | To play audio, attach a foot step audio component, and assign a surface type and audio clip, it will 50 | play the clip based on either the surface type index (i.e. surface 0 is clip 0), or the default clip if no surface is detected. 51 | ![image](https://user-images.githubusercontent.com/316782/146982826-7c73b388-e1fc-4bfa-a973-fef58b3d2b27.png) 52 | 53 | -------------------------------------------------------------------------------- /Samples~/Simple/Models/characterMedium.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acf2b943d17916842b30544ebc84673f 3 | ModelImporter: 4 | serializedVersion: 21202 5 | internalIDToNameTable: [] 6 | externalObjects: 7 | - first: 8 | type: UnityEngine:Material 9 | assembly: UnityEngine.CoreModule 10 | name: skin 11 | second: {fileID: 2100000, guid: 98bab7a8e1d66be48a51bfcc26c275c8, type: 2} 12 | materials: 13 | materialImportMode: 2 14 | materialName: 0 15 | materialSearch: 1 16 | materialLocation: 1 17 | animations: 18 | legacyGenerateAnimations: 4 19 | bakeSimulation: 0 20 | resampleCurves: 1 21 | optimizeGameObjects: 0 22 | removeConstantScaleCurves: 1 23 | motionNodeName: 24 | rigImportErrors: 25 | rigImportWarnings: 26 | animationImportErrors: 27 | animationImportWarnings: 28 | animationRetargetingWarnings: 29 | animationDoRetargetingWarnings: 0 30 | importAnimatedCustomProperties: 0 31 | importConstraints: 0 32 | animationCompression: 3 33 | animationRotationError: 0.5 34 | animationPositionError: 0.5 35 | animationScaleError: 0.5 36 | animationWrapMode: 0 37 | extraExposedTransformPaths: [] 38 | extraUserProperties: [] 39 | clipAnimations: [] 40 | isReadable: 0 41 | meshes: 42 | lODScreenPercentages: [] 43 | globalScale: 1 44 | meshCompression: 0 45 | addColliders: 0 46 | useSRGBMaterialColor: 1 47 | sortHierarchyByName: 1 48 | importVisibility: 1 49 | importBlendShapes: 1 50 | importCameras: 1 51 | importLights: 1 52 | nodeNameCollisionStrategy: 1 53 | fileIdsGeneration: 2 54 | swapUVChannels: 0 55 | generateSecondaryUV: 0 56 | useFileUnits: 1 57 | keepQuads: 0 58 | weldVertices: 1 59 | bakeAxisConversion: 0 60 | preserveHierarchy: 0 61 | skinWeightsMode: 0 62 | maxBonesPerVertex: 4 63 | minBoneWeight: 0.001 64 | optimizeBones: 0 65 | meshOptimizationFlags: -1 66 | indexFormat: 0 67 | secondaryUVAngleDistortion: 8 68 | secondaryUVAreaDistortion: 15.000001 69 | secondaryUVHardAngle: 88 70 | secondaryUVMarginMethod: 1 71 | secondaryUVMinLightmapResolution: 40 72 | secondaryUVMinObjectScale: 1 73 | secondaryUVPackMargin: 4 74 | useFileScale: 1 75 | tangentSpace: 76 | normalSmoothAngle: 60 77 | normalImportMode: 0 78 | tangentImportMode: 3 79 | normalCalculationMode: 4 80 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 81 | blendShapeNormalImportMode: 1 82 | normalSmoothingSource: 0 83 | referencedClips: [] 84 | importAnimation: 1 85 | humanDescription: 86 | serializedVersion: 3 87 | human: [] 88 | skeleton: [] 89 | armTwist: 0.5 90 | foreArmTwist: 0.5 91 | upperLegTwist: 0.5 92 | legTwist: 0.5 93 | armStretch: 0.05 94 | legStretch: 0.05 95 | feetSpacing: 0 96 | globalScale: 1 97 | rootMotionBoneName: 98 | hasTranslationDoF: 0 99 | hasExtraRoot: 1 100 | skeletonHasParents: 1 101 | lastHumanDescriptionAvatarSource: {instanceID: 0} 102 | autoGenerateAvatarMappingIfUnspecified: 1 103 | animationType: 3 104 | humanoidOversampling: 1 105 | avatarSetup: 1 106 | addHumanoidExtraRootOnlyWhenUsingAvatar: 1 107 | additionalBone: 0 108 | userData: 109 | assetBundleName: 110 | assetBundleVariant: 111 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations/Events.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1101 &-8542364250125032470 4 | AnimatorStateTransition: 5 | m_ObjectHideFlags: 1 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: 10 | m_Conditions: [] 11 | m_DstStateMachine: {fileID: 0} 12 | m_DstState: {fileID: 1998966068572553983} 13 | m_Solo: 0 14 | m_Mute: 0 15 | m_IsExit: 0 16 | serializedVersion: 3 17 | m_TransitionDuration: 0.25 18 | m_TransitionOffset: 0 19 | m_ExitTime: 0.25 20 | m_HasExitTime: 1 21 | m_HasFixedDuration: 1 22 | m_InterruptionSource: 0 23 | m_OrderedInterruption: 1 24 | m_CanTransitionToSelf: 1 25 | --- !u!1107 &-7985421809313213266 26 | AnimatorStateMachine: 27 | serializedVersion: 6 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: Base Layer 33 | m_ChildStates: 34 | - serializedVersion: 1 35 | m_State: {fileID: 1998966068572553983} 36 | m_Position: {x: 380, y: 330, z: 0} 37 | - serializedVersion: 1 38 | m_State: {fileID: -5699650958809165449} 39 | m_Position: {x: 90, y: 330, z: 0} 40 | m_ChildStateMachines: [] 41 | m_AnyStateTransitions: [] 42 | m_EntryTransitions: [] 43 | m_StateMachineTransitions: {} 44 | m_StateMachineBehaviours: [] 45 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 46 | m_EntryPosition: {x: 50, y: 120, z: 0} 47 | m_ExitPosition: {x: 800, y: 120, z: 0} 48 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 49 | m_DefaultState: {fileID: -5699650958809165449} 50 | --- !u!1102 &-5699650958809165449 51 | AnimatorState: 52 | serializedVersion: 6 53 | m_ObjectHideFlags: 1 54 | m_CorrespondingSourceObject: {fileID: 0} 55 | m_PrefabInstance: {fileID: 0} 56 | m_PrefabAsset: {fileID: 0} 57 | m_Name: Root|Idle 58 | m_Speed: 1 59 | m_CycleOffset: 0 60 | m_Transitions: 61 | - {fileID: -8542364250125032470} 62 | m_StateMachineBehaviours: [] 63 | m_Position: {x: 50, y: 50, z: 0} 64 | m_IKOnFeet: 0 65 | m_WriteDefaultValues: 1 66 | m_Mirror: 0 67 | m_SpeedParameterActive: 0 68 | m_MirrorParameterActive: 0 69 | m_CycleOffsetParameterActive: 0 70 | m_TimeParameterActive: 0 71 | m_Motion: {fileID: 2910742486769232160, guid: 33dbac15ab8f1cb41b22e2e4c6cacd5b, type: 3} 72 | m_Tag: 73 | m_SpeedParameter: 74 | m_MirrorParameter: 75 | m_CycleOffsetParameter: 76 | m_TimeParameter: 77 | --- !u!91 &9100000 78 | AnimatorController: 79 | m_ObjectHideFlags: 0 80 | m_CorrespondingSourceObject: {fileID: 0} 81 | m_PrefabInstance: {fileID: 0} 82 | m_PrefabAsset: {fileID: 0} 83 | m_Name: Events 84 | serializedVersion: 5 85 | m_AnimatorParameters: [] 86 | m_AnimatorLayers: 87 | - serializedVersion: 5 88 | m_Name: Base Layer 89 | m_StateMachine: {fileID: -7985421809313213266} 90 | m_Mask: {fileID: 0} 91 | m_Motions: [] 92 | m_Behaviours: [] 93 | m_BlendingMode: 0 94 | m_SyncedLayerIndex: -1 95 | m_DefaultWeight: 0 96 | m_IKPass: 0 97 | m_SyncedLayerAffectsTiming: 0 98 | m_Controller: {fileID: 9100000} 99 | --- !u!1102 &1998966068572553983 100 | AnimatorState: 101 | serializedVersion: 6 102 | m_ObjectHideFlags: 1 103 | m_CorrespondingSourceObject: {fileID: 0} 104 | m_PrefabInstance: {fileID: 0} 105 | m_PrefabAsset: {fileID: 0} 106 | m_Name: Root|Run (1) 0 107 | m_Speed: 1 108 | m_CycleOffset: 0 109 | m_Transitions: [] 110 | m_StateMachineBehaviours: [] 111 | m_Position: {x: 50, y: 50, z: 0} 112 | m_IKOnFeet: 0 113 | m_WriteDefaultValues: 1 114 | m_Mirror: 0 115 | m_SpeedParameterActive: 0 116 | m_MirrorParameterActive: 0 117 | m_CycleOffsetParameterActive: 0 118 | m_TimeParameterActive: 0 119 | m_Motion: {fileID: -1105865320849827412, guid: 9d6cfe2da1a330b4fa8ac7a2389eb477, type: 3} 120 | m_Tag: 121 | m_SpeedParameter: 122 | m_MirrorParameter: 123 | m_CycleOffsetParameter: 124 | m_TimeParameter: 125 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations/Auto Detect 1.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1101 &-8989728433653035629 4 | AnimatorStateTransition: 5 | m_ObjectHideFlags: 1 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: 10 | m_Conditions: [] 11 | m_DstStateMachine: {fileID: 0} 12 | m_DstState: {fileID: 5841346884182634275} 13 | m_Solo: 0 14 | m_Mute: 0 15 | m_IsExit: 0 16 | serializedVersion: 3 17 | m_TransitionDuration: 0.25 18 | m_TransitionOffset: 0 19 | m_ExitTime: 0.25 20 | m_HasExitTime: 1 21 | m_HasFixedDuration: 1 22 | m_InterruptionSource: 0 23 | m_OrderedInterruption: 1 24 | m_CanTransitionToSelf: 1 25 | --- !u!1107 &-7985421809313213266 26 | AnimatorStateMachine: 27 | serializedVersion: 6 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: Base Layer 33 | m_ChildStates: 34 | - serializedVersion: 1 35 | m_State: {fileID: 5841346884182634275} 36 | m_Position: {x: 407, y: 262, z: 0} 37 | - serializedVersion: 1 38 | m_State: {fileID: -5699650958809165449} 39 | m_Position: {x: 90, y: 330, z: 0} 40 | m_ChildStateMachines: [] 41 | m_AnyStateTransitions: [] 42 | m_EntryTransitions: [] 43 | m_StateMachineTransitions: {} 44 | m_StateMachineBehaviours: [] 45 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 46 | m_EntryPosition: {x: 50, y: 120, z: 0} 47 | m_ExitPosition: {x: 800, y: 120, z: 0} 48 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 49 | m_DefaultState: {fileID: -5699650958809165449} 50 | --- !u!1102 &-5699650958809165449 51 | AnimatorState: 52 | serializedVersion: 6 53 | m_ObjectHideFlags: 1 54 | m_CorrespondingSourceObject: {fileID: 0} 55 | m_PrefabInstance: {fileID: 0} 56 | m_PrefabAsset: {fileID: 0} 57 | m_Name: Root|Idle 58 | m_Speed: 1 59 | m_CycleOffset: 0 60 | m_Transitions: 61 | - {fileID: -8989728433653035629} 62 | m_StateMachineBehaviours: [] 63 | m_Position: {x: 50, y: 50, z: 0} 64 | m_IKOnFeet: 0 65 | m_WriteDefaultValues: 1 66 | m_Mirror: 0 67 | m_SpeedParameterActive: 0 68 | m_MirrorParameterActive: 0 69 | m_CycleOffsetParameterActive: 0 70 | m_TimeParameterActive: 0 71 | m_Motion: {fileID: 2910742486769232160, guid: 33dbac15ab8f1cb41b22e2e4c6cacd5b, type: 3} 72 | m_Tag: 73 | m_SpeedParameter: 74 | m_MirrorParameter: 75 | m_CycleOffsetParameter: 76 | m_TimeParameter: 77 | --- !u!91 &9100000 78 | AnimatorController: 79 | m_ObjectHideFlags: 0 80 | m_CorrespondingSourceObject: {fileID: 0} 81 | m_PrefabInstance: {fileID: 0} 82 | m_PrefabAsset: {fileID: 0} 83 | m_Name: Auto Detect 1 84 | serializedVersion: 5 85 | m_AnimatorParameters: [] 86 | m_AnimatorLayers: 87 | - serializedVersion: 5 88 | m_Name: Base Layer 89 | m_StateMachine: {fileID: -7985421809313213266} 90 | m_Mask: {fileID: 0} 91 | m_Motions: [] 92 | m_Behaviours: [] 93 | m_BlendingMode: 0 94 | m_SyncedLayerIndex: -1 95 | m_DefaultWeight: 0 96 | m_IKPass: 0 97 | m_SyncedLayerAffectsTiming: 0 98 | m_Controller: {fileID: 9100000} 99 | --- !u!1102 &5841346884182634275 100 | AnimatorState: 101 | serializedVersion: 6 102 | m_ObjectHideFlags: 1 103 | m_CorrespondingSourceObject: {fileID: 0} 104 | m_PrefabInstance: {fileID: 0} 105 | m_PrefabAsset: {fileID: 0} 106 | m_Name: Root|Run (1) 107 | m_Speed: 1 108 | m_CycleOffset: 0 109 | m_Transitions: [] 110 | m_StateMachineBehaviours: [] 111 | m_Position: {x: 50, y: 50, z: 0} 112 | m_IKOnFeet: 0 113 | m_WriteDefaultValues: 1 114 | m_Mirror: 0 115 | m_SpeedParameterActive: 0 116 | m_MirrorParameterActive: 0 117 | m_CycleOffsetParameterActive: 0 118 | m_TimeParameterActive: 0 119 | m_Motion: {fileID: -1105865320849827412, guid: 8ad03b5e5a7472d4892844f14c76d002, type: 3} 120 | m_Tag: 121 | m_SpeedParameter: 122 | m_MirrorParameter: 123 | m_CycleOffsetParameter: 124 | m_TimeParameter: 125 | -------------------------------------------------------------------------------- /Runtime/FootStepDetector.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | using UnityEngine.Events; 4 | 5 | namespace Dropecho { 6 | public struct FootStepEvent { 7 | public float velocity; 8 | public Vector3 position; 9 | public FootStepSurfaceType surface; 10 | 11 | public FootStepEvent(float velocity, Vector3 position, FootStepSurfaceType surface) { 12 | this.velocity = velocity; 13 | this.position = position; 14 | this.surface = surface; 15 | } 16 | } 17 | 18 | public class FootStepDetector : MonoBehaviour { 19 | [Tooltip("Should the player attempt to auto detect footsteps, if false, you can still trigger this via events.")] 20 | public bool autoDetectFootSteps; 21 | 22 | [SerializeField, Tooltip("The animator to detect footsteps for (must be humanoid).")] 23 | [field: SerializeField] public Animator animator { get; private set; } 24 | 25 | [Tooltip("The minimum time between playing footstep sounds.")] 26 | [field: SerializeField] public float minTimeBetweenFootsteps { get; private set; } = 0.33f; 27 | 28 | [Tooltip("The height at which a foot is marked as no longer being on the ground (so it will trigger a sound later).")] 29 | [field: SerializeField] public float heightToMarkOffGround { get; private set; } = 0.02f; 30 | 31 | [Tooltip("The height at which a foot is marked as being on the ground (so it will trigger a sound if was marked as off the ground).")] 32 | [field: SerializeField] public float heightToMarkOnGround { get; private set; } = 0.02f; 33 | 34 | [Tooltip("A list of surface types that will trigger footsteps.")] 35 | [field: SerializeField] public List surfaceTypes { get; private set; } 36 | 37 | public UnityEvent OnLeftFootStep = new UnityEvent(); 38 | public UnityEvent OnRightFootStep = new UnityEvent(); 39 | public UnityEvent OnFootStep = new UnityEvent(); 40 | 41 | float _timeSinceLastEvent = 0; 42 | 43 | float _originalLFHeight; 44 | float _originalRFHeight; 45 | Transform _LFTransform; 46 | Transform _RFTransform; 47 | float _previousLFHeight; 48 | float _previousRFHeight; 49 | Vector3 _previousPosition; 50 | bool _LFOffGround = false; 51 | bool _RFOffGround = false; 52 | 53 | void OnEnable() { 54 | if (animator == null) { 55 | return; 56 | } 57 | _originalLFHeight = animator.GetBoneTransform(HumanBodyBones.LeftFoot).position.y - transform.position.y; 58 | _originalRFHeight = animator.GetBoneTransform(HumanBodyBones.RightFoot).position.y - transform.position.y; 59 | 60 | _LFTransform = animator.GetBoneTransform(HumanBodyBones.LeftFoot); 61 | _RFTransform = animator.GetBoneTransform(HumanBodyBones.RightFoot); 62 | } 63 | 64 | void OnValidate() { 65 | if (animator == null && autoDetectFootSteps) { 66 | Debug.LogWarning("Foot Step Detector: Cannot auto detect foot steps when animator is null."); 67 | } 68 | } 69 | 70 | void LateUpdate() { 71 | if (animator == null) { 72 | return; 73 | } 74 | 75 | if (autoDetectFootSteps) { 76 | CheckLeftFoot(); 77 | CheckRightFoot(); 78 | } 79 | _timeSinceLastEvent += Time.deltaTime; 80 | _previousPosition = transform.position; 81 | } 82 | 83 | void CheckLeftFoot() { 84 | var currentLFHeight = _LFTransform.position.y - transform.position.y; 85 | var LFVelocity = currentLFHeight - _previousLFHeight; 86 | _previousLFHeight = currentLFHeight; 87 | 88 | if (_LFOffGround == false && currentLFHeight > _originalLFHeight + heightToMarkOffGround) { 89 | _LFOffGround = true; 90 | } 91 | 92 | if (LFVelocity < 0 && currentLFHeight <= _originalLFHeight + heightToMarkOnGround && _LFOffGround && _timeSinceLastEvent > minTimeBetweenFootsteps) { 93 | var evt = new FootStepEvent(LFVelocity, _LFTransform.position, GetSurfaceType(_LFTransform.position)); 94 | OnLeftFootStep?.Invoke(evt); 95 | OnFootStep?.Invoke(evt); 96 | _LFOffGround = false; 97 | _timeSinceLastEvent = 0; 98 | } 99 | } 100 | 101 | void CheckRightFoot() { 102 | var currentRFHeight = _RFTransform.position.y - transform.position.y; 103 | var RFVelocity = currentRFHeight - _previousRFHeight; 104 | _previousRFHeight = currentRFHeight; 105 | 106 | if (_RFOffGround == false && currentRFHeight > _originalRFHeight + heightToMarkOffGround) { 107 | _RFOffGround = true; 108 | } 109 | 110 | var footIsTravelingDownwards = RFVelocity < 0; 111 | var footIsOnGround = currentRFHeight <= _originalRFHeight + heightToMarkOnGround; 112 | 113 | if (footIsOnGround && footIsTravelingDownwards && _RFOffGround && _timeSinceLastEvent > minTimeBetweenFootsteps) { 114 | var evt = new FootStepEvent(RFVelocity, _RFTransform.position, GetSurfaceType(_RFTransform.position)); 115 | OnRightFootStep?.Invoke(evt); 116 | OnFootStep?.Invoke(evt); 117 | _RFOffGround = false; 118 | _timeSinceLastEvent = 0; 119 | } 120 | } 121 | 122 | // These exist so the events can be triggered by animations, allowing surface detection without the auto detect of footsteps. 123 | public void LeftFootStep() { 124 | var evt = new FootStepEvent() { velocity = 1, position = _LFTransform.position, surface = GetSurfaceType(_LFTransform.position) }; 125 | OnLeftFootStep?.Invoke(evt); 126 | OnFootStep?.Invoke(evt); 127 | _timeSinceLastEvent = 0; 128 | } 129 | 130 | public void RightFootStep() { 131 | var evt = new FootStepEvent() { velocity = 1, position = _RFTransform.position, surface = GetSurfaceType(_RFTransform.position) }; 132 | OnRightFootStep?.Invoke(evt); 133 | OnFootStep?.Invoke(evt); 134 | _timeSinceLastEvent = 0; 135 | } 136 | 137 | public void FootStep() { 138 | var velocity = (transform.position - _previousPosition).magnitude; 139 | var evt = new FootStepEvent() { velocity = 1, position = transform.position, surface = GetSurfaceType(transform.position) }; 140 | OnFootStep?.Invoke(evt); 141 | _timeSinceLastEvent = 0; 142 | } 143 | 144 | FootStepSurfaceType GetSurfaceType(Vector3 position) { 145 | foreach (var type in surfaceTypes) { 146 | if (type.CheckIfPointOnSurface(position)) { 147 | return type; 148 | } 149 | } 150 | 151 | return null; 152 | } 153 | } 154 | } -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Don't use tabs for indentation. 7 | [*] 8 | indent_style = space 9 | # (Please don't specify an indent_size here; that has too many unintended consequences.) 10 | 11 | # Code files 12 | [*.{cs,csx,vb,vbx}] 13 | indent_size = 2 14 | insert_final_newline = true 15 | charset = utf-8-bom 16 | 17 | # XML project files 18 | [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] 19 | indent_size = 2 20 | 21 | # XML config files 22 | [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] 23 | indent_size = 2 24 | 25 | # JSON files 26 | [*.json] 27 | indent_size = 2 28 | 29 | # Powershell files 30 | [*.ps1] 31 | indent_size = 2 32 | 33 | # Shell script files 34 | [*.sh] 35 | end_of_line = lf 36 | indent_size = 2 37 | 38 | # Dotnet code style settings: 39 | [*.{cs,vb}] 40 | # Sort using and Import directives with System.* appearing first 41 | dotnet_sort_system_directives_first = true 42 | # Avoid "this." and "Me." if not necessary 43 | dotnet_style_qualification_for_field = false:refactoring 44 | dotnet_style_qualification_for_property = false:refactoring 45 | dotnet_style_qualification_for_method = false:refactoring 46 | dotnet_style_qualification_for_event = false:refactoring 47 | 48 | # Use language keywords instead of framework type names for type references 49 | dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion 50 | dotnet_style_predefined_type_for_member_access = true:suggestion 51 | 52 | # Suggest more modern language features when available 53 | dotnet_style_object_initializer = true:suggestion 54 | dotnet_style_collection_initializer = true:suggestion 55 | dotnet_style_coalesce_expression = true:suggestion 56 | dotnet_style_null_propagation = true:suggestion 57 | dotnet_style_explicit_tuple_names = true:suggestion 58 | 59 | # Non-private static fields are PascalCase 60 | dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = warning 61 | dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields 62 | dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style 63 | 64 | dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field 65 | dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected 66 | dotnet_naming_symbols.non_private_static_fields.required_modifiers = static 67 | 68 | dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case 69 | 70 | # Non-private readonly fields are PascalCase 71 | dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.severity = warning 72 | dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.symbols = non_private_readonly_fields 73 | dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.style = non_private_readonly_field_style 74 | 75 | dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field 76 | dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected 77 | dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly 78 | 79 | dotnet_naming_style.non_private_readonly_field_style.capitalization = pascal_case 80 | 81 | # Constants are PascalCase 82 | dotnet_naming_rule.constants_should_be_pascal_case.severity = warning 83 | dotnet_naming_rule.constants_should_be_pascal_case.symbols = constants 84 | dotnet_naming_rule.constants_should_be_pascal_case.style = constant_style 85 | 86 | dotnet_naming_symbols.constants.applicable_kinds = field, local 87 | dotnet_naming_symbols.constants.required_modifiers = const 88 | 89 | dotnet_naming_style.constant_style.capitalization = pascal_case 90 | 91 | # Static fields are camelCase and start with s_ 92 | dotnet_naming_rule.static_fields_should_be_camel_case.severity = warning 93 | dotnet_naming_rule.static_fields_should_be_camel_case.symbols = static_fields 94 | # dotnet_naming_rule.static_fields_should_be_camel_case.style = static_field_style 95 | 96 | dotnet_naming_symbols.static_fields.applicable_kinds = field 97 | dotnet_naming_symbols.static_fields.required_modifiers = static 98 | 99 | # dotnet_naming_style.static_field_style.capitalization = camel_case 100 | # dotnet_naming_style.static_field_style.required_prefix = s_ 101 | 102 | # Private Instance fields are camelCase and start with _ 103 | dotnet_naming_rule.private_instance_fields_should_be_camel_case.severity = warning 104 | dotnet_naming_rule.private_instance_fields_should_be_camel_case.symbols = private_instance_fields 105 | dotnet_naming_rule.private_instance_fields_should_be_camel_case.style = private_instance_field_style 106 | 107 | dotnet_naming_symbols.private_instance_fields.applicable_kinds = field 108 | dotnet_naming_symbols.private_instance_fields.applicable_accessibilities = private 109 | 110 | dotnet_naming_style.private_instance_field_style.capitalization = camel_case 111 | dotnet_naming_style.private_instance_field_style.required_prefix = _ 112 | 113 | # Locals and parameters are camelCase 114 | dotnet_naming_rule.locals_should_be_camel_case.severity = warning 115 | dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters 116 | dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style 117 | 118 | dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local 119 | 120 | dotnet_naming_style.camel_case_style.capitalization = camel_case 121 | 122 | # Local functions are PascalCase 123 | dotnet_naming_rule.local_functions_should_be_pascal_case.severity = warning 124 | dotnet_naming_rule.local_functions_should_be_pascal_case.symbols = local_functions 125 | dotnet_naming_rule.local_functions_should_be_pascal_case.style = local_function_style 126 | 127 | dotnet_naming_symbols.local_functions.applicable_kinds = local_function 128 | 129 | dotnet_naming_style.local_function_style.capitalization = pascal_case 130 | 131 | # Public Instance fields are camelCase 132 | dotnet_naming_rule.public_instance_fields_should_be_camel_case.severity = warning 133 | dotnet_naming_rule.public_instance_fields_should_be_camel_case.symbols = public_instance_fields 134 | dotnet_naming_rule.public_instance_fields_should_be_camel_case.style = public_instance_field_style 135 | 136 | dotnet_naming_symbols.public_instance_fields.applicable_kinds = field 137 | dotnet_naming_symbols.public_instance_fields.applicable_accessibilities = public 138 | 139 | dotnet_naming_style.public_instance_field_style.capitalization = camel_case 140 | 141 | # By default, name items with PascalCase 142 | dotnet_naming_rule.members_should_be_pascal_case.severity = warning 143 | dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members 144 | dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style 145 | 146 | dotnet_naming_symbols.all_members.applicable_kinds = * 147 | 148 | dotnet_naming_style.pascal_case_style.capitalization = pascal_case 149 | 150 | # CSharp code style settings: 151 | [*.cs] 152 | # Newline settings 153 | csharp_new_line_before_open_brace = false 154 | csharp_new_line_before_else = false 155 | csharp_new_line_before_catch = false 156 | csharp_new_line_before_finally = false 157 | csharp_new_line_before_members_in_object_initializers = true 158 | csharp_new_line_before_members_in_anonymous_types = true 159 | csharp_new_line_between_query_expression_clauses = true 160 | 161 | # Indentation preferences 162 | csharp_indent_block_contents = true 163 | csharp_indent_braces = false 164 | csharp_indent_case_contents = true 165 | csharp_indent_case_contents_when_block = false 166 | csharp_indent_switch_labels = true 167 | csharp_indent_labels = flush_left 168 | 169 | # Prefer explicit type over "var" 170 | csharp_style_var_for_built_in_types = false:suggestion 171 | csharp_style_var_when_type_is_apparent = false:suggestion 172 | csharp_style_var_elsewhere = false:suggestion 173 | 174 | # Prefer method-like constructs to have a block body 175 | csharp_style_expression_bodied_methods = false:none 176 | csharp_style_expression_bodied_constructors = false:none 177 | csharp_style_expression_bodied_operators = false:none 178 | 179 | # Prefer property-like constructs to have an expression-body 180 | csharp_style_expression_bodied_properties = true:none 181 | csharp_style_expression_bodied_indexers = true:none 182 | csharp_style_expression_bodied_accessors = true:none 183 | 184 | # Suggest more modern language features when available 185 | csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion 186 | csharp_style_pattern_matching_over_as_with_null_check = true:suggestion 187 | csharp_style_inlined_variable_declaration = true:suggestion 188 | csharp_style_throw_expression = true:suggestion 189 | csharp_style_conditional_delegate_call = true:suggestion 190 | 191 | # Space preferences 192 | csharp_space_after_cast = false 193 | csharp_space_after_colon_in_inheritance_clause = true 194 | csharp_space_after_comma = true 195 | csharp_space_after_dot = false 196 | csharp_space_after_keywords_in_control_flow_statements = true 197 | csharp_space_after_semicolon_in_for_statement = true 198 | csharp_space_around_binary_operators = before_and_after 199 | csharp_space_around_declaration_statements = do_not_ignore 200 | csharp_space_before_colon_in_inheritance_clause = true 201 | csharp_space_before_comma = false 202 | csharp_space_before_dot = false 203 | csharp_space_before_open_square_brackets = false 204 | csharp_space_before_semicolon_in_for_statement = false 205 | csharp_space_between_empty_square_brackets = false 206 | csharp_space_between_method_call_empty_parameter_list_parentheses = false 207 | csharp_space_between_method_call_name_and_opening_parenthesis = false 208 | csharp_space_between_method_call_parameter_list_parentheses = false 209 | csharp_space_between_method_declaration_empty_parameter_list_parentheses = false 210 | csharp_space_between_method_declaration_name_and_open_parenthesis = false 211 | csharp_space_between_method_declaration_parameter_list_parentheses = false 212 | csharp_space_between_parentheses = false 213 | csharp_space_between_square_brackets = false 214 | 215 | # Blocks are allowed 216 | csharp_prefer_braces = true:silent 217 | csharp_preserve_single_line_blocks = true 218 | csharp_preserve_single_line_statements = true 219 | -------------------------------------------------------------------------------- /Samples~/Simple/Character (Auto Detect).prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &5487889665871764745 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 5487889665871764759} 12 | - component: {fileID: 5487889665871764757} 13 | - component: {fileID: 5487889665871764756} 14 | - component: {fileID: 1322046304540812157} 15 | m_Layer: 0 16 | m_Name: Character (Auto Detect) 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &5487889665871764759 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 5487889665871764745} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: -3.99, y: 0, z: -2.65} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_ConstrainProportionsScale: 0 33 | m_Children: 34 | - {fileID: 5450023975458200406} 35 | - {fileID: 5487889666840567822} 36 | m_Father: {fileID: 0} 37 | m_RootOrder: 0 38 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 39 | --- !u!95 &5487889665871764757 40 | Animator: 41 | serializedVersion: 4 42 | m_ObjectHideFlags: 0 43 | m_CorrespondingSourceObject: {fileID: 0} 44 | m_PrefabInstance: {fileID: 0} 45 | m_PrefabAsset: {fileID: 0} 46 | m_GameObject: {fileID: 5487889665871764745} 47 | m_Enabled: 1 48 | m_Avatar: {fileID: 9000000, guid: acf2b943d17916842b30544ebc84673f, type: 3} 49 | m_Controller: {fileID: 9100000, guid: b160de1e5a4baa64587a46e276268650, type: 2} 50 | m_CullingMode: 0 51 | m_UpdateMode: 0 52 | m_ApplyRootMotion: 1 53 | m_LinearVelocityBlending: 0 54 | m_StabilizeFeet: 0 55 | m_WarningMessage: 56 | m_HasTransformHierarchy: 1 57 | m_AllowConstantClipSamplingOptimization: 1 58 | m_KeepAnimatorControllerStateOnDisable: 0 59 | --- !u!114 &5487889665871764756 60 | MonoBehaviour: 61 | m_ObjectHideFlags: 0 62 | m_CorrespondingSourceObject: {fileID: 0} 63 | m_PrefabInstance: {fileID: 0} 64 | m_PrefabAsset: {fileID: 0} 65 | m_GameObject: {fileID: 5487889665871764745} 66 | m_Enabled: 1 67 | m_EditorHideFlags: 0 68 | m_Script: {fileID: 11500000, guid: 111ef61b7be484140b90e03e68c60461, type: 3} 69 | m_Name: 70 | m_EditorClassIdentifier: 71 | autoDetectFootSteps: 1 72 | k__BackingField: {fileID: 5487889665871764757} 73 | k__BackingField: 0.33 74 | k__BackingField: 0.05 75 | k__BackingField: 0.05 76 | k__BackingField: 77 | - {fileID: 11400000, guid: 075a5028dcc508d4483e507e5a5f8874, type: 2} 78 | - {fileID: 11400000, guid: 8040298941c0462429314a5edbb68374, type: 2} 79 | - {fileID: 11400000, guid: 700b5115a3c919f48b41d6013b5dffb0, type: 2} 80 | - {fileID: 11400000, guid: fa0fe4db1d55ad24db71890174e3e92e, type: 2} 81 | OnLeftFootStep: 82 | m_PersistentCalls: 83 | m_Calls: 84 | - m_Target: {fileID: 5487889666840567823} 85 | m_TargetAssemblyTypeName: Dropecho.FootStepAudio, com.dropecho.footstepplayer 86 | m_MethodName: OnFootStep 87 | m_Mode: 0 88 | m_Arguments: 89 | m_ObjectArgument: {fileID: 0} 90 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 91 | m_IntArgument: 0 92 | m_FloatArgument: 0 93 | m_StringArgument: 94 | m_BoolArgument: 0 95 | m_CallState: 2 96 | OnRightFootStep: 97 | m_PersistentCalls: 98 | m_Calls: 99 | - m_Target: {fileID: 5487889666840567823} 100 | m_TargetAssemblyTypeName: Dropecho.FootStepAudio, com.dropecho.footstepplayer 101 | m_MethodName: OnFootStep 102 | m_Mode: 0 103 | m_Arguments: 104 | m_ObjectArgument: {fileID: 0} 105 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 106 | m_IntArgument: 0 107 | m_FloatArgument: 0 108 | m_StringArgument: 109 | m_BoolArgument: 0 110 | m_CallState: 2 111 | OnFootStep: 112 | m_PersistentCalls: 113 | m_Calls: [] 114 | --- !u!114 &1322046304540812157 115 | MonoBehaviour: 116 | m_ObjectHideFlags: 0 117 | m_CorrespondingSourceObject: {fileID: 0} 118 | m_PrefabInstance: {fileID: 0} 119 | m_PrefabAsset: {fileID: 0} 120 | m_GameObject: {fileID: 5487889665871764745} 121 | m_Enabled: 1 122 | m_EditorHideFlags: 0 123 | m_Script: {fileID: 11500000, guid: ee40346acf17a8544a7dc94e57ed6b2c, type: 3} 124 | m_Name: 125 | m_EditorClassIdentifier: 126 | --- !u!1 &5487889666840567809 127 | GameObject: 128 | m_ObjectHideFlags: 0 129 | m_CorrespondingSourceObject: {fileID: 0} 130 | m_PrefabInstance: {fileID: 0} 131 | m_PrefabAsset: {fileID: 0} 132 | serializedVersion: 6 133 | m_Component: 134 | - component: {fileID: 5487889666840567822} 135 | - component: {fileID: 5487889666840567821} 136 | - component: {fileID: 5487889666840567823} 137 | m_Layer: 0 138 | m_Name: audio 139 | m_TagString: Untagged 140 | m_Icon: {fileID: 0} 141 | m_NavMeshLayer: 0 142 | m_StaticEditorFlags: 0 143 | m_IsActive: 1 144 | --- !u!4 &5487889666840567822 145 | Transform: 146 | m_ObjectHideFlags: 0 147 | m_CorrespondingSourceObject: {fileID: 0} 148 | m_PrefabInstance: {fileID: 0} 149 | m_PrefabAsset: {fileID: 0} 150 | m_GameObject: {fileID: 5487889666840567809} 151 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 152 | m_LocalPosition: {x: 0, y: 0, z: 0} 153 | m_LocalScale: {x: 1, y: 1, z: 1} 154 | m_ConstrainProportionsScale: 0 155 | m_Children: [] 156 | m_Father: {fileID: 5487889665871764759} 157 | m_RootOrder: 1 158 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 159 | --- !u!82 &5487889666840567821 160 | AudioSource: 161 | m_ObjectHideFlags: 0 162 | m_CorrespondingSourceObject: {fileID: 0} 163 | m_PrefabInstance: {fileID: 0} 164 | m_PrefabAsset: {fileID: 0} 165 | m_GameObject: {fileID: 5487889666840567809} 166 | m_Enabled: 1 167 | serializedVersion: 4 168 | OutputAudioMixerGroup: {fileID: 24300002, guid: 49d10c9f07f34484b9492e0e6ba26ec3, type: 2} 169 | m_audioClip: {fileID: 0} 170 | m_PlayOnAwake: 0 171 | m_Volume: 1 172 | m_Pitch: 1 173 | Loop: 0 174 | Mute: 0 175 | Spatialize: 0 176 | SpatializePostEffects: 0 177 | Priority: 128 178 | DopplerLevel: 1 179 | MinDistance: 1 180 | MaxDistance: 500 181 | Pan2D: 0 182 | rolloffMode: 0 183 | BypassEffects: 0 184 | BypassListenerEffects: 0 185 | BypassReverbZones: 0 186 | rolloffCustomCurve: 187 | serializedVersion: 2 188 | m_Curve: 189 | - serializedVersion: 3 190 | time: 0 191 | value: 1 192 | inSlope: 0 193 | outSlope: 0 194 | tangentMode: 0 195 | weightedMode: 0 196 | inWeight: 0.33333334 197 | outWeight: 0.33333334 198 | - serializedVersion: 3 199 | time: 1 200 | value: 0 201 | inSlope: 0 202 | outSlope: 0 203 | tangentMode: 0 204 | weightedMode: 0 205 | inWeight: 0.33333334 206 | outWeight: 0.33333334 207 | m_PreInfinity: 2 208 | m_PostInfinity: 2 209 | m_RotationOrder: 4 210 | panLevelCustomCurve: 211 | serializedVersion: 2 212 | m_Curve: 213 | - serializedVersion: 3 214 | time: 0 215 | value: 0 216 | inSlope: 0 217 | outSlope: 0 218 | tangentMode: 0 219 | weightedMode: 0 220 | inWeight: 0.33333334 221 | outWeight: 0.33333334 222 | m_PreInfinity: 2 223 | m_PostInfinity: 2 224 | m_RotationOrder: 4 225 | spreadCustomCurve: 226 | serializedVersion: 2 227 | m_Curve: 228 | - serializedVersion: 3 229 | time: 0 230 | value: 0 231 | inSlope: 0 232 | outSlope: 0 233 | tangentMode: 0 234 | weightedMode: 0 235 | inWeight: 0.33333334 236 | outWeight: 0.33333334 237 | m_PreInfinity: 2 238 | m_PostInfinity: 2 239 | m_RotationOrder: 4 240 | reverbZoneMixCustomCurve: 241 | serializedVersion: 2 242 | m_Curve: 243 | - serializedVersion: 3 244 | time: 0 245 | value: 1 246 | inSlope: 0 247 | outSlope: 0 248 | tangentMode: 0 249 | weightedMode: 0 250 | inWeight: 0.33333334 251 | outWeight: 0.33333334 252 | m_PreInfinity: 2 253 | m_PostInfinity: 2 254 | m_RotationOrder: 4 255 | --- !u!114 &5487889666840567823 256 | MonoBehaviour: 257 | m_ObjectHideFlags: 0 258 | m_CorrespondingSourceObject: {fileID: 0} 259 | m_PrefabInstance: {fileID: 0} 260 | m_PrefabAsset: {fileID: 0} 261 | m_GameObject: {fileID: 5487889666840567809} 262 | m_Enabled: 1 263 | m_EditorHideFlags: 0 264 | m_Script: {fileID: 11500000, guid: 80a9200dd942c354e82dfb8ed1f8057d, type: 3} 265 | m_Name: 266 | m_EditorClassIdentifier: 267 | source: {fileID: 5487889666840567821} 268 | defaultClip: {fileID: 8300000, guid: 2e03a5ba7bd7ba6408d37cde9148a676, type: 3} 269 | surfaces: 270 | - {fileID: 11400000, guid: 075a5028dcc508d4483e507e5a5f8874, type: 2} 271 | - {fileID: 11400000, guid: 8040298941c0462429314a5edbb68374, type: 2} 272 | - {fileID: 11400000, guid: 700b5115a3c919f48b41d6013b5dffb0, type: 2} 273 | - {fileID: 11400000, guid: fa0fe4db1d55ad24db71890174e3e92e, type: 2} 274 | clips: 275 | - {fileID: 8300000, guid: 2e03a5ba7bd7ba6408d37cde9148a676, type: 3} 276 | - {fileID: 8300000, guid: 04e4ecef067b7f94ebc296124f6e6102, type: 3} 277 | - {fileID: 8300000, guid: b4c976cc85a81d54786e9c296bf6de24, type: 3} 278 | - {fileID: 8300000, guid: 6986103b51ca08849957df9452f00b0e, type: 3} 279 | --- !u!1001 &5487889666532261053 280 | PrefabInstance: 281 | m_ObjectHideFlags: 0 282 | serializedVersion: 2 283 | m_Modification: 284 | m_TransformParent: {fileID: 5487889665871764759} 285 | m_Modifications: 286 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 287 | propertyPath: m_RootOrder 288 | value: 0 289 | objectReference: {fileID: 0} 290 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 291 | propertyPath: m_LocalPosition.x 292 | value: 0 293 | objectReference: {fileID: 0} 294 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 295 | propertyPath: m_LocalPosition.y 296 | value: 0 297 | objectReference: {fileID: 0} 298 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 299 | propertyPath: m_LocalPosition.z 300 | value: 0 301 | objectReference: {fileID: 0} 302 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 303 | propertyPath: m_LocalRotation.w 304 | value: 0.72932154 305 | objectReference: {fileID: 0} 306 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 307 | propertyPath: m_LocalRotation.x 308 | value: -0 309 | objectReference: {fileID: 0} 310 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 311 | propertyPath: m_LocalRotation.y 312 | value: 0.6841712 313 | objectReference: {fileID: 0} 314 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 315 | propertyPath: m_LocalRotation.z 316 | value: -0 317 | objectReference: {fileID: 0} 318 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 319 | propertyPath: m_LocalEulerAnglesHint.x 320 | value: 0 321 | objectReference: {fileID: 0} 322 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 323 | propertyPath: m_LocalEulerAnglesHint.y 324 | value: 86.341 325 | objectReference: {fileID: 0} 326 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 327 | propertyPath: m_LocalEulerAnglesHint.z 328 | value: 0 329 | objectReference: {fileID: 0} 330 | - target: {fileID: 919132149155446097, guid: acf2b943d17916842b30544ebc84673f, type: 3} 331 | propertyPath: m_Name 332 | value: characterMedium 333 | objectReference: {fileID: 0} 334 | - target: {fileID: 5866666021909216657, guid: acf2b943d17916842b30544ebc84673f, type: 3} 335 | propertyPath: m_Controller 336 | value: 337 | objectReference: {fileID: 9100000, guid: ed3d949a504d5044ca4b4d43bf2fc398, type: 2} 338 | m_RemovedComponents: 339 | - {fileID: 5866666021909216657, guid: acf2b943d17916842b30544ebc84673f, type: 3} 340 | m_SourcePrefab: {fileID: 100100000, guid: acf2b943d17916842b30544ebc84673f, type: 3} 341 | --- !u!4 &5450023975458200406 stripped 342 | Transform: 343 | m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 344 | m_PrefabInstance: {fileID: 5487889666532261053} 345 | m_PrefabAsset: {fileID: 0} 346 | -------------------------------------------------------------------------------- /Samples~/Simple/Character (Animation Events).prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &6258439626626473141 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 6258439626626473131} 12 | - component: {fileID: 6258439626626473129} 13 | - component: {fileID: 6258439626626473128} 14 | - component: {fileID: 624396305616839361} 15 | m_Layer: 0 16 | m_Name: Character (Animation Events) 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &6258439626626473131 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 6258439626626473141} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: -4.72, y: 0, z: -2.65} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_ConstrainProportionsScale: 0 33 | m_Children: 34 | - {fileID: 5859403926441433834} 35 | - {fileID: 6258439627864007090} 36 | m_Father: {fileID: 0} 37 | m_RootOrder: 0 38 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 39 | --- !u!95 &6258439626626473129 40 | Animator: 41 | serializedVersion: 4 42 | m_ObjectHideFlags: 0 43 | m_CorrespondingSourceObject: {fileID: 0} 44 | m_PrefabInstance: {fileID: 0} 45 | m_PrefabAsset: {fileID: 0} 46 | m_GameObject: {fileID: 6258439626626473141} 47 | m_Enabled: 1 48 | m_Avatar: {fileID: 9000000, guid: acf2b943d17916842b30544ebc84673f, type: 3} 49 | m_Controller: {fileID: 9100000, guid: ed3d949a504d5044ca4b4d43bf2fc398, type: 2} 50 | m_CullingMode: 0 51 | m_UpdateMode: 0 52 | m_ApplyRootMotion: 1 53 | m_LinearVelocityBlending: 0 54 | m_StabilizeFeet: 0 55 | m_WarningMessage: 56 | m_HasTransformHierarchy: 1 57 | m_AllowConstantClipSamplingOptimization: 1 58 | m_KeepAnimatorControllerStateOnDisable: 0 59 | --- !u!114 &6258439626626473128 60 | MonoBehaviour: 61 | m_ObjectHideFlags: 0 62 | m_CorrespondingSourceObject: {fileID: 0} 63 | m_PrefabInstance: {fileID: 0} 64 | m_PrefabAsset: {fileID: 0} 65 | m_GameObject: {fileID: 6258439626626473141} 66 | m_Enabled: 1 67 | m_EditorHideFlags: 0 68 | m_Script: {fileID: 11500000, guid: 111ef61b7be484140b90e03e68c60461, type: 3} 69 | m_Name: 70 | m_EditorClassIdentifier: 71 | autoDetectFootSteps: 0 72 | k__BackingField: {fileID: 6258439626626473129} 73 | k__BackingField: 0.33 74 | k__BackingField: 0.05 75 | k__BackingField: 0.05 76 | k__BackingField: 77 | - {fileID: 11400000, guid: 075a5028dcc508d4483e507e5a5f8874, type: 2} 78 | - {fileID: 11400000, guid: 8040298941c0462429314a5edbb68374, type: 2} 79 | - {fileID: 11400000, guid: 700b5115a3c919f48b41d6013b5dffb0, type: 2} 80 | - {fileID: 11400000, guid: fa0fe4db1d55ad24db71890174e3e92e, type: 2} 81 | OnLeftFootStep: 82 | m_PersistentCalls: 83 | m_Calls: 84 | - m_Target: {fileID: 6258439627864007091} 85 | m_TargetAssemblyTypeName: Dropecho.FootStepAudio, com.dropecho.footstepplayer 86 | m_MethodName: OnFootStep 87 | m_Mode: 0 88 | m_Arguments: 89 | m_ObjectArgument: {fileID: 0} 90 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 91 | m_IntArgument: 0 92 | m_FloatArgument: 0 93 | m_StringArgument: 94 | m_BoolArgument: 0 95 | m_CallState: 2 96 | OnRightFootStep: 97 | m_PersistentCalls: 98 | m_Calls: 99 | - m_Target: {fileID: 6258439627864007091} 100 | m_TargetAssemblyTypeName: Dropecho.FootStepAudio, com.dropecho.footstepplayer 101 | m_MethodName: OnFootStep 102 | m_Mode: 0 103 | m_Arguments: 104 | m_ObjectArgument: {fileID: 0} 105 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 106 | m_IntArgument: 0 107 | m_FloatArgument: 0 108 | m_StringArgument: 109 | m_BoolArgument: 0 110 | m_CallState: 2 111 | OnFootStep: 112 | m_PersistentCalls: 113 | m_Calls: [] 114 | --- !u!114 &624396305616839361 115 | MonoBehaviour: 116 | m_ObjectHideFlags: 0 117 | m_CorrespondingSourceObject: {fileID: 0} 118 | m_PrefabInstance: {fileID: 0} 119 | m_PrefabAsset: {fileID: 0} 120 | m_GameObject: {fileID: 6258439626626473141} 121 | m_Enabled: 1 122 | m_EditorHideFlags: 0 123 | m_Script: {fileID: 11500000, guid: ee40346acf17a8544a7dc94e57ed6b2c, type: 3} 124 | m_Name: 125 | m_EditorClassIdentifier: 126 | --- !u!1 &6258439627864007101 127 | GameObject: 128 | m_ObjectHideFlags: 0 129 | m_CorrespondingSourceObject: {fileID: 0} 130 | m_PrefabInstance: {fileID: 0} 131 | m_PrefabAsset: {fileID: 0} 132 | serializedVersion: 6 133 | m_Component: 134 | - component: {fileID: 6258439627864007090} 135 | - component: {fileID: 6258439627864007089} 136 | - component: {fileID: 6258439627864007091} 137 | m_Layer: 0 138 | m_Name: audio 139 | m_TagString: Untagged 140 | m_Icon: {fileID: 0} 141 | m_NavMeshLayer: 0 142 | m_StaticEditorFlags: 0 143 | m_IsActive: 1 144 | --- !u!4 &6258439627864007090 145 | Transform: 146 | m_ObjectHideFlags: 0 147 | m_CorrespondingSourceObject: {fileID: 0} 148 | m_PrefabInstance: {fileID: 0} 149 | m_PrefabAsset: {fileID: 0} 150 | m_GameObject: {fileID: 6258439627864007101} 151 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 152 | m_LocalPosition: {x: 0, y: 0, z: 0} 153 | m_LocalScale: {x: 1, y: 1, z: 1} 154 | m_ConstrainProportionsScale: 0 155 | m_Children: [] 156 | m_Father: {fileID: 6258439626626473131} 157 | m_RootOrder: 1 158 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 159 | --- !u!82 &6258439627864007089 160 | AudioSource: 161 | m_ObjectHideFlags: 0 162 | m_CorrespondingSourceObject: {fileID: 0} 163 | m_PrefabInstance: {fileID: 0} 164 | m_PrefabAsset: {fileID: 0} 165 | m_GameObject: {fileID: 6258439627864007101} 166 | m_Enabled: 1 167 | serializedVersion: 4 168 | OutputAudioMixerGroup: {fileID: 24300002, guid: 49d10c9f07f34484b9492e0e6ba26ec3, type: 2} 169 | m_audioClip: {fileID: 0} 170 | m_PlayOnAwake: 0 171 | m_Volume: 1 172 | m_Pitch: 1 173 | Loop: 0 174 | Mute: 0 175 | Spatialize: 0 176 | SpatializePostEffects: 0 177 | Priority: 128 178 | DopplerLevel: 1 179 | MinDistance: 1 180 | MaxDistance: 500 181 | Pan2D: 0 182 | rolloffMode: 0 183 | BypassEffects: 0 184 | BypassListenerEffects: 0 185 | BypassReverbZones: 0 186 | rolloffCustomCurve: 187 | serializedVersion: 2 188 | m_Curve: 189 | - serializedVersion: 3 190 | time: 0 191 | value: 1 192 | inSlope: 0 193 | outSlope: 0 194 | tangentMode: 0 195 | weightedMode: 0 196 | inWeight: 0.33333334 197 | outWeight: 0.33333334 198 | - serializedVersion: 3 199 | time: 1 200 | value: 0 201 | inSlope: 0 202 | outSlope: 0 203 | tangentMode: 0 204 | weightedMode: 0 205 | inWeight: 0.33333334 206 | outWeight: 0.33333334 207 | m_PreInfinity: 2 208 | m_PostInfinity: 2 209 | m_RotationOrder: 4 210 | panLevelCustomCurve: 211 | serializedVersion: 2 212 | m_Curve: 213 | - serializedVersion: 3 214 | time: 0 215 | value: 0 216 | inSlope: 0 217 | outSlope: 0 218 | tangentMode: 0 219 | weightedMode: 0 220 | inWeight: 0.33333334 221 | outWeight: 0.33333334 222 | m_PreInfinity: 2 223 | m_PostInfinity: 2 224 | m_RotationOrder: 4 225 | spreadCustomCurve: 226 | serializedVersion: 2 227 | m_Curve: 228 | - serializedVersion: 3 229 | time: 0 230 | value: 0 231 | inSlope: 0 232 | outSlope: 0 233 | tangentMode: 0 234 | weightedMode: 0 235 | inWeight: 0.33333334 236 | outWeight: 0.33333334 237 | m_PreInfinity: 2 238 | m_PostInfinity: 2 239 | m_RotationOrder: 4 240 | reverbZoneMixCustomCurve: 241 | serializedVersion: 2 242 | m_Curve: 243 | - serializedVersion: 3 244 | time: 0 245 | value: 1 246 | inSlope: 0 247 | outSlope: 0 248 | tangentMode: 0 249 | weightedMode: 0 250 | inWeight: 0.33333334 251 | outWeight: 0.33333334 252 | m_PreInfinity: 2 253 | m_PostInfinity: 2 254 | m_RotationOrder: 4 255 | --- !u!114 &6258439627864007091 256 | MonoBehaviour: 257 | m_ObjectHideFlags: 0 258 | m_CorrespondingSourceObject: {fileID: 0} 259 | m_PrefabInstance: {fileID: 0} 260 | m_PrefabAsset: {fileID: 0} 261 | m_GameObject: {fileID: 6258439627864007101} 262 | m_Enabled: 1 263 | m_EditorHideFlags: 0 264 | m_Script: {fileID: 11500000, guid: 80a9200dd942c354e82dfb8ed1f8057d, type: 3} 265 | m_Name: 266 | m_EditorClassIdentifier: 267 | source: {fileID: 6258439627864007089} 268 | defaultClip: {fileID: 8300000, guid: 2e03a5ba7bd7ba6408d37cde9148a676, type: 3} 269 | surfaces: 270 | - {fileID: 11400000, guid: 075a5028dcc508d4483e507e5a5f8874, type: 2} 271 | - {fileID: 11400000, guid: 8040298941c0462429314a5edbb68374, type: 2} 272 | - {fileID: 11400000, guid: 700b5115a3c919f48b41d6013b5dffb0, type: 2} 273 | - {fileID: 11400000, guid: fa0fe4db1d55ad24db71890174e3e92e, type: 2} 274 | clips: 275 | - {fileID: 8300000, guid: 2e03a5ba7bd7ba6408d37cde9148a676, type: 3} 276 | - {fileID: 8300000, guid: 04e4ecef067b7f94ebc296124f6e6102, type: 3} 277 | - {fileID: 8300000, guid: b4c976cc85a81d54786e9c296bf6de24, type: 3} 278 | - {fileID: 8300000, guid: 6986103b51ca08849957df9452f00b0e, type: 3} 279 | --- !u!1001 &6258439628109348097 280 | PrefabInstance: 281 | m_ObjectHideFlags: 0 282 | serializedVersion: 2 283 | m_Modification: 284 | m_TransformParent: {fileID: 6258439626626473131} 285 | m_Modifications: 286 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 287 | propertyPath: m_RootOrder 288 | value: 0 289 | objectReference: {fileID: 0} 290 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 291 | propertyPath: m_LocalPosition.x 292 | value: 0 293 | objectReference: {fileID: 0} 294 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 295 | propertyPath: m_LocalPosition.y 296 | value: 0 297 | objectReference: {fileID: 0} 298 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 299 | propertyPath: m_LocalPosition.z 300 | value: 0 301 | objectReference: {fileID: 0} 302 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 303 | propertyPath: m_LocalRotation.w 304 | value: 0.72932154 305 | objectReference: {fileID: 0} 306 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 307 | propertyPath: m_LocalRotation.x 308 | value: -0 309 | objectReference: {fileID: 0} 310 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 311 | propertyPath: m_LocalRotation.y 312 | value: 0.6841712 313 | objectReference: {fileID: 0} 314 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 315 | propertyPath: m_LocalRotation.z 316 | value: -0 317 | objectReference: {fileID: 0} 318 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 319 | propertyPath: m_LocalEulerAnglesHint.x 320 | value: 0 321 | objectReference: {fileID: 0} 322 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 323 | propertyPath: m_LocalEulerAnglesHint.y 324 | value: 86.341 325 | objectReference: {fileID: 0} 326 | - target: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 327 | propertyPath: m_LocalEulerAnglesHint.z 328 | value: 0 329 | objectReference: {fileID: 0} 330 | - target: {fileID: 919132149155446097, guid: acf2b943d17916842b30544ebc84673f, type: 3} 331 | propertyPath: m_Name 332 | value: characterMedium 333 | objectReference: {fileID: 0} 334 | - target: {fileID: 5866666021909216657, guid: acf2b943d17916842b30544ebc84673f, type: 3} 335 | propertyPath: m_Controller 336 | value: 337 | objectReference: {fileID: 9100000, guid: ed3d949a504d5044ca4b4d43bf2fc398, type: 2} 338 | m_RemovedComponents: 339 | - {fileID: 5866666021909216657, guid: acf2b943d17916842b30544ebc84673f, type: 3} 340 | m_SourcePrefab: {fileID: 100100000, guid: acf2b943d17916842b30544ebc84673f, type: 3} 341 | --- !u!4 &5859403926441433834 stripped 342 | Transform: 343 | m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: acf2b943d17916842b30544ebc84673f, type: 3} 344 | m_PrefabInstance: {fileID: 6258439628109348097} 345 | m_PrefabAsset: {fileID: 0} 346 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations/idle.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33dbac15ab8f1cb41b22e2e4c6cacd5b 3 | ModelImporter: 4 | serializedVersion: 21202 5 | internalIDToNameTable: 6 | - first: 7 | 74: -9165865403480842816 8 | second: Root|0.Targeting Pose 9 | - first: 10 | 74: 2910742486769232160 11 | second: Root|Idle 12 | externalObjects: {} 13 | materials: 14 | materialImportMode: 2 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | removeConstantScaleCurves: 1 24 | motionNodeName: 25 | rigImportErrors: 26 | rigImportWarnings: 27 | animationImportErrors: 28 | animationImportWarnings: 29 | animationRetargetingWarnings: 30 | animationDoRetargetingWarnings: 0 31 | importAnimatedCustomProperties: 0 32 | importConstraints: 0 33 | animationCompression: 1 34 | animationRotationError: 0.5 35 | animationPositionError: 0.5 36 | animationScaleError: 0.5 37 | animationWrapMode: 0 38 | extraExposedTransformPaths: [] 39 | extraUserProperties: [] 40 | clipAnimations: [] 41 | isReadable: 0 42 | meshes: 43 | lODScreenPercentages: [] 44 | globalScale: 1 45 | meshCompression: 0 46 | addColliders: 0 47 | useSRGBMaterialColor: 1 48 | sortHierarchyByName: 1 49 | importVisibility: 1 50 | importBlendShapes: 1 51 | importCameras: 1 52 | importLights: 1 53 | nodeNameCollisionStrategy: 1 54 | fileIdsGeneration: 2 55 | swapUVChannels: 0 56 | generateSecondaryUV: 0 57 | useFileUnits: 1 58 | keepQuads: 0 59 | weldVertices: 1 60 | bakeAxisConversion: 0 61 | preserveHierarchy: 0 62 | skinWeightsMode: 0 63 | maxBonesPerVertex: 4 64 | minBoneWeight: 0.001 65 | optimizeBones: 0 66 | meshOptimizationFlags: -1 67 | indexFormat: 0 68 | secondaryUVAngleDistortion: 8 69 | secondaryUVAreaDistortion: 15.000001 70 | secondaryUVHardAngle: 88 71 | secondaryUVMarginMethod: 1 72 | secondaryUVMinLightmapResolution: 40 73 | secondaryUVMinObjectScale: 1 74 | secondaryUVPackMargin: 4 75 | useFileScale: 1 76 | tangentSpace: 77 | normalSmoothAngle: 60 78 | normalImportMode: 0 79 | tangentImportMode: 3 80 | normalCalculationMode: 4 81 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 82 | blendShapeNormalImportMode: 1 83 | normalSmoothingSource: 0 84 | referencedClips: [] 85 | importAnimation: 1 86 | humanDescription: 87 | serializedVersion: 3 88 | human: 89 | - boneName: Hips 90 | humanName: Hips 91 | limit: 92 | min: {x: 0, y: 0, z: 0} 93 | max: {x: 0, y: 0, z: 0} 94 | value: {x: 0, y: 0, z: 0} 95 | length: 0 96 | modified: 0 97 | - boneName: LeftUpLeg 98 | humanName: LeftUpperLeg 99 | limit: 100 | min: {x: 0, y: 0, z: 0} 101 | max: {x: 0, y: 0, z: 0} 102 | value: {x: 0, y: 0, z: 0} 103 | length: 0 104 | modified: 0 105 | - boneName: RightUpLeg 106 | humanName: RightUpperLeg 107 | limit: 108 | min: {x: 0, y: 0, z: 0} 109 | max: {x: 0, y: 0, z: 0} 110 | value: {x: 0, y: 0, z: 0} 111 | length: 0 112 | modified: 0 113 | - boneName: LeftLeg 114 | humanName: LeftLowerLeg 115 | limit: 116 | min: {x: 0, y: 0, z: 0} 117 | max: {x: 0, y: 0, z: 0} 118 | value: {x: 0, y: 0, z: 0} 119 | length: 0 120 | modified: 0 121 | - boneName: RightLeg 122 | humanName: RightLowerLeg 123 | limit: 124 | min: {x: 0, y: 0, z: 0} 125 | max: {x: 0, y: 0, z: 0} 126 | value: {x: 0, y: 0, z: 0} 127 | length: 0 128 | modified: 0 129 | - boneName: LeftFoot 130 | humanName: LeftFoot 131 | limit: 132 | min: {x: 0, y: 0, z: 0} 133 | max: {x: 0, y: 0, z: 0} 134 | value: {x: 0, y: 0, z: 0} 135 | length: 0 136 | modified: 0 137 | - boneName: RightFoot 138 | humanName: RightFoot 139 | limit: 140 | min: {x: 0, y: 0, z: 0} 141 | max: {x: 0, y: 0, z: 0} 142 | value: {x: 0, y: 0, z: 0} 143 | length: 0 144 | modified: 0 145 | - boneName: Spine 146 | humanName: Spine 147 | limit: 148 | min: {x: 0, y: 0, z: 0} 149 | max: {x: 0, y: 0, z: 0} 150 | value: {x: 0, y: 0, z: 0} 151 | length: 0 152 | modified: 0 153 | - boneName: Chest 154 | humanName: Chest 155 | limit: 156 | min: {x: 0, y: 0, z: 0} 157 | max: {x: 0, y: 0, z: 0} 158 | value: {x: 0, y: 0, z: 0} 159 | length: 0 160 | modified: 0 161 | - boneName: Neck 162 | humanName: Neck 163 | limit: 164 | min: {x: 0, y: 0, z: 0} 165 | max: {x: 0, y: 0, z: 0} 166 | value: {x: 0, y: 0, z: 0} 167 | length: 0 168 | modified: 0 169 | - boneName: Head 170 | humanName: Head 171 | limit: 172 | min: {x: 0, y: 0, z: 0} 173 | max: {x: 0, y: 0, z: 0} 174 | value: {x: 0, y: 0, z: 0} 175 | length: 0 176 | modified: 0 177 | - boneName: LeftShoulder 178 | humanName: LeftShoulder 179 | limit: 180 | min: {x: 0, y: 0, z: 0} 181 | max: {x: 0, y: 0, z: 0} 182 | value: {x: 0, y: 0, z: 0} 183 | length: 0 184 | modified: 0 185 | - boneName: RightShoulder 186 | humanName: RightShoulder 187 | limit: 188 | min: {x: 0, y: 0, z: 0} 189 | max: {x: 0, y: 0, z: 0} 190 | value: {x: 0, y: 0, z: 0} 191 | length: 0 192 | modified: 0 193 | - boneName: LeftArm 194 | humanName: LeftUpperArm 195 | limit: 196 | min: {x: 0, y: 0, z: 0} 197 | max: {x: 0, y: 0, z: 0} 198 | value: {x: 0, y: 0, z: 0} 199 | length: 0 200 | modified: 0 201 | - boneName: RightArm 202 | humanName: RightUpperArm 203 | limit: 204 | min: {x: 0, y: 0, z: 0} 205 | max: {x: 0, y: 0, z: 0} 206 | value: {x: 0, y: 0, z: 0} 207 | length: 0 208 | modified: 0 209 | - boneName: LeftForeArm 210 | humanName: LeftLowerArm 211 | limit: 212 | min: {x: 0, y: 0, z: 0} 213 | max: {x: 0, y: 0, z: 0} 214 | value: {x: 0, y: 0, z: 0} 215 | length: 0 216 | modified: 0 217 | - boneName: RightForeArm 218 | humanName: RightLowerArm 219 | limit: 220 | min: {x: 0, y: 0, z: 0} 221 | max: {x: 0, y: 0, z: 0} 222 | value: {x: 0, y: 0, z: 0} 223 | length: 0 224 | modified: 0 225 | - boneName: LeftHand 226 | humanName: LeftHand 227 | limit: 228 | min: {x: 0, y: 0, z: 0} 229 | max: {x: 0, y: 0, z: 0} 230 | value: {x: 0, y: 0, z: 0} 231 | length: 0 232 | modified: 0 233 | - boneName: RightHand 234 | humanName: RightHand 235 | limit: 236 | min: {x: 0, y: 0, z: 0} 237 | max: {x: 0, y: 0, z: 0} 238 | value: {x: 0, y: 0, z: 0} 239 | length: 0 240 | modified: 0 241 | - boneName: LeftToes 242 | humanName: LeftToes 243 | limit: 244 | min: {x: 0, y: 0, z: 0} 245 | max: {x: 0, y: 0, z: 0} 246 | value: {x: 0, y: 0, z: 0} 247 | length: 0 248 | modified: 0 249 | - boneName: RightToes 250 | humanName: RightToes 251 | limit: 252 | min: {x: 0, y: 0, z: 0} 253 | max: {x: 0, y: 0, z: 0} 254 | value: {x: 0, y: 0, z: 0} 255 | length: 0 256 | modified: 0 257 | - boneName: LeftHandThumb1 258 | humanName: Left Thumb Proximal 259 | limit: 260 | min: {x: 0, y: 0, z: 0} 261 | max: {x: 0, y: 0, z: 0} 262 | value: {x: 0, y: 0, z: 0} 263 | length: 0 264 | modified: 0 265 | - boneName: LeftHandThumb2 266 | humanName: Left Thumb Intermediate 267 | limit: 268 | min: {x: 0, y: 0, z: 0} 269 | max: {x: 0, y: 0, z: 0} 270 | value: {x: 0, y: 0, z: 0} 271 | length: 0 272 | modified: 0 273 | - boneName: LeftHandIndex1 274 | humanName: Left Index Proximal 275 | limit: 276 | min: {x: 0, y: 0, z: 0} 277 | max: {x: 0, y: 0, z: 0} 278 | value: {x: 0, y: 0, z: 0} 279 | length: 0 280 | modified: 0 281 | - boneName: LeftHandIndex2 282 | humanName: Left Index Intermediate 283 | limit: 284 | min: {x: 0, y: 0, z: 0} 285 | max: {x: 0, y: 0, z: 0} 286 | value: {x: 0, y: 0, z: 0} 287 | length: 0 288 | modified: 0 289 | - boneName: LeftHandIndex3 290 | humanName: Left Index Distal 291 | limit: 292 | min: {x: 0, y: 0, z: 0} 293 | max: {x: 0, y: 0, z: 0} 294 | value: {x: 0, y: 0, z: 0} 295 | length: 0 296 | modified: 0 297 | - boneName: RightHandThumb1 298 | humanName: Right Thumb Proximal 299 | limit: 300 | min: {x: 0, y: 0, z: 0} 301 | max: {x: 0, y: 0, z: 0} 302 | value: {x: 0, y: 0, z: 0} 303 | length: 0 304 | modified: 0 305 | - boneName: RightHandThumb2 306 | humanName: Right Thumb Intermediate 307 | limit: 308 | min: {x: 0, y: 0, z: 0} 309 | max: {x: 0, y: 0, z: 0} 310 | value: {x: 0, y: 0, z: 0} 311 | length: 0 312 | modified: 0 313 | - boneName: RightHandIndex1 314 | humanName: Right Index Proximal 315 | limit: 316 | min: {x: 0, y: 0, z: 0} 317 | max: {x: 0, y: 0, z: 0} 318 | value: {x: 0, y: 0, z: 0} 319 | length: 0 320 | modified: 0 321 | - boneName: RightHandIndex2 322 | humanName: Right Index Intermediate 323 | limit: 324 | min: {x: 0, y: 0, z: 0} 325 | max: {x: 0, y: 0, z: 0} 326 | value: {x: 0, y: 0, z: 0} 327 | length: 0 328 | modified: 0 329 | - boneName: RightHandIndex3 330 | humanName: Right Index Distal 331 | limit: 332 | min: {x: 0, y: 0, z: 0} 333 | max: {x: 0, y: 0, z: 0} 334 | value: {x: 0, y: 0, z: 0} 335 | length: 0 336 | modified: 0 337 | - boneName: UpperChest 338 | humanName: UpperChest 339 | limit: 340 | min: {x: 0, y: 0, z: 0} 341 | max: {x: 0, y: 0, z: 0} 342 | value: {x: 0, y: 0, z: 0} 343 | length: 0 344 | modified: 0 345 | skeleton: 346 | - name: characterMedium(Clone) 347 | parentName: 348 | position: {x: 0, y: 0, z: 0} 349 | rotation: {x: 0, y: 0, z: 0, w: 1} 350 | scale: {x: 1, y: 1, z: 1} 351 | - name: Root 352 | parentName: characterMedium(Clone) 353 | position: {x: -0, y: 0, z: 0} 354 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} 355 | scale: {x: 100, y: 100, z: 100} 356 | - name: LeftFootCtrl 357 | parentName: Root 358 | position: {x: -0.002042088, y: 0.0014880997, z: 0.0019320479} 359 | rotation: {x: 0.4999999, y: -0.50000006, z: 0.5000001, w: -0.49999988} 360 | scale: {x: 1, y: 0.99999994, z: 1} 361 | - name: LeftHeelRoll 362 | parentName: LeftFootCtrl 363 | position: {x: -0.0007085253, y: 0.0017990143, z: -0.00022240428} 364 | rotation: {x: 0.50751185, y: 0.50822836, z: -0.4919063, w: 0.49210152} 365 | scale: {x: 1, y: 1, z: 1} 366 | - name: LeftToeRoll 367 | parentName: LeftHeelRoll 368 | position: {x: 0.00028664237, y: 0.0030693286, z: 0.000010425295} 369 | rotation: {x: -0.015735853, y: -0.0020787376, z: 0.99462473, w: 0.10232156} 370 | scale: {x: 0.9999982, y: 0.9999999, z: 1} 371 | - name: LeftFootIK 372 | parentName: LeftToeRoll 373 | position: {x: 0.00001821423, y: 0.0024152175, z: 0.0018004995} 374 | rotation: {x: 0.9461289, y: 0.021870853, z: -0.07550261, w: -0.31410384} 375 | scale: {x: 1, y: 1, z: 1.0000001} 376 | - name: LeftFootIK_end 377 | parentName: LeftFootIK 378 | position: {x: -0, y: 0.0030125424, z: 0} 379 | rotation: {x: 0, y: -0, z: -0, w: 1} 380 | scale: {x: 1, y: 1, z: 1} 381 | - name: LeftFootRollCtrl 382 | parentName: LeftFootCtrl 383 | position: {x: -1.05442106e-10, y: -5.425903e-10, z: -1.1862861e-12} 384 | rotation: {x: 0.5, y: -0.49999997, z: 0.49999988, w: 0.5000001} 385 | scale: {x: 1, y: 0.99999994, z: 1} 386 | - name: LeftFootRollCtrl_end 387 | parentName: LeftFootRollCtrl 388 | position: {x: -0, y: 0.0029276665, z: 0} 389 | rotation: {x: 0, y: -0, z: -0, w: 1} 390 | scale: {x: 1, y: 1, z: 1} 391 | - name: LeftKneeCtrl 392 | parentName: LeftFootCtrl 393 | position: {x: 0.006179578, y: -0.0058670053, z: 0.00025887022} 394 | rotation: {x: 0.70710695, y: 0.00000005338506, z: 0.7071066, w: -0.00000005338509} 395 | scale: {x: 1, y: 1, z: 1} 396 | - name: LeftKneeCtrl_end 397 | parentName: LeftKneeCtrl 398 | position: {x: -0, y: 0.003368157, z: 0} 399 | rotation: {x: 0, y: -0, z: -0, w: 1} 400 | scale: {x: 1, y: 1, z: 1} 401 | - name: RightFootCtrl 402 | parentName: Root 403 | position: {x: 0.0020752049, y: 0.0014881003, z: 0.0019320479} 404 | rotation: {x: 0.4999999, y: -0.50000006, z: 0.5000001, w: -0.49999988} 405 | scale: {x: 1, y: 0.99999994, z: 1} 406 | - name: RightHeelRoll 407 | parentName: RightFootCtrl 408 | position: {x: -0.0007085256, y: 0.0017990143, z: 0.00022240402} 409 | rotation: {x: 0.50768566, y: 0.507902, z: -0.49172792, w: 0.49243727} 410 | scale: {x: 0.99999994, y: 1, z: 1} 411 | - name: RightToeRoll 412 | parentName: RightHeelRoll 413 | position: {x: -0.0002867288, y: 0.0030693286, z: -0.000007687028} 414 | rotation: {x: -0.015675768, y: 0.0011517383, z: 0.9946256, w: -0.10233646} 415 | scale: {x: 0.99999344, y: 0.99999994, z: 1} 416 | - name: RightFootIK 417 | parentName: RightToeRoll 418 | position: {x: -0.000018214083, y: 0.0024152175, z: 0.0018004995} 419 | rotation: {x: 0.9481119, y: -0.011444971, z: 0.044093143, w: -0.31465635} 420 | scale: {x: 1.0000001, y: 0.99999994, z: 0.99999976} 421 | - name: RightFootIK_end 422 | parentName: RightFootIK 423 | position: {x: -0, y: 0.0030125426, z: 0} 424 | rotation: {x: 0, y: -0, z: -0, w: 1} 425 | scale: {x: 1, y: 1, z: 1} 426 | - name: RightFootRollCtrl 427 | parentName: RightFootCtrl 428 | position: {x: 3.0266012e-11, y: -4.6424734e-10, z: -1.1864992e-12} 429 | rotation: {x: 0.5, y: -0.49999997, z: 0.49999988, w: 0.5000001} 430 | scale: {x: 1, y: 0.99999994, z: 1} 431 | - name: RightFootRollCtrl_end 432 | parentName: RightFootRollCtrl 433 | position: {x: -0, y: 0.0029276665, z: 0} 434 | rotation: {x: 0, y: -0, z: -0, w: 1} 435 | scale: {x: 1, y: 1, z: 1} 436 | - name: RightKneeCtrl 437 | parentName: RightFootCtrl 438 | position: {x: 0.0061795786, y: -0.0058670053, z: -0.0002919822} 439 | rotation: {x: 0.70710695, y: 0.00000005338506, z: 0.7071066, w: -0.00000005338509} 440 | scale: {x: 1, y: 1, z: 1} 441 | - name: RightKneeCtrl_end 442 | parentName: RightKneeCtrl 443 | position: {x: -0, y: 0.003368157, z: 0} 444 | rotation: {x: 0, y: -0, z: -0, w: 1} 445 | scale: {x: 1, y: 1, z: 1} 446 | - name: HipsCtrl 447 | parentName: Root 448 | position: {x: 0.0000022340876, y: -0.00031240255, z: 0.015641721} 449 | rotation: {x: -0.0009546565, y: 0.7071062, z: -0.70710593, w: -0.0010862} 450 | scale: {x: 0.99999994, y: 1.0000002, z: 1} 451 | - name: Hips 452 | parentName: HipsCtrl 453 | position: {x: -0.000004645995, y: 0.00321951, z: -4.6911414e-10} 454 | rotation: {x: -0.00009301444, y: -0.0000002664779, z: 0.999999, w: -0.0014431035} 455 | scale: {x: 1.000004, y: 1, z: 0.9999999} 456 | - name: Spine 457 | parentName: Hips 458 | position: {x: 5.046533e-14, y: 0.003219516, z: 7.755615e-12} 459 | rotation: {x: -0.061042577, y: 0.00000001054578, z: 0.000000010392165, w: 0.9981352} 460 | scale: {x: 1.000004, y: 0.99999994, z: 1.0000002} 461 | - name: Chest 462 | parentName: Spine 463 | position: {x: -1.3624496e-13, y: 0.0028704882, z: 2.560622e-10} 464 | rotation: {x: 0.011894642, y: -0.000000009999341, z: -0.000000011040931, w: 0.99992925} 465 | scale: {x: 1, y: 0.9999998, z: 0.99999994} 466 | - name: UpperChest 467 | parentName: Chest 468 | position: {x: -4.3997716e-15, y: 0.003052766, z: -2.607736e-10} 469 | rotation: {x: 0.049165785, y: 3.8279617e-13, z: 1.8956675e-14, w: 0.9987906} 470 | scale: {x: 1, y: 1.0000001, z: 1} 471 | - name: Neck 472 | parentName: UpperChest 473 | position: {x: -2.297077e-14, y: 0.002708645, z: -4.2935013e-11} 474 | rotation: {x: 0.07661576, y: 2.5414742e-13, z: 3.625577e-12, w: 0.9970607} 475 | scale: {x: 1, y: 1, z: 0.99999994} 476 | - name: Head 477 | parentName: Neck 478 | position: {x: -1.3696619e-13, y: 0.0027800926, z: -1.3969514e-10} 479 | rotation: {x: -0.07413527, y: 2.5269785e-14, z: 8.820015e-15, w: 0.99724823} 480 | scale: {x: 1.000004, y: 0.9999999, z: 1} 481 | - name: Head_end 482 | parentName: Head 483 | position: {x: -0, y: 0.0100441, z: 0} 484 | rotation: {x: 0, y: -0, z: -0, w: 1} 485 | scale: {x: 1, y: 1, z: 1} 486 | - name: LeftShoulder 487 | parentName: UpperChest 488 | position: {x: -0.0008828004, y: 0.0028108188, z: 0.0006496106} 489 | rotation: {x: 0.586882, y: -0.41065362, z: -0.5482945, w: -0.43163213} 490 | scale: {x: 0.99999976, y: 0.9999998, z: 0.9999999} 491 | - name: LeftArm 492 | parentName: LeftShoulder 493 | position: {x: -0, y: 0.0025880144, z: -0.0000000025695772} 494 | rotation: {x: 0.08820719, y: -0.71049386, z: -0.06360366, w: 0.69525} 495 | scale: {x: 1.0000006, y: 0.99999577, z: 1.0000069} 496 | - name: LeftForeArm 497 | parentName: LeftArm 498 | position: {x: 0.0000000029962393, y: 0.0047077495, z: 2.3283063e-11} 499 | rotation: {x: 0.040832367, y: -0.0122753065, z: -0.011181167, w: 0.9990281} 500 | scale: {x: 0.99999994, y: 0.99999994, z: 1} 501 | - name: LeftHand 502 | parentName: LeftForeArm 503 | position: {x: 0.0000000025890767, y: 0.0052722767, z: -3.7252902e-11} 504 | rotation: {x: -0.02654678, y: -0.7247397, z: 0.021308184, w: 0.6881814} 505 | scale: {x: 0.99999994, y: 0.9999996, z: 0.9999999} 506 | - name: LeftHandIndex1 507 | parentName: LeftHand 508 | position: {x: 4.6566126e-11, y: 0.0013859977, z: -0.0000000018742867} 509 | rotation: {x: 0.056727383, y: 0.07746504, z: -0.00014853867, w: 0.9953799} 510 | scale: {x: 0.99999994, y: 1, z: 0.99999994} 511 | - name: LeftHandIndex2 512 | parentName: LeftHandIndex1 513 | position: {x: 1.11758706e-10, y: 0.0011282143, z: -7.310882e-10} 514 | rotation: {x: 0.039546326, y: -0.06709225, z: 0.00031123366, w: 0.9969627} 515 | scale: {x: 0.99999994, y: 1, z: 0.99999994} 516 | - name: LeftHandIndex3 517 | parentName: LeftHandIndex2 518 | position: {x: -3.7252902e-11, y: 0.0010213042, z: -0.0000000034901313} 519 | rotation: {x: 0.030971779, y: 0.030524252, z: -0.0008921604, w: 0.99905366} 520 | scale: {x: 0.9999997, y: 1.0000004, z: 1} 521 | - name: LeftHandIndex3_end 522 | parentName: LeftHandIndex3 523 | position: {x: -0, y: 0.0013049884, z: 0} 524 | rotation: {x: 0, y: -0, z: -0, w: 1} 525 | scale: {x: 1, y: 1, z: 1} 526 | - name: LeftHandThumb1 527 | parentName: LeftHand 528 | position: {x: 0.00065148337, y: 0.00050981034, z: 0.000024453737} 529 | rotation: {x: -0.31801257, y: -0.6509115, z: -0.30346197, w: 0.61894506} 530 | scale: {x: 1, y: 1.0000001, z: 1} 531 | - name: LeftHandThumb2 532 | parentName: LeftHandThumb1 533 | position: {x: -1.4901161e-10, y: 0.0010586779, z: -0.00000000173226} 534 | rotation: {x: 0.03336114, y: 0.013767273, z: -0.0006501377, w: 0.99934834} 535 | scale: {x: 1, y: 1, z: 1} 536 | - name: LeftHandThumb2_end 537 | parentName: LeftHandThumb2 538 | position: {x: -0, y: 0.0013225968, z: 0} 539 | rotation: {x: 0, y: -0, z: -0, w: 1} 540 | scale: {x: 1, y: 1, z: 1} 541 | - name: RightShoulder 542 | parentName: UpperChest 543 | position: {x: 0.00088280055, y: 0.0028108188, z: 0.0006496106} 544 | rotation: {x: 0.65837955, y: 0.50761116, z: -0.45999342, w: 0.31188673} 545 | scale: {x: 1, y: 1, z: 1} 546 | - name: RightArm 547 | parentName: RightShoulder 548 | position: {x: -1.4901161e-10, y: 0.002588014, z: -5.727634e-10} 549 | rotation: {x: 0.00028371805, y: 0.96439195, z: -0.10874661, w: 0.24108574} 550 | scale: {x: 1.000007, y: 0.9999955, z: 1.0000013} 551 | - name: RightForeArm 552 | parentName: RightArm 553 | position: {x: 1.5366822e-10, y: 0.004707749, z: 0.0000000024519977} 554 | rotation: {x: 0.007033843, y: 0.0044677104, z: -0.04174727, w: 0.9990935} 555 | scale: {x: 1, y: 1, z: 1.0000001} 556 | - name: RightHand 557 | parentName: RightForeArm 558 | position: {x: -7.4505804e-11, y: 0.005272276, z: 9.0338287e-10} 559 | rotation: {x: 0.008204221, y: -0.00033306266, z: 0.033037264, w: 0.9994204} 560 | scale: {x: 0.99999994, y: 0.9999999, z: 0.9999999} 561 | - name: RightHandIndex1 562 | parentName: RightHand 563 | position: {x: -2.7008354e-10, y: 0.0013859981, z: -1.16415315e-11} 564 | rotation: {x: -0.056727264, y: 0.077463634, z: 0.00014847115, w: 0.99538004} 565 | scale: {x: 1.0000001, y: 1, z: 1} 566 | - name: RightHandIndex2 567 | parentName: RightHandIndex1 568 | position: {x: -2.0489097e-10, y: 0.0011282124, z: -8.405186e-10} 569 | rotation: {x: -0.039548665, y: -0.06709124, z: -0.00031118238, w: 0.9969627} 570 | scale: {x: 1, y: 0.99999994, z: 0.99999994} 571 | - name: RightHandIndex3 572 | parentName: RightHandIndex2 573 | position: {x: -1.4901161e-10, y: 0.0010213059, z: 0.0000000013364478} 574 | rotation: {x: -0.030973844, y: 0.030523023, z: 0.00089219364, w: 0.99905366} 575 | scale: {x: 0.99999994, y: 0.9999998, z: 0.99999994} 576 | - name: RightHandIndex3_end 577 | parentName: RightHandIndex3 578 | position: {x: -0, y: 0.0013049883, z: 0} 579 | rotation: {x: 0, y: -0, z: -0, w: 1} 580 | scale: {x: 1, y: 1, z: 1} 581 | - name: RightHandThumb1 582 | parentName: RightHand 583 | position: {x: 0.00063919235, y: 0.00050981186, z: -0.00012830083} 584 | rotation: {x: 0.33303955, y: 0.76632416, z: -0.28689188, w: 0.46853498} 585 | scale: {x: 1, y: 1, z: 1} 586 | - name: RightHandThumb2 587 | parentName: RightHandThumb1 588 | position: {x: -2.9802322e-10, y: 0.001058677, z: -2.6077032e-10} 589 | rotation: {x: -0.031657245, y: 0.026193466, z: -0.010554849, w: 0.99909973} 590 | scale: {x: 0.9999999, y: 1, z: 1} 591 | - name: RightHandThumb2_end 592 | parentName: RightHandThumb2 593 | position: {x: -0, y: 0.0013225968, z: 0} 594 | rotation: {x: 0, y: -0, z: -0, w: 1} 595 | scale: {x: 1, y: 1, z: 1} 596 | - name: LeftUpLeg 597 | parentName: Hips 598 | position: {x: -0.002015291, y: 0.00058463303, z: 7.509206e-10} 599 | rotation: {x: 0.9867031, y: -0.0010609758, z: -0.16252847, w: 0.0006699397} 600 | scale: {x: 1.0000546, y: 1.0000014, z: 1.0000005} 601 | - name: LeftLeg 602 | parentName: LeftUpLeg 603 | position: {x: -1.4901161e-10, y: 0.0052617406, z: 2.4447217e-11} 604 | rotation: {x: 0.14157401, y: -0.03244448, z: -0.052854277, w: 0.9879831} 605 | scale: {x: 0.99999946, y: 0.9999988, z: 1.0000023} 606 | - name: LeftFoot 607 | parentName: LeftLeg 608 | position: {x: 5.5879353e-11, y: 0.00608811, z: 1.862645e-10} 609 | rotation: {x: -0.5438065, y: 0.19418123, z: 0.18754351, w: 0.79460406} 610 | scale: {x: 1.0000205, y: 0.9999836, z: 0.99999577} 611 | - name: LeftToes 612 | parentName: LeftFoot 613 | position: {x: 6.402843e-11, y: 0.0030125394, z: -9.3132255e-12} 614 | rotation: {x: 0.019817863, y: 0.95228684, z: -0.2982553, w: -0.061651394} 615 | scale: {x: 0.99999994, y: 0.9999999, z: 0.99999994} 616 | - name: LeftToes_end 617 | parentName: LeftToes 618 | position: {x: -0, y: 0.002132363, z: 0} 619 | rotation: {x: 0, y: -0, z: -0, w: 1} 620 | scale: {x: 1, y: 1, z: 1} 621 | - name: RightUpLeg 622 | parentName: Hips 623 | position: {x: 0.002015291, y: 0.0005846331, z: 7.520936e-10} 624 | rotation: {x: 0.9765877, y: 0.0013587964, z: 0.21511474, w: 0.0004842422} 625 | scale: {x: 0.99998695, y: 0.99999946, z: 0.9999993} 626 | - name: RightLeg 627 | parentName: RightUpLeg 628 | position: {x: 6.984919e-11, y: 0.0052617406, z: -4.8312358e-11} 629 | rotation: {x: 0.13894787, y: -0.011510127, z: 0.05917322, w: 0.9884632} 630 | scale: {x: 0.9999991, y: 1.0000004, z: 1} 631 | - name: RightFoot 632 | parentName: RightLeg 633 | position: {x: 1.3038516e-10, y: 0.0060881176, z: -1.862645e-10} 634 | rotation: {x: -0.5484955, y: -0.22882912, z: -0.17182079, w: 0.7856638} 635 | scale: {x: 0.999995, y: 1.0000037, z: 1.0000012} 636 | - name: RightToes 637 | parentName: RightFoot 638 | position: {x: -2.6193447e-10, y: 0.0030125445, z: -1.862645e-10} 639 | rotation: {x: -0.028260881, y: 0.9539412, z: -0.29757363, w: 0.025446746} 640 | scale: {x: 1.0000001, y: 1.0000002, z: 1} 641 | - name: RightToes_end 642 | parentName: RightToes 643 | position: {x: -0, y: 0.002132363, z: 0} 644 | rotation: {x: 0, y: -0, z: -0, w: 1} 645 | scale: {x: 1, y: 1, z: 1} 646 | - name: characterMedium 647 | parentName: characterMedium(Clone) 648 | position: {x: -0, y: 0, z: 0} 649 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} 650 | scale: {x: 100, y: 100, z: 100} 651 | armTwist: 0.5 652 | foreArmTwist: 0.5 653 | upperLegTwist: 0.5 654 | legTwist: 0.5 655 | armStretch: 0.05 656 | legStretch: 0.05 657 | feetSpacing: 0 658 | globalScale: 1 659 | rootMotionBoneName: 660 | hasTranslationDoF: 0 661 | hasExtraRoot: 1 662 | skeletonHasParents: 1 663 | lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: acf2b943d17916842b30544ebc84673f, type: 3} 664 | autoGenerateAvatarMappingIfUnspecified: 1 665 | animationType: 3 666 | humanoidOversampling: 1 667 | avatarSetup: 2 668 | addHumanoidExtraRootOnlyWhenUsingAvatar: 1 669 | additionalBone: 0 670 | userData: 671 | assetBundleName: 672 | assetBundleVariant: 673 | -------------------------------------------------------------------------------- /Samples~/Simple/Animations/jump.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68c22524833c38e498892c6775835c69 3 | ModelImporter: 4 | serializedVersion: 21202 5 | internalIDToNameTable: 6 | - first: 7 | 74: -9165865403480842816 8 | second: Root|0.Targeting Pose 9 | - first: 10 | 74: -8630955994762890147 11 | second: Root|Jump 12 | externalObjects: {} 13 | materials: 14 | materialImportMode: 2 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | removeConstantScaleCurves: 1 24 | motionNodeName: 25 | rigImportErrors: 26 | rigImportWarnings: 27 | animationImportErrors: 28 | animationImportWarnings: 29 | animationRetargetingWarnings: 30 | animationDoRetargetingWarnings: 0 31 | importAnimatedCustomProperties: 0 32 | importConstraints: 0 33 | animationCompression: 1 34 | animationRotationError: 0.5 35 | animationPositionError: 0.5 36 | animationScaleError: 0.5 37 | animationWrapMode: 0 38 | extraExposedTransformPaths: [] 39 | extraUserProperties: [] 40 | clipAnimations: [] 41 | isReadable: 0 42 | meshes: 43 | lODScreenPercentages: [] 44 | globalScale: 1 45 | meshCompression: 0 46 | addColliders: 0 47 | useSRGBMaterialColor: 1 48 | sortHierarchyByName: 1 49 | importVisibility: 1 50 | importBlendShapes: 1 51 | importCameras: 1 52 | importLights: 1 53 | nodeNameCollisionStrategy: 1 54 | fileIdsGeneration: 2 55 | swapUVChannels: 0 56 | generateSecondaryUV: 0 57 | useFileUnits: 1 58 | keepQuads: 0 59 | weldVertices: 1 60 | bakeAxisConversion: 0 61 | preserveHierarchy: 0 62 | skinWeightsMode: 0 63 | maxBonesPerVertex: 4 64 | minBoneWeight: 0.001 65 | optimizeBones: 0 66 | meshOptimizationFlags: -1 67 | indexFormat: 0 68 | secondaryUVAngleDistortion: 8 69 | secondaryUVAreaDistortion: 15.000001 70 | secondaryUVHardAngle: 88 71 | secondaryUVMarginMethod: 1 72 | secondaryUVMinLightmapResolution: 40 73 | secondaryUVMinObjectScale: 1 74 | secondaryUVPackMargin: 4 75 | useFileScale: 1 76 | tangentSpace: 77 | normalSmoothAngle: 60 78 | normalImportMode: 0 79 | tangentImportMode: 3 80 | normalCalculationMode: 4 81 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 82 | blendShapeNormalImportMode: 1 83 | normalSmoothingSource: 0 84 | referencedClips: [] 85 | importAnimation: 1 86 | humanDescription: 87 | serializedVersion: 3 88 | human: 89 | - boneName: Hips 90 | humanName: Hips 91 | limit: 92 | min: {x: 0, y: 0, z: 0} 93 | max: {x: 0, y: 0, z: 0} 94 | value: {x: 0, y: 0, z: 0} 95 | length: 0 96 | modified: 0 97 | - boneName: LeftUpLeg 98 | humanName: LeftUpperLeg 99 | limit: 100 | min: {x: 0, y: 0, z: 0} 101 | max: {x: 0, y: 0, z: 0} 102 | value: {x: 0, y: 0, z: 0} 103 | length: 0 104 | modified: 0 105 | - boneName: RightUpLeg 106 | humanName: RightUpperLeg 107 | limit: 108 | min: {x: 0, y: 0, z: 0} 109 | max: {x: 0, y: 0, z: 0} 110 | value: {x: 0, y: 0, z: 0} 111 | length: 0 112 | modified: 0 113 | - boneName: LeftLeg 114 | humanName: LeftLowerLeg 115 | limit: 116 | min: {x: 0, y: 0, z: 0} 117 | max: {x: 0, y: 0, z: 0} 118 | value: {x: 0, y: 0, z: 0} 119 | length: 0 120 | modified: 0 121 | - boneName: RightLeg 122 | humanName: RightLowerLeg 123 | limit: 124 | min: {x: 0, y: 0, z: 0} 125 | max: {x: 0, y: 0, z: 0} 126 | value: {x: 0, y: 0, z: 0} 127 | length: 0 128 | modified: 0 129 | - boneName: LeftFoot 130 | humanName: LeftFoot 131 | limit: 132 | min: {x: 0, y: 0, z: 0} 133 | max: {x: 0, y: 0, z: 0} 134 | value: {x: 0, y: 0, z: 0} 135 | length: 0 136 | modified: 0 137 | - boneName: RightFoot 138 | humanName: RightFoot 139 | limit: 140 | min: {x: 0, y: 0, z: 0} 141 | max: {x: 0, y: 0, z: 0} 142 | value: {x: 0, y: 0, z: 0} 143 | length: 0 144 | modified: 0 145 | - boneName: Spine 146 | humanName: Spine 147 | limit: 148 | min: {x: 0, y: 0, z: 0} 149 | max: {x: 0, y: 0, z: 0} 150 | value: {x: 0, y: 0, z: 0} 151 | length: 0 152 | modified: 0 153 | - boneName: Chest 154 | humanName: Chest 155 | limit: 156 | min: {x: 0, y: 0, z: 0} 157 | max: {x: 0, y: 0, z: 0} 158 | value: {x: 0, y: 0, z: 0} 159 | length: 0 160 | modified: 0 161 | - boneName: Neck 162 | humanName: Neck 163 | limit: 164 | min: {x: 0, y: 0, z: 0} 165 | max: {x: 0, y: 0, z: 0} 166 | value: {x: 0, y: 0, z: 0} 167 | length: 0 168 | modified: 0 169 | - boneName: Head 170 | humanName: Head 171 | limit: 172 | min: {x: 0, y: 0, z: 0} 173 | max: {x: 0, y: 0, z: 0} 174 | value: {x: 0, y: 0, z: 0} 175 | length: 0 176 | modified: 0 177 | - boneName: LeftShoulder 178 | humanName: LeftShoulder 179 | limit: 180 | min: {x: 0, y: 0, z: 0} 181 | max: {x: 0, y: 0, z: 0} 182 | value: {x: 0, y: 0, z: 0} 183 | length: 0 184 | modified: 0 185 | - boneName: RightShoulder 186 | humanName: RightShoulder 187 | limit: 188 | min: {x: 0, y: 0, z: 0} 189 | max: {x: 0, y: 0, z: 0} 190 | value: {x: 0, y: 0, z: 0} 191 | length: 0 192 | modified: 0 193 | - boneName: LeftArm 194 | humanName: LeftUpperArm 195 | limit: 196 | min: {x: 0, y: 0, z: 0} 197 | max: {x: 0, y: 0, z: 0} 198 | value: {x: 0, y: 0, z: 0} 199 | length: 0 200 | modified: 0 201 | - boneName: RightArm 202 | humanName: RightUpperArm 203 | limit: 204 | min: {x: 0, y: 0, z: 0} 205 | max: {x: 0, y: 0, z: 0} 206 | value: {x: 0, y: 0, z: 0} 207 | length: 0 208 | modified: 0 209 | - boneName: LeftForeArm 210 | humanName: LeftLowerArm 211 | limit: 212 | min: {x: 0, y: 0, z: 0} 213 | max: {x: 0, y: 0, z: 0} 214 | value: {x: 0, y: 0, z: 0} 215 | length: 0 216 | modified: 0 217 | - boneName: RightForeArm 218 | humanName: RightLowerArm 219 | limit: 220 | min: {x: 0, y: 0, z: 0} 221 | max: {x: 0, y: 0, z: 0} 222 | value: {x: 0, y: 0, z: 0} 223 | length: 0 224 | modified: 0 225 | - boneName: LeftHand 226 | humanName: LeftHand 227 | limit: 228 | min: {x: 0, y: 0, z: 0} 229 | max: {x: 0, y: 0, z: 0} 230 | value: {x: 0, y: 0, z: 0} 231 | length: 0 232 | modified: 0 233 | - boneName: RightHand 234 | humanName: RightHand 235 | limit: 236 | min: {x: 0, y: 0, z: 0} 237 | max: {x: 0, y: 0, z: 0} 238 | value: {x: 0, y: 0, z: 0} 239 | length: 0 240 | modified: 0 241 | - boneName: LeftToes 242 | humanName: LeftToes 243 | limit: 244 | min: {x: 0, y: 0, z: 0} 245 | max: {x: 0, y: 0, z: 0} 246 | value: {x: 0, y: 0, z: 0} 247 | length: 0 248 | modified: 0 249 | - boneName: RightToes 250 | humanName: RightToes 251 | limit: 252 | min: {x: 0, y: 0, z: 0} 253 | max: {x: 0, y: 0, z: 0} 254 | value: {x: 0, y: 0, z: 0} 255 | length: 0 256 | modified: 0 257 | - boneName: LeftHandThumb1 258 | humanName: Left Thumb Proximal 259 | limit: 260 | min: {x: 0, y: 0, z: 0} 261 | max: {x: 0, y: 0, z: 0} 262 | value: {x: 0, y: 0, z: 0} 263 | length: 0 264 | modified: 0 265 | - boneName: LeftHandThumb2 266 | humanName: Left Thumb Intermediate 267 | limit: 268 | min: {x: 0, y: 0, z: 0} 269 | max: {x: 0, y: 0, z: 0} 270 | value: {x: 0, y: 0, z: 0} 271 | length: 0 272 | modified: 0 273 | - boneName: LeftHandIndex1 274 | humanName: Left Index Proximal 275 | limit: 276 | min: {x: 0, y: 0, z: 0} 277 | max: {x: 0, y: 0, z: 0} 278 | value: {x: 0, y: 0, z: 0} 279 | length: 0 280 | modified: 0 281 | - boneName: LeftHandIndex2 282 | humanName: Left Index Intermediate 283 | limit: 284 | min: {x: 0, y: 0, z: 0} 285 | max: {x: 0, y: 0, z: 0} 286 | value: {x: 0, y: 0, z: 0} 287 | length: 0 288 | modified: 0 289 | - boneName: LeftHandIndex3 290 | humanName: Left Index Distal 291 | limit: 292 | min: {x: 0, y: 0, z: 0} 293 | max: {x: 0, y: 0, z: 0} 294 | value: {x: 0, y: 0, z: 0} 295 | length: 0 296 | modified: 0 297 | - boneName: RightHandThumb1 298 | humanName: Right Thumb Proximal 299 | limit: 300 | min: {x: 0, y: 0, z: 0} 301 | max: {x: 0, y: 0, z: 0} 302 | value: {x: 0, y: 0, z: 0} 303 | length: 0 304 | modified: 0 305 | - boneName: RightHandThumb2 306 | humanName: Right Thumb Intermediate 307 | limit: 308 | min: {x: 0, y: 0, z: 0} 309 | max: {x: 0, y: 0, z: 0} 310 | value: {x: 0, y: 0, z: 0} 311 | length: 0 312 | modified: 0 313 | - boneName: RightHandIndex1 314 | humanName: Right Index Proximal 315 | limit: 316 | min: {x: 0, y: 0, z: 0} 317 | max: {x: 0, y: 0, z: 0} 318 | value: {x: 0, y: 0, z: 0} 319 | length: 0 320 | modified: 0 321 | - boneName: RightHandIndex2 322 | humanName: Right Index Intermediate 323 | limit: 324 | min: {x: 0, y: 0, z: 0} 325 | max: {x: 0, y: 0, z: 0} 326 | value: {x: 0, y: 0, z: 0} 327 | length: 0 328 | modified: 0 329 | - boneName: RightHandIndex3 330 | humanName: Right Index Distal 331 | limit: 332 | min: {x: 0, y: 0, z: 0} 333 | max: {x: 0, y: 0, z: 0} 334 | value: {x: 0, y: 0, z: 0} 335 | length: 0 336 | modified: 0 337 | - boneName: UpperChest 338 | humanName: UpperChest 339 | limit: 340 | min: {x: 0, y: 0, z: 0} 341 | max: {x: 0, y: 0, z: 0} 342 | value: {x: 0, y: 0, z: 0} 343 | length: 0 344 | modified: 0 345 | skeleton: 346 | - name: characterMedium(Clone) 347 | parentName: 348 | position: {x: 0, y: 0, z: 0} 349 | rotation: {x: 0, y: 0, z: 0, w: 1} 350 | scale: {x: 1, y: 1, z: 1} 351 | - name: Root 352 | parentName: characterMedium(Clone) 353 | position: {x: -0, y: 0, z: 0} 354 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} 355 | scale: {x: 100, y: 100, z: 100} 356 | - name: LeftFootCtrl 357 | parentName: Root 358 | position: {x: -0.002042088, y: 0.0014880997, z: 0.0019320479} 359 | rotation: {x: 0.4999999, y: -0.50000006, z: 0.5000001, w: -0.49999988} 360 | scale: {x: 1, y: 0.99999994, z: 1} 361 | - name: LeftHeelRoll 362 | parentName: LeftFootCtrl 363 | position: {x: -0.0007085253, y: 0.0017990143, z: -0.00022240428} 364 | rotation: {x: 0.50751185, y: 0.50822836, z: -0.4919063, w: 0.49210152} 365 | scale: {x: 1, y: 1, z: 1} 366 | - name: LeftToeRoll 367 | parentName: LeftHeelRoll 368 | position: {x: 0.00028664237, y: 0.0030693286, z: 0.000010425295} 369 | rotation: {x: -0.015735853, y: -0.0020787376, z: 0.99462473, w: 0.10232156} 370 | scale: {x: 0.9999982, y: 0.9999999, z: 1} 371 | - name: LeftFootIK 372 | parentName: LeftToeRoll 373 | position: {x: 0.00001821423, y: 0.0024152175, z: 0.0018004995} 374 | rotation: {x: 0.9461289, y: 0.021870853, z: -0.07550261, w: -0.31410384} 375 | scale: {x: 1, y: 1, z: 1.0000001} 376 | - name: LeftFootIK_end 377 | parentName: LeftFootIK 378 | position: {x: -0, y: 0.0030125424, z: 0} 379 | rotation: {x: 0, y: -0, z: -0, w: 1} 380 | scale: {x: 1, y: 1, z: 1} 381 | - name: LeftFootRollCtrl 382 | parentName: LeftFootCtrl 383 | position: {x: -1.05442106e-10, y: -5.425903e-10, z: -1.1862861e-12} 384 | rotation: {x: 0.5, y: -0.49999997, z: 0.49999988, w: 0.5000001} 385 | scale: {x: 1, y: 0.99999994, z: 1} 386 | - name: LeftFootRollCtrl_end 387 | parentName: LeftFootRollCtrl 388 | position: {x: -0, y: 0.0029276665, z: 0} 389 | rotation: {x: 0, y: -0, z: -0, w: 1} 390 | scale: {x: 1, y: 1, z: 1} 391 | - name: LeftKneeCtrl 392 | parentName: LeftFootCtrl 393 | position: {x: 0.006179578, y: -0.0058670053, z: 0.00025887022} 394 | rotation: {x: 0.70710695, y: 0.00000005338506, z: 0.7071066, w: -0.00000005338509} 395 | scale: {x: 1, y: 1, z: 1} 396 | - name: LeftKneeCtrl_end 397 | parentName: LeftKneeCtrl 398 | position: {x: -0, y: 0.003368157, z: 0} 399 | rotation: {x: 0, y: -0, z: -0, w: 1} 400 | scale: {x: 1, y: 1, z: 1} 401 | - name: RightFootCtrl 402 | parentName: Root 403 | position: {x: 0.0020752049, y: 0.0014881003, z: 0.0019320479} 404 | rotation: {x: 0.4999999, y: -0.50000006, z: 0.5000001, w: -0.49999988} 405 | scale: {x: 1, y: 0.99999994, z: 1} 406 | - name: RightHeelRoll 407 | parentName: RightFootCtrl 408 | position: {x: -0.0007085256, y: 0.0017990143, z: 0.00022240402} 409 | rotation: {x: 0.50768566, y: 0.507902, z: -0.49172792, w: 0.49243727} 410 | scale: {x: 0.99999994, y: 1, z: 1} 411 | - name: RightToeRoll 412 | parentName: RightHeelRoll 413 | position: {x: -0.0002867288, y: 0.0030693286, z: -0.000007687028} 414 | rotation: {x: -0.015675768, y: 0.0011517383, z: 0.9946256, w: -0.10233646} 415 | scale: {x: 0.99999344, y: 0.99999994, z: 1} 416 | - name: RightFootIK 417 | parentName: RightToeRoll 418 | position: {x: -0.000018214083, y: 0.0024152175, z: 0.0018004995} 419 | rotation: {x: 0.9481119, y: -0.011444971, z: 0.044093143, w: -0.31465635} 420 | scale: {x: 1.0000001, y: 0.99999994, z: 0.99999976} 421 | - name: RightFootIK_end 422 | parentName: RightFootIK 423 | position: {x: -0, y: 0.0030125426, z: 0} 424 | rotation: {x: 0, y: -0, z: -0, w: 1} 425 | scale: {x: 1, y: 1, z: 1} 426 | - name: RightFootRollCtrl 427 | parentName: RightFootCtrl 428 | position: {x: 3.0266012e-11, y: -4.6424734e-10, z: -1.1864992e-12} 429 | rotation: {x: 0.5, y: -0.49999997, z: 0.49999988, w: 0.5000001} 430 | scale: {x: 1, y: 0.99999994, z: 1} 431 | - name: RightFootRollCtrl_end 432 | parentName: RightFootRollCtrl 433 | position: {x: -0, y: 0.0029276665, z: 0} 434 | rotation: {x: 0, y: -0, z: -0, w: 1} 435 | scale: {x: 1, y: 1, z: 1} 436 | - name: RightKneeCtrl 437 | parentName: RightFootCtrl 438 | position: {x: 0.0061795786, y: -0.0058670053, z: -0.0002919822} 439 | rotation: {x: 0.70710695, y: 0.00000005338506, z: 0.7071066, w: -0.00000005338509} 440 | scale: {x: 1, y: 1, z: 1} 441 | - name: RightKneeCtrl_end 442 | parentName: RightKneeCtrl 443 | position: {x: -0, y: 0.003368157, z: 0} 444 | rotation: {x: 0, y: -0, z: -0, w: 1} 445 | scale: {x: 1, y: 1, z: 1} 446 | - name: HipsCtrl 447 | parentName: Root 448 | position: {x: 0.0000022340876, y: -0.00031240255, z: 0.015641721} 449 | rotation: {x: -0.0009546565, y: 0.7071062, z: -0.70710593, w: -0.0010862} 450 | scale: {x: 0.99999994, y: 1.0000002, z: 1} 451 | - name: Hips 452 | parentName: HipsCtrl 453 | position: {x: -0.000004645995, y: 0.00321951, z: -4.6911414e-10} 454 | rotation: {x: -0.00009301444, y: -0.0000002664779, z: 0.999999, w: -0.0014431035} 455 | scale: {x: 1.000004, y: 1, z: 0.9999999} 456 | - name: Spine 457 | parentName: Hips 458 | position: {x: 5.046533e-14, y: 0.003219516, z: 7.755615e-12} 459 | rotation: {x: -0.061042577, y: 0.00000001054578, z: 0.000000010392165, w: 0.9981352} 460 | scale: {x: 1.000004, y: 0.99999994, z: 1.0000002} 461 | - name: Chest 462 | parentName: Spine 463 | position: {x: -1.3624496e-13, y: 0.0028704882, z: 2.560622e-10} 464 | rotation: {x: 0.011894642, y: -0.000000009999341, z: -0.000000011040931, w: 0.99992925} 465 | scale: {x: 1, y: 0.9999998, z: 0.99999994} 466 | - name: UpperChest 467 | parentName: Chest 468 | position: {x: -4.3997716e-15, y: 0.003052766, z: -2.607736e-10} 469 | rotation: {x: 0.049165785, y: 3.8279617e-13, z: 1.8956675e-14, w: 0.9987906} 470 | scale: {x: 1, y: 1.0000001, z: 1} 471 | - name: Neck 472 | parentName: UpperChest 473 | position: {x: -2.297077e-14, y: 0.002708645, z: -4.2935013e-11} 474 | rotation: {x: 0.07661576, y: 2.5414742e-13, z: 3.625577e-12, w: 0.9970607} 475 | scale: {x: 1, y: 1, z: 0.99999994} 476 | - name: Head 477 | parentName: Neck 478 | position: {x: -1.3696619e-13, y: 0.0027800926, z: -1.3969514e-10} 479 | rotation: {x: -0.07413527, y: 2.5269785e-14, z: 8.820015e-15, w: 0.99724823} 480 | scale: {x: 1.000004, y: 0.9999999, z: 1} 481 | - name: Head_end 482 | parentName: Head 483 | position: {x: -0, y: 0.0100441, z: 0} 484 | rotation: {x: 0, y: -0, z: -0, w: 1} 485 | scale: {x: 1, y: 1, z: 1} 486 | - name: LeftShoulder 487 | parentName: UpperChest 488 | position: {x: -0.0008828004, y: 0.0028108188, z: 0.0006496106} 489 | rotation: {x: 0.586882, y: -0.41065362, z: -0.5482945, w: -0.43163213} 490 | scale: {x: 0.99999976, y: 0.9999998, z: 0.9999999} 491 | - name: LeftArm 492 | parentName: LeftShoulder 493 | position: {x: -0, y: 0.0025880144, z: -0.0000000025695772} 494 | rotation: {x: 0.08820719, y: -0.71049386, z: -0.06360366, w: 0.69525} 495 | scale: {x: 1.0000006, y: 0.99999577, z: 1.0000069} 496 | - name: LeftForeArm 497 | parentName: LeftArm 498 | position: {x: 0.0000000029962393, y: 0.0047077495, z: 2.3283063e-11} 499 | rotation: {x: 0.040832367, y: -0.0122753065, z: -0.011181167, w: 0.9990281} 500 | scale: {x: 0.99999994, y: 0.99999994, z: 1} 501 | - name: LeftHand 502 | parentName: LeftForeArm 503 | position: {x: 0.0000000025890767, y: 0.0052722767, z: -3.7252902e-11} 504 | rotation: {x: -0.02654678, y: -0.7247397, z: 0.021308184, w: 0.6881814} 505 | scale: {x: 0.99999994, y: 0.9999996, z: 0.9999999} 506 | - name: LeftHandIndex1 507 | parentName: LeftHand 508 | position: {x: 4.6566126e-11, y: 0.0013859977, z: -0.0000000018742867} 509 | rotation: {x: 0.056727383, y: 0.07746504, z: -0.00014853867, w: 0.9953799} 510 | scale: {x: 0.99999994, y: 1, z: 0.99999994} 511 | - name: LeftHandIndex2 512 | parentName: LeftHandIndex1 513 | position: {x: 1.11758706e-10, y: 0.0011282143, z: -7.310882e-10} 514 | rotation: {x: 0.039546326, y: -0.06709225, z: 0.00031123366, w: 0.9969627} 515 | scale: {x: 0.99999994, y: 1, z: 0.99999994} 516 | - name: LeftHandIndex3 517 | parentName: LeftHandIndex2 518 | position: {x: -3.7252902e-11, y: 0.0010213042, z: -0.0000000034901313} 519 | rotation: {x: 0.030971779, y: 0.030524252, z: -0.0008921604, w: 0.99905366} 520 | scale: {x: 0.9999997, y: 1.0000004, z: 1} 521 | - name: LeftHandIndex3_end 522 | parentName: LeftHandIndex3 523 | position: {x: -0, y: 0.0013049884, z: 0} 524 | rotation: {x: 0, y: -0, z: -0, w: 1} 525 | scale: {x: 1, y: 1, z: 1} 526 | - name: LeftHandThumb1 527 | parentName: LeftHand 528 | position: {x: 0.00065148337, y: 0.00050981034, z: 0.000024453737} 529 | rotation: {x: -0.31801257, y: -0.6509115, z: -0.30346197, w: 0.61894506} 530 | scale: {x: 1, y: 1.0000001, z: 1} 531 | - name: LeftHandThumb2 532 | parentName: LeftHandThumb1 533 | position: {x: -1.4901161e-10, y: 0.0010586779, z: -0.00000000173226} 534 | rotation: {x: 0.03336114, y: 0.013767273, z: -0.0006501377, w: 0.99934834} 535 | scale: {x: 1, y: 1, z: 1} 536 | - name: LeftHandThumb2_end 537 | parentName: LeftHandThumb2 538 | position: {x: -0, y: 0.0013225968, z: 0} 539 | rotation: {x: 0, y: -0, z: -0, w: 1} 540 | scale: {x: 1, y: 1, z: 1} 541 | - name: RightShoulder 542 | parentName: UpperChest 543 | position: {x: 0.00088280055, y: 0.0028108188, z: 0.0006496106} 544 | rotation: {x: 0.65837955, y: 0.50761116, z: -0.45999342, w: 0.31188673} 545 | scale: {x: 1, y: 1, z: 1} 546 | - name: RightArm 547 | parentName: RightShoulder 548 | position: {x: -1.4901161e-10, y: 0.002588014, z: -5.727634e-10} 549 | rotation: {x: 0.00028371805, y: 0.96439195, z: -0.10874661, w: 0.24108574} 550 | scale: {x: 1.000007, y: 0.9999955, z: 1.0000013} 551 | - name: RightForeArm 552 | parentName: RightArm 553 | position: {x: 1.5366822e-10, y: 0.004707749, z: 0.0000000024519977} 554 | rotation: {x: 0.007033843, y: 0.0044677104, z: -0.04174727, w: 0.9990935} 555 | scale: {x: 1, y: 1, z: 1.0000001} 556 | - name: RightHand 557 | parentName: RightForeArm 558 | position: {x: -7.4505804e-11, y: 0.005272276, z: 9.0338287e-10} 559 | rotation: {x: 0.008204221, y: -0.00033306266, z: 0.033037264, w: 0.9994204} 560 | scale: {x: 0.99999994, y: 0.9999999, z: 0.9999999} 561 | - name: RightHandIndex1 562 | parentName: RightHand 563 | position: {x: -2.7008354e-10, y: 0.0013859981, z: -1.16415315e-11} 564 | rotation: {x: -0.056727264, y: 0.077463634, z: 0.00014847115, w: 0.99538004} 565 | scale: {x: 1.0000001, y: 1, z: 1} 566 | - name: RightHandIndex2 567 | parentName: RightHandIndex1 568 | position: {x: -2.0489097e-10, y: 0.0011282124, z: -8.405186e-10} 569 | rotation: {x: -0.039548665, y: -0.06709124, z: -0.00031118238, w: 0.9969627} 570 | scale: {x: 1, y: 0.99999994, z: 0.99999994} 571 | - name: RightHandIndex3 572 | parentName: RightHandIndex2 573 | position: {x: -1.4901161e-10, y: 0.0010213059, z: 0.0000000013364478} 574 | rotation: {x: -0.030973844, y: 0.030523023, z: 0.00089219364, w: 0.99905366} 575 | scale: {x: 0.99999994, y: 0.9999998, z: 0.99999994} 576 | - name: RightHandIndex3_end 577 | parentName: RightHandIndex3 578 | position: {x: -0, y: 0.0013049883, z: 0} 579 | rotation: {x: 0, y: -0, z: -0, w: 1} 580 | scale: {x: 1, y: 1, z: 1} 581 | - name: RightHandThumb1 582 | parentName: RightHand 583 | position: {x: 0.00063919235, y: 0.00050981186, z: -0.00012830083} 584 | rotation: {x: 0.33303955, y: 0.76632416, z: -0.28689188, w: 0.46853498} 585 | scale: {x: 1, y: 1, z: 1} 586 | - name: RightHandThumb2 587 | parentName: RightHandThumb1 588 | position: {x: -2.9802322e-10, y: 0.001058677, z: -2.6077032e-10} 589 | rotation: {x: -0.031657245, y: 0.026193466, z: -0.010554849, w: 0.99909973} 590 | scale: {x: 0.9999999, y: 1, z: 1} 591 | - name: RightHandThumb2_end 592 | parentName: RightHandThumb2 593 | position: {x: -0, y: 0.0013225968, z: 0} 594 | rotation: {x: 0, y: -0, z: -0, w: 1} 595 | scale: {x: 1, y: 1, z: 1} 596 | - name: LeftUpLeg 597 | parentName: Hips 598 | position: {x: -0.002015291, y: 0.00058463303, z: 7.509206e-10} 599 | rotation: {x: 0.9867031, y: -0.0010609758, z: -0.16252847, w: 0.0006699397} 600 | scale: {x: 1.0000546, y: 1.0000014, z: 1.0000005} 601 | - name: LeftLeg 602 | parentName: LeftUpLeg 603 | position: {x: -1.4901161e-10, y: 0.0052617406, z: 2.4447217e-11} 604 | rotation: {x: 0.14157401, y: -0.03244448, z: -0.052854277, w: 0.9879831} 605 | scale: {x: 0.99999946, y: 0.9999988, z: 1.0000023} 606 | - name: LeftFoot 607 | parentName: LeftLeg 608 | position: {x: 5.5879353e-11, y: 0.00608811, z: 1.862645e-10} 609 | rotation: {x: -0.5438065, y: 0.19418123, z: 0.18754351, w: 0.79460406} 610 | scale: {x: 1.0000205, y: 0.9999836, z: 0.99999577} 611 | - name: LeftToes 612 | parentName: LeftFoot 613 | position: {x: 6.402843e-11, y: 0.0030125394, z: -9.3132255e-12} 614 | rotation: {x: 0.019817863, y: 0.95228684, z: -0.2982553, w: -0.061651394} 615 | scale: {x: 0.99999994, y: 0.9999999, z: 0.99999994} 616 | - name: LeftToes_end 617 | parentName: LeftToes 618 | position: {x: -0, y: 0.002132363, z: 0} 619 | rotation: {x: 0, y: -0, z: -0, w: 1} 620 | scale: {x: 1, y: 1, z: 1} 621 | - name: RightUpLeg 622 | parentName: Hips 623 | position: {x: 0.002015291, y: 0.0005846331, z: 7.520936e-10} 624 | rotation: {x: 0.9765877, y: 0.0013587964, z: 0.21511474, w: 0.0004842422} 625 | scale: {x: 0.99998695, y: 0.99999946, z: 0.9999993} 626 | - name: RightLeg 627 | parentName: RightUpLeg 628 | position: {x: 6.984919e-11, y: 0.0052617406, z: -4.8312358e-11} 629 | rotation: {x: 0.13894787, y: -0.011510127, z: 0.05917322, w: 0.9884632} 630 | scale: {x: 0.9999991, y: 1.0000004, z: 1} 631 | - name: RightFoot 632 | parentName: RightLeg 633 | position: {x: 1.3038516e-10, y: 0.0060881176, z: -1.862645e-10} 634 | rotation: {x: -0.5484955, y: -0.22882912, z: -0.17182079, w: 0.7856638} 635 | scale: {x: 0.999995, y: 1.0000037, z: 1.0000012} 636 | - name: RightToes 637 | parentName: RightFoot 638 | position: {x: -2.6193447e-10, y: 0.0030125445, z: -1.862645e-10} 639 | rotation: {x: -0.028260881, y: 0.9539412, z: -0.29757363, w: 0.025446746} 640 | scale: {x: 1.0000001, y: 1.0000002, z: 1} 641 | - name: RightToes_end 642 | parentName: RightToes 643 | position: {x: -0, y: 0.002132363, z: 0} 644 | rotation: {x: 0, y: -0, z: -0, w: 1} 645 | scale: {x: 1, y: 1, z: 1} 646 | - name: characterMedium 647 | parentName: characterMedium(Clone) 648 | position: {x: -0, y: 0, z: 0} 649 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} 650 | scale: {x: 100, y: 100, z: 100} 651 | armTwist: 0.5 652 | foreArmTwist: 0.5 653 | upperLegTwist: 0.5 654 | legTwist: 0.5 655 | armStretch: 0.05 656 | legStretch: 0.05 657 | feetSpacing: 0 658 | globalScale: 1 659 | rootMotionBoneName: 660 | hasTranslationDoF: 0 661 | hasExtraRoot: 1 662 | skeletonHasParents: 1 663 | lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: acf2b943d17916842b30544ebc84673f, type: 3} 664 | autoGenerateAvatarMappingIfUnspecified: 1 665 | animationType: 3 666 | humanoidOversampling: 1 667 | avatarSetup: 2 668 | addHumanoidExtraRootOnlyWhenUsingAvatar: 1 669 | additionalBone: 0 670 | userData: 671 | assetBundleName: 672 | assetBundleVariant: 673 | -------------------------------------------------------------------------------- /Samples~/Simple/AnimationEvents.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: 9 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: 0} 41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 12 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 1 83 | m_PVRDenoiserTypeDirect: 1 84 | m_PVRDenoiserTypeIndirect: 1 85 | m_PVRDenoiserTypeAO: 1 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 1 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_LightingSettings: {fileID: 0} 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | maxJobWorkers: 0 122 | preserveTilesOutsideBounds: 0 123 | debug: 124 | m_Flags: 0 125 | m_NavMeshData: {fileID: 0} 126 | --- !u!1 &58818021 127 | GameObject: 128 | m_ObjectHideFlags: 0 129 | m_CorrespondingSourceObject: {fileID: 0} 130 | m_PrefabInstance: {fileID: 0} 131 | m_PrefabAsset: {fileID: 0} 132 | serializedVersion: 6 133 | m_Component: 134 | - component: {fileID: 58818025} 135 | - component: {fileID: 58818024} 136 | - component: {fileID: 58818023} 137 | - component: {fileID: 58818022} 138 | m_Layer: 0 139 | m_Name: Plane (2) 140 | m_TagString: Untagged 141 | m_Icon: {fileID: 0} 142 | m_NavMeshLayer: 0 143 | m_StaticEditorFlags: 0 144 | m_IsActive: 1 145 | --- !u!64 &58818022 146 | MeshCollider: 147 | m_ObjectHideFlags: 0 148 | m_CorrespondingSourceObject: {fileID: 0} 149 | m_PrefabInstance: {fileID: 0} 150 | m_PrefabAsset: {fileID: 0} 151 | m_GameObject: {fileID: 58818021} 152 | m_Material: {fileID: 0} 153 | m_IsTrigger: 0 154 | m_Enabled: 1 155 | serializedVersion: 4 156 | m_Convex: 0 157 | m_CookingOptions: 30 158 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 159 | --- !u!23 &58818023 160 | MeshRenderer: 161 | m_ObjectHideFlags: 0 162 | m_CorrespondingSourceObject: {fileID: 0} 163 | m_PrefabInstance: {fileID: 0} 164 | m_PrefabAsset: {fileID: 0} 165 | m_GameObject: {fileID: 58818021} 166 | m_Enabled: 1 167 | m_CastShadows: 1 168 | m_ReceiveShadows: 1 169 | m_DynamicOccludee: 1 170 | m_StaticShadowCaster: 0 171 | m_MotionVectors: 1 172 | m_LightProbeUsage: 1 173 | m_ReflectionProbeUsage: 1 174 | m_RayTracingMode: 2 175 | m_RayTraceProcedural: 0 176 | m_RenderingLayerMask: 1 177 | m_RendererPriority: 0 178 | m_Materials: 179 | - {fileID: 2100000, guid: 0df18d55a0a5a1a46b98f20f17b8c354, type: 2} 180 | m_StaticBatchInfo: 181 | firstSubMesh: 0 182 | subMeshCount: 0 183 | m_StaticBatchRoot: {fileID: 0} 184 | m_ProbeAnchor: {fileID: 0} 185 | m_LightProbeVolumeOverride: {fileID: 0} 186 | m_ScaleInLightmap: 1 187 | m_ReceiveGI: 1 188 | m_PreserveUVs: 0 189 | m_IgnoreNormalsForChartDetection: 0 190 | m_ImportantGI: 0 191 | m_StitchLightmapSeams: 1 192 | m_SelectedEditorRenderState: 3 193 | m_MinimumChartSize: 4 194 | m_AutoUVMaxDistance: 0.5 195 | m_AutoUVMaxAngle: 89 196 | m_LightmapParameters: {fileID: 0} 197 | m_SortingLayerID: 0 198 | m_SortingLayer: 0 199 | m_SortingOrder: 0 200 | m_AdditionalVertexStreams: {fileID: 0} 201 | --- !u!33 &58818024 202 | MeshFilter: 203 | m_ObjectHideFlags: 0 204 | m_CorrespondingSourceObject: {fileID: 0} 205 | m_PrefabInstance: {fileID: 0} 206 | m_PrefabAsset: {fileID: 0} 207 | m_GameObject: {fileID: 58818021} 208 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 209 | --- !u!4 &58818025 210 | Transform: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 58818021} 216 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 217 | m_LocalPosition: {x: 1.25, y: 0, z: -2.75} 218 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 219 | m_ConstrainProportionsScale: 0 220 | m_Children: [] 221 | m_Father: {fileID: 0} 222 | m_RootOrder: 4 223 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 224 | --- !u!1 &461130793 225 | GameObject: 226 | m_ObjectHideFlags: 0 227 | m_CorrespondingSourceObject: {fileID: 0} 228 | m_PrefabInstance: {fileID: 0} 229 | m_PrefabAsset: {fileID: 0} 230 | serializedVersion: 6 231 | m_Component: 232 | - component: {fileID: 461130797} 233 | - component: {fileID: 461130796} 234 | - component: {fileID: 461130795} 235 | - component: {fileID: 461130794} 236 | m_Layer: 0 237 | m_Name: Plane 238 | m_TagString: Untagged 239 | m_Icon: {fileID: 0} 240 | m_NavMeshLayer: 0 241 | m_StaticEditorFlags: 0 242 | m_IsActive: 1 243 | --- !u!64 &461130794 244 | MeshCollider: 245 | m_ObjectHideFlags: 0 246 | m_CorrespondingSourceObject: {fileID: 0} 247 | m_PrefabInstance: {fileID: 0} 248 | m_PrefabAsset: {fileID: 0} 249 | m_GameObject: {fileID: 461130793} 250 | m_Material: {fileID: 0} 251 | m_IsTrigger: 0 252 | m_Enabled: 1 253 | serializedVersion: 4 254 | m_Convex: 0 255 | m_CookingOptions: 30 256 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 257 | --- !u!23 &461130795 258 | MeshRenderer: 259 | m_ObjectHideFlags: 0 260 | m_CorrespondingSourceObject: {fileID: 0} 261 | m_PrefabInstance: {fileID: 0} 262 | m_PrefabAsset: {fileID: 0} 263 | m_GameObject: {fileID: 461130793} 264 | m_Enabled: 1 265 | m_CastShadows: 1 266 | m_ReceiveShadows: 1 267 | m_DynamicOccludee: 1 268 | m_StaticShadowCaster: 0 269 | m_MotionVectors: 1 270 | m_LightProbeUsage: 1 271 | m_ReflectionProbeUsage: 1 272 | m_RayTracingMode: 2 273 | m_RayTraceProcedural: 0 274 | m_RenderingLayerMask: 1 275 | m_RendererPriority: 0 276 | m_Materials: 277 | - {fileID: 2100000, guid: af9689dc516cf52438bc70d4469d9169, type: 2} 278 | m_StaticBatchInfo: 279 | firstSubMesh: 0 280 | subMeshCount: 0 281 | m_StaticBatchRoot: {fileID: 0} 282 | m_ProbeAnchor: {fileID: 0} 283 | m_LightProbeVolumeOverride: {fileID: 0} 284 | m_ScaleInLightmap: 1 285 | m_ReceiveGI: 1 286 | m_PreserveUVs: 0 287 | m_IgnoreNormalsForChartDetection: 0 288 | m_ImportantGI: 0 289 | m_StitchLightmapSeams: 1 290 | m_SelectedEditorRenderState: 3 291 | m_MinimumChartSize: 4 292 | m_AutoUVMaxDistance: 0.5 293 | m_AutoUVMaxAngle: 89 294 | m_LightmapParameters: {fileID: 0} 295 | m_SortingLayerID: 0 296 | m_SortingLayer: 0 297 | m_SortingOrder: 0 298 | m_AdditionalVertexStreams: {fileID: 0} 299 | --- !u!33 &461130796 300 | MeshFilter: 301 | m_ObjectHideFlags: 0 302 | m_CorrespondingSourceObject: {fileID: 0} 303 | m_PrefabInstance: {fileID: 0} 304 | m_PrefabAsset: {fileID: 0} 305 | m_GameObject: {fileID: 461130793} 306 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 307 | --- !u!4 &461130797 308 | Transform: 309 | m_ObjectHideFlags: 0 310 | m_CorrespondingSourceObject: {fileID: 0} 311 | m_PrefabInstance: {fileID: 0} 312 | m_PrefabAsset: {fileID: 0} 313 | m_GameObject: {fileID: 461130793} 314 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 315 | m_LocalPosition: {x: -3.75, y: 0, z: -2.75} 316 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 317 | m_ConstrainProportionsScale: 0 318 | m_Children: [] 319 | m_Father: {fileID: 0} 320 | m_RootOrder: 2 321 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 322 | --- !u!1 &700363454 323 | GameObject: 324 | m_ObjectHideFlags: 0 325 | m_CorrespondingSourceObject: {fileID: 0} 326 | m_PrefabInstance: {fileID: 0} 327 | m_PrefabAsset: {fileID: 0} 328 | serializedVersion: 6 329 | m_Component: 330 | - component: {fileID: 700363458} 331 | - component: {fileID: 700363457} 332 | - component: {fileID: 700363456} 333 | - component: {fileID: 700363455} 334 | m_Layer: 0 335 | m_Name: Plane (3) 336 | m_TagString: Untagged 337 | m_Icon: {fileID: 0} 338 | m_NavMeshLayer: 0 339 | m_StaticEditorFlags: 0 340 | m_IsActive: 1 341 | --- !u!64 &700363455 342 | MeshCollider: 343 | m_ObjectHideFlags: 0 344 | m_CorrespondingSourceObject: {fileID: 0} 345 | m_PrefabInstance: {fileID: 0} 346 | m_PrefabAsset: {fileID: 0} 347 | m_GameObject: {fileID: 700363454} 348 | m_Material: {fileID: 0} 349 | m_IsTrigger: 0 350 | m_Enabled: 1 351 | serializedVersion: 4 352 | m_Convex: 0 353 | m_CookingOptions: 30 354 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 355 | --- !u!23 &700363456 356 | MeshRenderer: 357 | m_ObjectHideFlags: 0 358 | m_CorrespondingSourceObject: {fileID: 0} 359 | m_PrefabInstance: {fileID: 0} 360 | m_PrefabAsset: {fileID: 0} 361 | m_GameObject: {fileID: 700363454} 362 | m_Enabled: 1 363 | m_CastShadows: 1 364 | m_ReceiveShadows: 1 365 | m_DynamicOccludee: 1 366 | m_StaticShadowCaster: 0 367 | m_MotionVectors: 1 368 | m_LightProbeUsage: 1 369 | m_ReflectionProbeUsage: 1 370 | m_RayTracingMode: 2 371 | m_RayTraceProcedural: 0 372 | m_RenderingLayerMask: 1 373 | m_RendererPriority: 0 374 | m_Materials: 375 | - {fileID: 2100000, guid: 43cb47231ab57d54d9538a0c167b4211, type: 2} 376 | m_StaticBatchInfo: 377 | firstSubMesh: 0 378 | subMeshCount: 0 379 | m_StaticBatchRoot: {fileID: 0} 380 | m_ProbeAnchor: {fileID: 0} 381 | m_LightProbeVolumeOverride: {fileID: 0} 382 | m_ScaleInLightmap: 1 383 | m_ReceiveGI: 1 384 | m_PreserveUVs: 0 385 | m_IgnoreNormalsForChartDetection: 0 386 | m_ImportantGI: 0 387 | m_StitchLightmapSeams: 1 388 | m_SelectedEditorRenderState: 3 389 | m_MinimumChartSize: 4 390 | m_AutoUVMaxDistance: 0.5 391 | m_AutoUVMaxAngle: 89 392 | m_LightmapParameters: {fileID: 0} 393 | m_SortingLayerID: 0 394 | m_SortingLayer: 0 395 | m_SortingOrder: 0 396 | m_AdditionalVertexStreams: {fileID: 0} 397 | --- !u!33 &700363457 398 | MeshFilter: 399 | m_ObjectHideFlags: 0 400 | m_CorrespondingSourceObject: {fileID: 0} 401 | m_PrefabInstance: {fileID: 0} 402 | m_PrefabAsset: {fileID: 0} 403 | m_GameObject: {fileID: 700363454} 404 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 405 | --- !u!4 &700363458 406 | Transform: 407 | m_ObjectHideFlags: 0 408 | m_CorrespondingSourceObject: {fileID: 0} 409 | m_PrefabInstance: {fileID: 0} 410 | m_PrefabAsset: {fileID: 0} 411 | m_GameObject: {fileID: 700363454} 412 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 413 | m_LocalPosition: {x: 3.75, y: 0, z: -2.75} 414 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 415 | m_ConstrainProportionsScale: 0 416 | m_Children: [] 417 | m_Father: {fileID: 0} 418 | m_RootOrder: 5 419 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 420 | --- !u!1 &1282101914 421 | GameObject: 422 | m_ObjectHideFlags: 0 423 | m_CorrespondingSourceObject: {fileID: 0} 424 | m_PrefabInstance: {fileID: 0} 425 | m_PrefabAsset: {fileID: 0} 426 | serializedVersion: 6 427 | m_Component: 428 | - component: {fileID: 1282101916} 429 | - component: {fileID: 1282101915} 430 | m_Layer: 0 431 | m_Name: Directional Light 432 | m_TagString: Untagged 433 | m_Icon: {fileID: 0} 434 | m_NavMeshLayer: 0 435 | m_StaticEditorFlags: 0 436 | m_IsActive: 1 437 | --- !u!108 &1282101915 438 | Light: 439 | m_ObjectHideFlags: 0 440 | m_CorrespondingSourceObject: {fileID: 0} 441 | m_PrefabInstance: {fileID: 0} 442 | m_PrefabAsset: {fileID: 0} 443 | m_GameObject: {fileID: 1282101914} 444 | m_Enabled: 1 445 | serializedVersion: 10 446 | m_Type: 1 447 | m_Shape: 0 448 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 449 | m_Intensity: 1 450 | m_Range: 10 451 | m_SpotAngle: 30 452 | m_InnerSpotAngle: 21.80208 453 | m_CookieSize: 10 454 | m_Shadows: 455 | m_Type: 2 456 | m_Resolution: -1 457 | m_CustomResolution: -1 458 | m_Strength: 1 459 | m_Bias: 0.05 460 | m_NormalBias: 0.4 461 | m_NearPlane: 0.2 462 | m_CullingMatrixOverride: 463 | e00: 1 464 | e01: 0 465 | e02: 0 466 | e03: 0 467 | e10: 0 468 | e11: 1 469 | e12: 0 470 | e13: 0 471 | e20: 0 472 | e21: 0 473 | e22: 1 474 | e23: 0 475 | e30: 0 476 | e31: 0 477 | e32: 0 478 | e33: 1 479 | m_UseCullingMatrixOverride: 0 480 | m_Cookie: {fileID: 0} 481 | m_DrawHalo: 0 482 | m_Flare: {fileID: 0} 483 | m_RenderMode: 0 484 | m_CullingMask: 485 | serializedVersion: 2 486 | m_Bits: 4294967295 487 | m_RenderingLayerMask: 1 488 | m_Lightmapping: 4 489 | m_LightShadowCasterMode: 0 490 | m_AreaSize: {x: 1, y: 1} 491 | m_BounceIntensity: 1 492 | m_ColorTemperature: 6570 493 | m_UseColorTemperature: 0 494 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 495 | m_UseBoundingSphereOverride: 0 496 | m_UseViewFrustumForShadowCasterCull: 1 497 | m_ShadowRadius: 0 498 | m_ShadowAngle: 0 499 | --- !u!4 &1282101916 500 | Transform: 501 | m_ObjectHideFlags: 0 502 | m_CorrespondingSourceObject: {fileID: 0} 503 | m_PrefabInstance: {fileID: 0} 504 | m_PrefabAsset: {fileID: 0} 505 | m_GameObject: {fileID: 1282101914} 506 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 507 | m_LocalPosition: {x: 0, y: 3, z: 0} 508 | m_LocalScale: {x: 1, y: 1, z: 1} 509 | m_ConstrainProportionsScale: 0 510 | m_Children: [] 511 | m_Father: {fileID: 0} 512 | m_RootOrder: 1 513 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 514 | --- !u!1 &1899507166 515 | GameObject: 516 | m_ObjectHideFlags: 0 517 | m_CorrespondingSourceObject: {fileID: 0} 518 | m_PrefabInstance: {fileID: 0} 519 | m_PrefabAsset: {fileID: 0} 520 | serializedVersion: 6 521 | m_Component: 522 | - component: {fileID: 1899507170} 523 | - component: {fileID: 1899507169} 524 | - component: {fileID: 1899507168} 525 | - component: {fileID: 1899507167} 526 | m_Layer: 0 527 | m_Name: Plane (1) 528 | m_TagString: Untagged 529 | m_Icon: {fileID: 0} 530 | m_NavMeshLayer: 0 531 | m_StaticEditorFlags: 0 532 | m_IsActive: 1 533 | --- !u!64 &1899507167 534 | MeshCollider: 535 | m_ObjectHideFlags: 0 536 | m_CorrespondingSourceObject: {fileID: 0} 537 | m_PrefabInstance: {fileID: 0} 538 | m_PrefabAsset: {fileID: 0} 539 | m_GameObject: {fileID: 1899507166} 540 | m_Material: {fileID: 0} 541 | m_IsTrigger: 0 542 | m_Enabled: 1 543 | serializedVersion: 4 544 | m_Convex: 0 545 | m_CookingOptions: 30 546 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 547 | --- !u!23 &1899507168 548 | MeshRenderer: 549 | m_ObjectHideFlags: 0 550 | m_CorrespondingSourceObject: {fileID: 0} 551 | m_PrefabInstance: {fileID: 0} 552 | m_PrefabAsset: {fileID: 0} 553 | m_GameObject: {fileID: 1899507166} 554 | m_Enabled: 1 555 | m_CastShadows: 1 556 | m_ReceiveShadows: 1 557 | m_DynamicOccludee: 1 558 | m_StaticShadowCaster: 0 559 | m_MotionVectors: 1 560 | m_LightProbeUsage: 1 561 | m_ReflectionProbeUsage: 1 562 | m_RayTracingMode: 2 563 | m_RayTraceProcedural: 0 564 | m_RenderingLayerMask: 1 565 | m_RendererPriority: 0 566 | m_Materials: 567 | - {fileID: 2100000, guid: eea70cf0404c1af43bd7c19b0d4d689a, type: 2} 568 | m_StaticBatchInfo: 569 | firstSubMesh: 0 570 | subMeshCount: 0 571 | m_StaticBatchRoot: {fileID: 0} 572 | m_ProbeAnchor: {fileID: 0} 573 | m_LightProbeVolumeOverride: {fileID: 0} 574 | m_ScaleInLightmap: 1 575 | m_ReceiveGI: 1 576 | m_PreserveUVs: 0 577 | m_IgnoreNormalsForChartDetection: 0 578 | m_ImportantGI: 0 579 | m_StitchLightmapSeams: 1 580 | m_SelectedEditorRenderState: 3 581 | m_MinimumChartSize: 4 582 | m_AutoUVMaxDistance: 0.5 583 | m_AutoUVMaxAngle: 89 584 | m_LightmapParameters: {fileID: 0} 585 | m_SortingLayerID: 0 586 | m_SortingLayer: 0 587 | m_SortingOrder: 0 588 | m_AdditionalVertexStreams: {fileID: 0} 589 | --- !u!33 &1899507169 590 | MeshFilter: 591 | m_ObjectHideFlags: 0 592 | m_CorrespondingSourceObject: {fileID: 0} 593 | m_PrefabInstance: {fileID: 0} 594 | m_PrefabAsset: {fileID: 0} 595 | m_GameObject: {fileID: 1899507166} 596 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 597 | --- !u!4 &1899507170 598 | Transform: 599 | m_ObjectHideFlags: 0 600 | m_CorrespondingSourceObject: {fileID: 0} 601 | m_PrefabInstance: {fileID: 0} 602 | m_PrefabAsset: {fileID: 0} 603 | m_GameObject: {fileID: 1899507166} 604 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 605 | m_LocalPosition: {x: -1.25, y: 0, z: -2.75} 606 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 607 | m_ConstrainProportionsScale: 0 608 | m_Children: [] 609 | m_Father: {fileID: 0} 610 | m_RootOrder: 3 611 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 612 | --- !u!1 &1920874029 613 | GameObject: 614 | m_ObjectHideFlags: 0 615 | m_CorrespondingSourceObject: {fileID: 0} 616 | m_PrefabInstance: {fileID: 0} 617 | m_PrefabAsset: {fileID: 0} 618 | serializedVersion: 6 619 | m_Component: 620 | - component: {fileID: 1920874032} 621 | - component: {fileID: 1920874031} 622 | - component: {fileID: 1920874030} 623 | m_Layer: 0 624 | m_Name: Main Camera 625 | m_TagString: MainCamera 626 | m_Icon: {fileID: 0} 627 | m_NavMeshLayer: 0 628 | m_StaticEditorFlags: 0 629 | m_IsActive: 1 630 | --- !u!81 &1920874030 631 | AudioListener: 632 | m_ObjectHideFlags: 0 633 | m_CorrespondingSourceObject: {fileID: 0} 634 | m_PrefabInstance: {fileID: 0} 635 | m_PrefabAsset: {fileID: 0} 636 | m_GameObject: {fileID: 1920874029} 637 | m_Enabled: 1 638 | --- !u!20 &1920874031 639 | Camera: 640 | m_ObjectHideFlags: 0 641 | m_CorrespondingSourceObject: {fileID: 0} 642 | m_PrefabInstance: {fileID: 0} 643 | m_PrefabAsset: {fileID: 0} 644 | m_GameObject: {fileID: 1920874029} 645 | m_Enabled: 1 646 | serializedVersion: 2 647 | m_ClearFlags: 1 648 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 649 | m_projectionMatrixMode: 1 650 | m_GateFitMode: 2 651 | m_FOVAxisMode: 0 652 | m_SensorSize: {x: 36, y: 24} 653 | m_LensShift: {x: 0, y: 0} 654 | m_FocalLength: 50 655 | m_NormalizedViewPortRect: 656 | serializedVersion: 2 657 | x: 0 658 | y: 0 659 | width: 1 660 | height: 1 661 | near clip plane: 0.3 662 | far clip plane: 1000 663 | field of view: 60 664 | orthographic: 0 665 | orthographic size: 5 666 | m_Depth: -1 667 | m_CullingMask: 668 | serializedVersion: 2 669 | m_Bits: 4294967295 670 | m_RenderingPath: -1 671 | m_TargetTexture: {fileID: 0} 672 | m_TargetDisplay: 0 673 | m_TargetEye: 3 674 | m_HDR: 1 675 | m_AllowMSAA: 1 676 | m_AllowDynamicResolution: 0 677 | m_ForceIntoRT: 0 678 | m_OcclusionCulling: 1 679 | m_StereoConvergence: 10 680 | m_StereoSeparation: 0.022 681 | --- !u!4 &1920874032 682 | Transform: 683 | m_ObjectHideFlags: 0 684 | m_CorrespondingSourceObject: {fileID: 0} 685 | m_PrefabInstance: {fileID: 0} 686 | m_PrefabAsset: {fileID: 0} 687 | m_GameObject: {fileID: 1920874029} 688 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 689 | m_LocalPosition: {x: 0, y: 1, z: -10} 690 | m_LocalScale: {x: 1, y: 1, z: 1} 691 | m_ConstrainProportionsScale: 0 692 | m_Children: [] 693 | m_Father: {fileID: 0} 694 | m_RootOrder: 0 695 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 696 | --- !u!1001 &1941780681888230143 697 | PrefabInstance: 698 | m_ObjectHideFlags: 0 699 | serializedVersion: 2 700 | m_Modification: 701 | m_TransformParent: {fileID: 0} 702 | m_Modifications: 703 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 704 | propertyPath: m_RootOrder 705 | value: 7 706 | objectReference: {fileID: 0} 707 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 708 | propertyPath: m_LocalPosition.x 709 | value: -4.72 710 | objectReference: {fileID: 0} 711 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 712 | propertyPath: m_LocalPosition.y 713 | value: 0 714 | objectReference: {fileID: 0} 715 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 716 | propertyPath: m_LocalPosition.z 717 | value: -2.65 718 | objectReference: {fileID: 0} 719 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 720 | propertyPath: m_LocalRotation.w 721 | value: 1 722 | objectReference: {fileID: 0} 723 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 724 | propertyPath: m_LocalRotation.x 725 | value: 0 726 | objectReference: {fileID: 0} 727 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 728 | propertyPath: m_LocalRotation.y 729 | value: 0 730 | objectReference: {fileID: 0} 731 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 732 | propertyPath: m_LocalRotation.z 733 | value: 0 734 | objectReference: {fileID: 0} 735 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 736 | propertyPath: m_LocalEulerAnglesHint.x 737 | value: 0 738 | objectReference: {fileID: 0} 739 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 740 | propertyPath: m_LocalEulerAnglesHint.y 741 | value: 0 742 | objectReference: {fileID: 0} 743 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 744 | propertyPath: m_LocalEulerAnglesHint.z 745 | value: 0 746 | objectReference: {fileID: 0} 747 | - target: {fileID: 6258439626626473141, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 748 | propertyPath: m_Name 749 | value: Character (Animation Events) 750 | objectReference: {fileID: 0} 751 | - target: {fileID: 6258439626626473141, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 752 | propertyPath: m_IsActive 753 | value: 1 754 | objectReference: {fileID: 0} 755 | m_RemovedComponents: [] 756 | m_SourcePrefab: {fileID: 100100000, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 757 | --- !u!1001 &5487889666597454310 758 | PrefabInstance: 759 | m_ObjectHideFlags: 0 760 | serializedVersion: 2 761 | m_Modification: 762 | m_TransformParent: {fileID: 0} 763 | m_Modifications: 764 | - target: {fileID: 5487889665871764745, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 765 | propertyPath: m_Name 766 | value: Character (Auto Detect) 767 | objectReference: {fileID: 0} 768 | - target: {fileID: 5487889665871764745, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 769 | propertyPath: m_IsActive 770 | value: 0 771 | objectReference: {fileID: 0} 772 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 773 | propertyPath: m_RootOrder 774 | value: 6 775 | objectReference: {fileID: 0} 776 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 777 | propertyPath: m_LocalPosition.x 778 | value: -4.72 779 | objectReference: {fileID: 0} 780 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 781 | propertyPath: m_LocalPosition.y 782 | value: 0 783 | objectReference: {fileID: 0} 784 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 785 | propertyPath: m_LocalPosition.z 786 | value: -2.65 787 | objectReference: {fileID: 0} 788 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 789 | propertyPath: m_LocalRotation.w 790 | value: 1 791 | objectReference: {fileID: 0} 792 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 793 | propertyPath: m_LocalRotation.x 794 | value: -0 795 | objectReference: {fileID: 0} 796 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 797 | propertyPath: m_LocalRotation.y 798 | value: -0 799 | objectReference: {fileID: 0} 800 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 801 | propertyPath: m_LocalRotation.z 802 | value: -0 803 | objectReference: {fileID: 0} 804 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 805 | propertyPath: m_LocalEulerAnglesHint.x 806 | value: 0 807 | objectReference: {fileID: 0} 808 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 809 | propertyPath: m_LocalEulerAnglesHint.y 810 | value: 0 811 | objectReference: {fileID: 0} 812 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 813 | propertyPath: m_LocalEulerAnglesHint.z 814 | value: 0 815 | objectReference: {fileID: 0} 816 | m_RemovedComponents: [] 817 | m_SourcePrefab: {fileID: 100100000, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 818 | -------------------------------------------------------------------------------- /Samples~/Simple/AutoDetection.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: 9 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: 0} 41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 12 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 256 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 1 83 | m_PVRDenoiserTypeDirect: 1 84 | m_PVRDenoiserTypeIndirect: 1 85 | m_PVRDenoiserTypeAO: 1 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 1 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_LightingSettings: {fileID: 0} 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | maxJobWorkers: 0 122 | preserveTilesOutsideBounds: 0 123 | debug: 124 | m_Flags: 0 125 | m_NavMeshData: {fileID: 0} 126 | --- !u!1 &58818021 127 | GameObject: 128 | m_ObjectHideFlags: 0 129 | m_CorrespondingSourceObject: {fileID: 0} 130 | m_PrefabInstance: {fileID: 0} 131 | m_PrefabAsset: {fileID: 0} 132 | serializedVersion: 6 133 | m_Component: 134 | - component: {fileID: 58818025} 135 | - component: {fileID: 58818024} 136 | - component: {fileID: 58818023} 137 | - component: {fileID: 58818022} 138 | m_Layer: 0 139 | m_Name: Plane (2) 140 | m_TagString: Untagged 141 | m_Icon: {fileID: 0} 142 | m_NavMeshLayer: 0 143 | m_StaticEditorFlags: 0 144 | m_IsActive: 1 145 | --- !u!64 &58818022 146 | MeshCollider: 147 | m_ObjectHideFlags: 0 148 | m_CorrespondingSourceObject: {fileID: 0} 149 | m_PrefabInstance: {fileID: 0} 150 | m_PrefabAsset: {fileID: 0} 151 | m_GameObject: {fileID: 58818021} 152 | m_Material: {fileID: 0} 153 | m_IsTrigger: 0 154 | m_Enabled: 1 155 | serializedVersion: 4 156 | m_Convex: 0 157 | m_CookingOptions: 30 158 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 159 | --- !u!23 &58818023 160 | MeshRenderer: 161 | m_ObjectHideFlags: 0 162 | m_CorrespondingSourceObject: {fileID: 0} 163 | m_PrefabInstance: {fileID: 0} 164 | m_PrefabAsset: {fileID: 0} 165 | m_GameObject: {fileID: 58818021} 166 | m_Enabled: 1 167 | m_CastShadows: 1 168 | m_ReceiveShadows: 1 169 | m_DynamicOccludee: 1 170 | m_StaticShadowCaster: 0 171 | m_MotionVectors: 1 172 | m_LightProbeUsage: 1 173 | m_ReflectionProbeUsage: 1 174 | m_RayTracingMode: 2 175 | m_RayTraceProcedural: 0 176 | m_RenderingLayerMask: 1 177 | m_RendererPriority: 0 178 | m_Materials: 179 | - {fileID: 2100000, guid: 0df18d55a0a5a1a46b98f20f17b8c354, type: 2} 180 | m_StaticBatchInfo: 181 | firstSubMesh: 0 182 | subMeshCount: 0 183 | m_StaticBatchRoot: {fileID: 0} 184 | m_ProbeAnchor: {fileID: 0} 185 | m_LightProbeVolumeOverride: {fileID: 0} 186 | m_ScaleInLightmap: 1 187 | m_ReceiveGI: 1 188 | m_PreserveUVs: 0 189 | m_IgnoreNormalsForChartDetection: 0 190 | m_ImportantGI: 0 191 | m_StitchLightmapSeams: 1 192 | m_SelectedEditorRenderState: 3 193 | m_MinimumChartSize: 4 194 | m_AutoUVMaxDistance: 0.5 195 | m_AutoUVMaxAngle: 89 196 | m_LightmapParameters: {fileID: 0} 197 | m_SortingLayerID: 0 198 | m_SortingLayer: 0 199 | m_SortingOrder: 0 200 | m_AdditionalVertexStreams: {fileID: 0} 201 | --- !u!33 &58818024 202 | MeshFilter: 203 | m_ObjectHideFlags: 0 204 | m_CorrespondingSourceObject: {fileID: 0} 205 | m_PrefabInstance: {fileID: 0} 206 | m_PrefabAsset: {fileID: 0} 207 | m_GameObject: {fileID: 58818021} 208 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 209 | --- !u!4 &58818025 210 | Transform: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 58818021} 216 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 217 | m_LocalPosition: {x: 1.25, y: 0, z: -2.75} 218 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 219 | m_ConstrainProportionsScale: 0 220 | m_Children: [] 221 | m_Father: {fileID: 0} 222 | m_RootOrder: 4 223 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 224 | --- !u!1 &461130793 225 | GameObject: 226 | m_ObjectHideFlags: 0 227 | m_CorrespondingSourceObject: {fileID: 0} 228 | m_PrefabInstance: {fileID: 0} 229 | m_PrefabAsset: {fileID: 0} 230 | serializedVersion: 6 231 | m_Component: 232 | - component: {fileID: 461130797} 233 | - component: {fileID: 461130796} 234 | - component: {fileID: 461130795} 235 | - component: {fileID: 461130794} 236 | m_Layer: 0 237 | m_Name: Plane 238 | m_TagString: Untagged 239 | m_Icon: {fileID: 0} 240 | m_NavMeshLayer: 0 241 | m_StaticEditorFlags: 0 242 | m_IsActive: 1 243 | --- !u!64 &461130794 244 | MeshCollider: 245 | m_ObjectHideFlags: 0 246 | m_CorrespondingSourceObject: {fileID: 0} 247 | m_PrefabInstance: {fileID: 0} 248 | m_PrefabAsset: {fileID: 0} 249 | m_GameObject: {fileID: 461130793} 250 | m_Material: {fileID: 0} 251 | m_IsTrigger: 0 252 | m_Enabled: 1 253 | serializedVersion: 4 254 | m_Convex: 0 255 | m_CookingOptions: 30 256 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 257 | --- !u!23 &461130795 258 | MeshRenderer: 259 | m_ObjectHideFlags: 0 260 | m_CorrespondingSourceObject: {fileID: 0} 261 | m_PrefabInstance: {fileID: 0} 262 | m_PrefabAsset: {fileID: 0} 263 | m_GameObject: {fileID: 461130793} 264 | m_Enabled: 1 265 | m_CastShadows: 1 266 | m_ReceiveShadows: 1 267 | m_DynamicOccludee: 1 268 | m_StaticShadowCaster: 0 269 | m_MotionVectors: 1 270 | m_LightProbeUsage: 1 271 | m_ReflectionProbeUsage: 1 272 | m_RayTracingMode: 2 273 | m_RayTraceProcedural: 0 274 | m_RenderingLayerMask: 1 275 | m_RendererPriority: 0 276 | m_Materials: 277 | - {fileID: 2100000, guid: af9689dc516cf52438bc70d4469d9169, type: 2} 278 | m_StaticBatchInfo: 279 | firstSubMesh: 0 280 | subMeshCount: 0 281 | m_StaticBatchRoot: {fileID: 0} 282 | m_ProbeAnchor: {fileID: 0} 283 | m_LightProbeVolumeOverride: {fileID: 0} 284 | m_ScaleInLightmap: 1 285 | m_ReceiveGI: 1 286 | m_PreserveUVs: 0 287 | m_IgnoreNormalsForChartDetection: 0 288 | m_ImportantGI: 0 289 | m_StitchLightmapSeams: 1 290 | m_SelectedEditorRenderState: 3 291 | m_MinimumChartSize: 4 292 | m_AutoUVMaxDistance: 0.5 293 | m_AutoUVMaxAngle: 89 294 | m_LightmapParameters: {fileID: 0} 295 | m_SortingLayerID: 0 296 | m_SortingLayer: 0 297 | m_SortingOrder: 0 298 | m_AdditionalVertexStreams: {fileID: 0} 299 | --- !u!33 &461130796 300 | MeshFilter: 301 | m_ObjectHideFlags: 0 302 | m_CorrespondingSourceObject: {fileID: 0} 303 | m_PrefabInstance: {fileID: 0} 304 | m_PrefabAsset: {fileID: 0} 305 | m_GameObject: {fileID: 461130793} 306 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 307 | --- !u!4 &461130797 308 | Transform: 309 | m_ObjectHideFlags: 0 310 | m_CorrespondingSourceObject: {fileID: 0} 311 | m_PrefabInstance: {fileID: 0} 312 | m_PrefabAsset: {fileID: 0} 313 | m_GameObject: {fileID: 461130793} 314 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 315 | m_LocalPosition: {x: -3.75, y: 0, z: -2.75} 316 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 317 | m_ConstrainProportionsScale: 0 318 | m_Children: [] 319 | m_Father: {fileID: 0} 320 | m_RootOrder: 2 321 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 322 | --- !u!1 &700363454 323 | GameObject: 324 | m_ObjectHideFlags: 0 325 | m_CorrespondingSourceObject: {fileID: 0} 326 | m_PrefabInstance: {fileID: 0} 327 | m_PrefabAsset: {fileID: 0} 328 | serializedVersion: 6 329 | m_Component: 330 | - component: {fileID: 700363458} 331 | - component: {fileID: 700363457} 332 | - component: {fileID: 700363456} 333 | - component: {fileID: 700363455} 334 | m_Layer: 0 335 | m_Name: Plane (3) 336 | m_TagString: Untagged 337 | m_Icon: {fileID: 0} 338 | m_NavMeshLayer: 0 339 | m_StaticEditorFlags: 0 340 | m_IsActive: 1 341 | --- !u!64 &700363455 342 | MeshCollider: 343 | m_ObjectHideFlags: 0 344 | m_CorrespondingSourceObject: {fileID: 0} 345 | m_PrefabInstance: {fileID: 0} 346 | m_PrefabAsset: {fileID: 0} 347 | m_GameObject: {fileID: 700363454} 348 | m_Material: {fileID: 0} 349 | m_IsTrigger: 0 350 | m_Enabled: 1 351 | serializedVersion: 4 352 | m_Convex: 0 353 | m_CookingOptions: 30 354 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 355 | --- !u!23 &700363456 356 | MeshRenderer: 357 | m_ObjectHideFlags: 0 358 | m_CorrespondingSourceObject: {fileID: 0} 359 | m_PrefabInstance: {fileID: 0} 360 | m_PrefabAsset: {fileID: 0} 361 | m_GameObject: {fileID: 700363454} 362 | m_Enabled: 1 363 | m_CastShadows: 1 364 | m_ReceiveShadows: 1 365 | m_DynamicOccludee: 1 366 | m_StaticShadowCaster: 0 367 | m_MotionVectors: 1 368 | m_LightProbeUsage: 1 369 | m_ReflectionProbeUsage: 1 370 | m_RayTracingMode: 2 371 | m_RayTraceProcedural: 0 372 | m_RenderingLayerMask: 1 373 | m_RendererPriority: 0 374 | m_Materials: 375 | - {fileID: 2100000, guid: 43cb47231ab57d54d9538a0c167b4211, type: 2} 376 | m_StaticBatchInfo: 377 | firstSubMesh: 0 378 | subMeshCount: 0 379 | m_StaticBatchRoot: {fileID: 0} 380 | m_ProbeAnchor: {fileID: 0} 381 | m_LightProbeVolumeOverride: {fileID: 0} 382 | m_ScaleInLightmap: 1 383 | m_ReceiveGI: 1 384 | m_PreserveUVs: 0 385 | m_IgnoreNormalsForChartDetection: 0 386 | m_ImportantGI: 0 387 | m_StitchLightmapSeams: 1 388 | m_SelectedEditorRenderState: 3 389 | m_MinimumChartSize: 4 390 | m_AutoUVMaxDistance: 0.5 391 | m_AutoUVMaxAngle: 89 392 | m_LightmapParameters: {fileID: 0} 393 | m_SortingLayerID: 0 394 | m_SortingLayer: 0 395 | m_SortingOrder: 0 396 | m_AdditionalVertexStreams: {fileID: 0} 397 | --- !u!33 &700363457 398 | MeshFilter: 399 | m_ObjectHideFlags: 0 400 | m_CorrespondingSourceObject: {fileID: 0} 401 | m_PrefabInstance: {fileID: 0} 402 | m_PrefabAsset: {fileID: 0} 403 | m_GameObject: {fileID: 700363454} 404 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 405 | --- !u!4 &700363458 406 | Transform: 407 | m_ObjectHideFlags: 0 408 | m_CorrespondingSourceObject: {fileID: 0} 409 | m_PrefabInstance: {fileID: 0} 410 | m_PrefabAsset: {fileID: 0} 411 | m_GameObject: {fileID: 700363454} 412 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 413 | m_LocalPosition: {x: 3.75, y: 0, z: -2.75} 414 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 415 | m_ConstrainProportionsScale: 0 416 | m_Children: [] 417 | m_Father: {fileID: 0} 418 | m_RootOrder: 5 419 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 420 | --- !u!1 &1282101914 421 | GameObject: 422 | m_ObjectHideFlags: 0 423 | m_CorrespondingSourceObject: {fileID: 0} 424 | m_PrefabInstance: {fileID: 0} 425 | m_PrefabAsset: {fileID: 0} 426 | serializedVersion: 6 427 | m_Component: 428 | - component: {fileID: 1282101916} 429 | - component: {fileID: 1282101915} 430 | m_Layer: 0 431 | m_Name: Directional Light 432 | m_TagString: Untagged 433 | m_Icon: {fileID: 0} 434 | m_NavMeshLayer: 0 435 | m_StaticEditorFlags: 0 436 | m_IsActive: 1 437 | --- !u!108 &1282101915 438 | Light: 439 | m_ObjectHideFlags: 0 440 | m_CorrespondingSourceObject: {fileID: 0} 441 | m_PrefabInstance: {fileID: 0} 442 | m_PrefabAsset: {fileID: 0} 443 | m_GameObject: {fileID: 1282101914} 444 | m_Enabled: 1 445 | serializedVersion: 10 446 | m_Type: 1 447 | m_Shape: 0 448 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 449 | m_Intensity: 1 450 | m_Range: 10 451 | m_SpotAngle: 30 452 | m_InnerSpotAngle: 21.80208 453 | m_CookieSize: 10 454 | m_Shadows: 455 | m_Type: 2 456 | m_Resolution: -1 457 | m_CustomResolution: -1 458 | m_Strength: 1 459 | m_Bias: 0.05 460 | m_NormalBias: 0.4 461 | m_NearPlane: 0.2 462 | m_CullingMatrixOverride: 463 | e00: 1 464 | e01: 0 465 | e02: 0 466 | e03: 0 467 | e10: 0 468 | e11: 1 469 | e12: 0 470 | e13: 0 471 | e20: 0 472 | e21: 0 473 | e22: 1 474 | e23: 0 475 | e30: 0 476 | e31: 0 477 | e32: 0 478 | e33: 1 479 | m_UseCullingMatrixOverride: 0 480 | m_Cookie: {fileID: 0} 481 | m_DrawHalo: 0 482 | m_Flare: {fileID: 0} 483 | m_RenderMode: 0 484 | m_CullingMask: 485 | serializedVersion: 2 486 | m_Bits: 4294967295 487 | m_RenderingLayerMask: 1 488 | m_Lightmapping: 4 489 | m_LightShadowCasterMode: 0 490 | m_AreaSize: {x: 1, y: 1} 491 | m_BounceIntensity: 1 492 | m_ColorTemperature: 6570 493 | m_UseColorTemperature: 0 494 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 495 | m_UseBoundingSphereOverride: 0 496 | m_UseViewFrustumForShadowCasterCull: 1 497 | m_ShadowRadius: 0 498 | m_ShadowAngle: 0 499 | --- !u!4 &1282101916 500 | Transform: 501 | m_ObjectHideFlags: 0 502 | m_CorrespondingSourceObject: {fileID: 0} 503 | m_PrefabInstance: {fileID: 0} 504 | m_PrefabAsset: {fileID: 0} 505 | m_GameObject: {fileID: 1282101914} 506 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 507 | m_LocalPosition: {x: 0, y: 3, z: 0} 508 | m_LocalScale: {x: 1, y: 1, z: 1} 509 | m_ConstrainProportionsScale: 0 510 | m_Children: [] 511 | m_Father: {fileID: 0} 512 | m_RootOrder: 1 513 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 514 | --- !u!1 &1899507166 515 | GameObject: 516 | m_ObjectHideFlags: 0 517 | m_CorrespondingSourceObject: {fileID: 0} 518 | m_PrefabInstance: {fileID: 0} 519 | m_PrefabAsset: {fileID: 0} 520 | serializedVersion: 6 521 | m_Component: 522 | - component: {fileID: 1899507170} 523 | - component: {fileID: 1899507169} 524 | - component: {fileID: 1899507168} 525 | - component: {fileID: 1899507167} 526 | m_Layer: 0 527 | m_Name: Plane (1) 528 | m_TagString: Untagged 529 | m_Icon: {fileID: 0} 530 | m_NavMeshLayer: 0 531 | m_StaticEditorFlags: 0 532 | m_IsActive: 1 533 | --- !u!64 &1899507167 534 | MeshCollider: 535 | m_ObjectHideFlags: 0 536 | m_CorrespondingSourceObject: {fileID: 0} 537 | m_PrefabInstance: {fileID: 0} 538 | m_PrefabAsset: {fileID: 0} 539 | m_GameObject: {fileID: 1899507166} 540 | m_Material: {fileID: 0} 541 | m_IsTrigger: 0 542 | m_Enabled: 1 543 | serializedVersion: 4 544 | m_Convex: 0 545 | m_CookingOptions: 30 546 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 547 | --- !u!23 &1899507168 548 | MeshRenderer: 549 | m_ObjectHideFlags: 0 550 | m_CorrespondingSourceObject: {fileID: 0} 551 | m_PrefabInstance: {fileID: 0} 552 | m_PrefabAsset: {fileID: 0} 553 | m_GameObject: {fileID: 1899507166} 554 | m_Enabled: 1 555 | m_CastShadows: 1 556 | m_ReceiveShadows: 1 557 | m_DynamicOccludee: 1 558 | m_StaticShadowCaster: 0 559 | m_MotionVectors: 1 560 | m_LightProbeUsage: 1 561 | m_ReflectionProbeUsage: 1 562 | m_RayTracingMode: 2 563 | m_RayTraceProcedural: 0 564 | m_RenderingLayerMask: 1 565 | m_RendererPriority: 0 566 | m_Materials: 567 | - {fileID: 2100000, guid: eea70cf0404c1af43bd7c19b0d4d689a, type: 2} 568 | m_StaticBatchInfo: 569 | firstSubMesh: 0 570 | subMeshCount: 0 571 | m_StaticBatchRoot: {fileID: 0} 572 | m_ProbeAnchor: {fileID: 0} 573 | m_LightProbeVolumeOverride: {fileID: 0} 574 | m_ScaleInLightmap: 1 575 | m_ReceiveGI: 1 576 | m_PreserveUVs: 0 577 | m_IgnoreNormalsForChartDetection: 0 578 | m_ImportantGI: 0 579 | m_StitchLightmapSeams: 1 580 | m_SelectedEditorRenderState: 3 581 | m_MinimumChartSize: 4 582 | m_AutoUVMaxDistance: 0.5 583 | m_AutoUVMaxAngle: 89 584 | m_LightmapParameters: {fileID: 0} 585 | m_SortingLayerID: 0 586 | m_SortingLayer: 0 587 | m_SortingOrder: 0 588 | m_AdditionalVertexStreams: {fileID: 0} 589 | --- !u!33 &1899507169 590 | MeshFilter: 591 | m_ObjectHideFlags: 0 592 | m_CorrespondingSourceObject: {fileID: 0} 593 | m_PrefabInstance: {fileID: 0} 594 | m_PrefabAsset: {fileID: 0} 595 | m_GameObject: {fileID: 1899507166} 596 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 597 | --- !u!4 &1899507170 598 | Transform: 599 | m_ObjectHideFlags: 0 600 | m_CorrespondingSourceObject: {fileID: 0} 601 | m_PrefabInstance: {fileID: 0} 602 | m_PrefabAsset: {fileID: 0} 603 | m_GameObject: {fileID: 1899507166} 604 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 605 | m_LocalPosition: {x: -1.25, y: 0, z: -2.75} 606 | m_LocalScale: {x: 0.25, y: 1, z: 0.25} 607 | m_ConstrainProportionsScale: 0 608 | m_Children: [] 609 | m_Father: {fileID: 0} 610 | m_RootOrder: 3 611 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 612 | --- !u!1 &1920874029 613 | GameObject: 614 | m_ObjectHideFlags: 0 615 | m_CorrespondingSourceObject: {fileID: 0} 616 | m_PrefabInstance: {fileID: 0} 617 | m_PrefabAsset: {fileID: 0} 618 | serializedVersion: 6 619 | m_Component: 620 | - component: {fileID: 1920874032} 621 | - component: {fileID: 1920874031} 622 | - component: {fileID: 1920874030} 623 | m_Layer: 0 624 | m_Name: Main Camera 625 | m_TagString: MainCamera 626 | m_Icon: {fileID: 0} 627 | m_NavMeshLayer: 0 628 | m_StaticEditorFlags: 0 629 | m_IsActive: 1 630 | --- !u!81 &1920874030 631 | AudioListener: 632 | m_ObjectHideFlags: 0 633 | m_CorrespondingSourceObject: {fileID: 0} 634 | m_PrefabInstance: {fileID: 0} 635 | m_PrefabAsset: {fileID: 0} 636 | m_GameObject: {fileID: 1920874029} 637 | m_Enabled: 1 638 | --- !u!20 &1920874031 639 | Camera: 640 | m_ObjectHideFlags: 0 641 | m_CorrespondingSourceObject: {fileID: 0} 642 | m_PrefabInstance: {fileID: 0} 643 | m_PrefabAsset: {fileID: 0} 644 | m_GameObject: {fileID: 1920874029} 645 | m_Enabled: 1 646 | serializedVersion: 2 647 | m_ClearFlags: 1 648 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 649 | m_projectionMatrixMode: 1 650 | m_GateFitMode: 2 651 | m_FOVAxisMode: 0 652 | m_SensorSize: {x: 36, y: 24} 653 | m_LensShift: {x: 0, y: 0} 654 | m_FocalLength: 50 655 | m_NormalizedViewPortRect: 656 | serializedVersion: 2 657 | x: 0 658 | y: 0 659 | width: 1 660 | height: 1 661 | near clip plane: 0.3 662 | far clip plane: 1000 663 | field of view: 60 664 | orthographic: 0 665 | orthographic size: 5 666 | m_Depth: -1 667 | m_CullingMask: 668 | serializedVersion: 2 669 | m_Bits: 4294967295 670 | m_RenderingPath: -1 671 | m_TargetTexture: {fileID: 0} 672 | m_TargetDisplay: 0 673 | m_TargetEye: 3 674 | m_HDR: 1 675 | m_AllowMSAA: 1 676 | m_AllowDynamicResolution: 0 677 | m_ForceIntoRT: 0 678 | m_OcclusionCulling: 1 679 | m_StereoConvergence: 10 680 | m_StereoSeparation: 0.022 681 | --- !u!4 &1920874032 682 | Transform: 683 | m_ObjectHideFlags: 0 684 | m_CorrespondingSourceObject: {fileID: 0} 685 | m_PrefabInstance: {fileID: 0} 686 | m_PrefabAsset: {fileID: 0} 687 | m_GameObject: {fileID: 1920874029} 688 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 689 | m_LocalPosition: {x: 0, y: 1, z: -10} 690 | m_LocalScale: {x: 1, y: 1, z: 1} 691 | m_ConstrainProportionsScale: 0 692 | m_Children: [] 693 | m_Father: {fileID: 0} 694 | m_RootOrder: 0 695 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 696 | --- !u!1001 &1941780681888230143 697 | PrefabInstance: 698 | m_ObjectHideFlags: 0 699 | serializedVersion: 2 700 | m_Modification: 701 | m_TransformParent: {fileID: 0} 702 | m_Modifications: 703 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 704 | propertyPath: m_RootOrder 705 | value: 7 706 | objectReference: {fileID: 0} 707 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 708 | propertyPath: m_LocalPosition.x 709 | value: -4.72 710 | objectReference: {fileID: 0} 711 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 712 | propertyPath: m_LocalPosition.y 713 | value: 0 714 | objectReference: {fileID: 0} 715 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 716 | propertyPath: m_LocalPosition.z 717 | value: -2.65 718 | objectReference: {fileID: 0} 719 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 720 | propertyPath: m_LocalRotation.w 721 | value: 1 722 | objectReference: {fileID: 0} 723 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 724 | propertyPath: m_LocalRotation.x 725 | value: 0 726 | objectReference: {fileID: 0} 727 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 728 | propertyPath: m_LocalRotation.y 729 | value: 0 730 | objectReference: {fileID: 0} 731 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 732 | propertyPath: m_LocalRotation.z 733 | value: 0 734 | objectReference: {fileID: 0} 735 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 736 | propertyPath: m_LocalEulerAnglesHint.x 737 | value: 0 738 | objectReference: {fileID: 0} 739 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 740 | propertyPath: m_LocalEulerAnglesHint.y 741 | value: 0 742 | objectReference: {fileID: 0} 743 | - target: {fileID: 6258439626626473131, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 744 | propertyPath: m_LocalEulerAnglesHint.z 745 | value: 0 746 | objectReference: {fileID: 0} 747 | - target: {fileID: 6258439626626473141, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 748 | propertyPath: m_Name 749 | value: Character (Animation Events) 750 | objectReference: {fileID: 0} 751 | - target: {fileID: 6258439626626473141, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 752 | propertyPath: m_IsActive 753 | value: 0 754 | objectReference: {fileID: 0} 755 | m_RemovedComponents: [] 756 | m_SourcePrefab: {fileID: 100100000, guid: 3108e17f808841848ba6750cc9736ca8, type: 3} 757 | --- !u!1001 &5487889666597454310 758 | PrefabInstance: 759 | m_ObjectHideFlags: 0 760 | serializedVersion: 2 761 | m_Modification: 762 | m_TransformParent: {fileID: 0} 763 | m_Modifications: 764 | - target: {fileID: 5487889665871764745, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 765 | propertyPath: m_Name 766 | value: Character (Auto Detect) 767 | objectReference: {fileID: 0} 768 | - target: {fileID: 5487889665871764745, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 769 | propertyPath: m_IsActive 770 | value: 1 771 | objectReference: {fileID: 0} 772 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 773 | propertyPath: m_RootOrder 774 | value: 6 775 | objectReference: {fileID: 0} 776 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 777 | propertyPath: m_LocalPosition.x 778 | value: -4.72 779 | objectReference: {fileID: 0} 780 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 781 | propertyPath: m_LocalPosition.y 782 | value: 0 783 | objectReference: {fileID: 0} 784 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 785 | propertyPath: m_LocalPosition.z 786 | value: -2.65 787 | objectReference: {fileID: 0} 788 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 789 | propertyPath: m_LocalRotation.w 790 | value: 1 791 | objectReference: {fileID: 0} 792 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 793 | propertyPath: m_LocalRotation.x 794 | value: -0 795 | objectReference: {fileID: 0} 796 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 797 | propertyPath: m_LocalRotation.y 798 | value: -0 799 | objectReference: {fileID: 0} 800 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 801 | propertyPath: m_LocalRotation.z 802 | value: -0 803 | objectReference: {fileID: 0} 804 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 805 | propertyPath: m_LocalEulerAnglesHint.x 806 | value: 0 807 | objectReference: {fileID: 0} 808 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 809 | propertyPath: m_LocalEulerAnglesHint.y 810 | value: 0 811 | objectReference: {fileID: 0} 812 | - target: {fileID: 5487889665871764759, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 813 | propertyPath: m_LocalEulerAnglesHint.z 814 | value: 0 815 | objectReference: {fileID: 0} 816 | m_RemovedComponents: [] 817 | m_SourcePrefab: {fileID: 100100000, guid: 63cf066fc0121e046bf8c4edbc3945be, type: 3} 818 | --------------------------------------------------------------------------------