├── Assets ├── HDRPDefaultResources.meta ├── HDRPDefaultResources │ ├── DefaultSceneRoot.prefab │ ├── DefaultSceneRoot.prefab.meta │ ├── Foliage Diffusion Profile.asset │ ├── Foliage Diffusion Profile.asset.meta │ ├── HDRenderPipelineAsset.asset │ ├── HDRenderPipelineAsset.asset.meta │ ├── Skin Diffusion Profile.asset │ ├── Skin Diffusion Profile.asset.meta │ ├── Sky and Fog Settings Profile.asset │ └── Sky and Fog Settings Profile.asset.meta ├── Resources.meta ├── Resources │ ├── Materials.meta │ ├── Materials │ │ ├── Troop_cavalry_lv01_a0_mat.mat │ │ ├── Troop_cavalry_lv01_a0_mat.mat.meta │ │ ├── Troop_cavalry_lv01_a1_mat.mat │ │ └── Troop_cavalry_lv01_a1_mat.mat.meta │ ├── Shader.meta │ ├── Shader │ │ ├── ECS_Skinning_Shader.shadergraph │ │ ├── ECS_Skinning_Shader.shadergraph.meta │ │ ├── Includes.meta │ │ └── Includes │ │ │ ├── Skinning.hlsl │ │ │ └── Skinning.hlsl.meta │ ├── Textures.meta │ ├── Textures │ │ ├── cavalry_lv01.tga │ │ └── cavalry_lv01.tga.meta │ ├── Troop_cavalry_lv01.prefab │ ├── Troop_cavalry_lv01.prefab.meta │ ├── Troop_cavalry_lv01_ECSGPUInstancing.prefab │ ├── Troop_cavalry_lv01_ECSGPUInstancing.prefab.meta │ ├── Troop_cavalry_lv01_NormalGPUInstancing.prefab │ ├── Troop_cavalry_lv01_NormalGPUInstancing.prefab.meta │ ├── Troop_cavalry_lv01_animData.meta │ └── Troop_cavalry_lv01_animData │ │ ├── Troop_cavalry_lv01_a_0_mesh.asset │ │ ├── Troop_cavalry_lv01_a_0_mesh.asset.meta │ │ ├── Troop_cavalry_lv01_a_0_mesh_lod.asset │ │ ├── Troop_cavalry_lv01_a_0_mesh_lod.asset.meta │ │ ├── Troop_cavalry_lv01_a_1_mesh.asset │ │ ├── Troop_cavalry_lv01_a_1_mesh.asset.meta │ │ ├── Troop_cavalry_lv01_a_1_mesh_lod.asset │ │ ├── Troop_cavalry_lv01_a_1_mesh_lod.asset.meta │ │ ├── Troop_cavalry_lv01_animData.asset │ │ ├── Troop_cavalry_lv01_animData.asset.meta │ │ ├── Troop_cavalry_lv01_animData_a0_texData.asset │ │ ├── Troop_cavalry_lv01_animData_a0_texData.asset.meta │ │ ├── Troop_cavalry_lv01_animData_a1_texData.asset │ │ └── Troop_cavalry_lv01_animData_a1_texData.asset.meta ├── Scenes.meta ├── Scenes │ ├── ECSGPUSkinning.unity │ ├── ECSGPUSkinning.unity.meta │ ├── NormalGPUSkinning.unity │ └── NormalGPUSkinning.unity.meta ├── Scripts.meta └── Scripts │ ├── ECS.meta │ ├── ECS │ ├── Component.meta │ ├── Component │ │ ├── ECS_GPUSkinningData.cs │ │ └── ECS_GPUSkinningData.cs.meta │ ├── ECS_AnimatorConvertToEntity.cs │ ├── ECS_AnimatorConvertToEntity.cs.meta │ ├── ECS_AnimatorEntityGenerator.cs │ ├── ECS_AnimatorEntityGenerator.cs.meta │ ├── ECS_AnimatorSpawner.cs │ ├── ECS_AnimatorSpawner.cs.meta │ ├── ECS_FrameDataMaterialPropertyComponent.cs │ ├── ECS_FrameDataMaterialPropertyComponent.cs.meta │ ├── ECS_Provider.cs │ ├── ECS_Provider.cs.meta │ ├── LOD_Tester.cs │ ├── LOD_Tester.cs.meta │ ├── SwitchAnimBtn.cs │ ├── SwitchAnimBtn.cs.meta │ ├── System.meta │ └── System │ │ ├── ECS_AnimatorEntityRenderingSystem.cs │ │ ├── ECS_AnimatorEntityRenderingSystem.cs.meta │ │ ├── ECS_AnimatorEntitySpawnerSystem.cs │ │ └── ECS_AnimatorEntitySpawnerSystem.cs.meta │ ├── Normal.meta │ ├── Normal │ ├── SimpleAnimator.cs │ └── SimpleAnimator.cs.meta │ ├── NormalAnimatorLaunch.cs │ ├── NormalAnimatorLaunch.cs.meta │ ├── Respawn.cs │ └── Respawn.cs.meta ├── Entity ├── CustomFunctionNode.png ├── ECS_AnimatorEntityFrameDataCalcSystem.png ├── ECS_AnimatorEntityGenerator.png ├── ECS_AnimatorEntitySpawnerSystem.png ├── ECS_FrameData.png ├── ECS_Marco.png ├── EntityDebug.png ├── EntityFrameDebug.png ├── EntityGpuSkinning.png ├── MeshLODGroupComponent.png ├── NormalFrameDebug.png ├── NormalGPUSkinning.png └── ShaderGraph.png ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── HDRPProjectSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /Assets/HDRPDefaultResources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea584360aaf15244bbef4091af934342 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/DefaultSceneRoot.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1357569919786384354 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: 1593205710513468862} 12 | - component: {fileID: 1167239801420306679} 13 | - component: {fileID: 246949571376715543} 14 | - component: {fileID: 1612986841743735477} 15 | m_Layer: 0 16 | m_Name: Main Camera 17 | m_TagString: MainCamera 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &1593205710513468862 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: 1357569919786384354} 29 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 30 | m_LocalPosition: {x: 0, y: 1, z: -10} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 3321477440709210067} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!20 &1167239801420306679 37 | Camera: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 1357569919786384354} 43 | m_Enabled: 1 44 | serializedVersion: 2 45 | m_ClearFlags: 1 46 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 47 | m_projectionMatrixMode: 1 48 | m_GateFitMode: 2 49 | m_FOVAxisMode: 0 50 | m_SensorSize: {x: 36, y: 24} 51 | m_LensShift: {x: 0, y: 0} 52 | m_FocalLength: 50 53 | m_NormalizedViewPortRect: 54 | serializedVersion: 2 55 | x: 0 56 | y: 0 57 | width: 1 58 | height: 1 59 | near clip plane: 0.3 60 | far clip plane: 1000 61 | field of view: 60 62 | orthographic: 0 63 | orthographic size: 5 64 | m_Depth: -1 65 | m_CullingMask: 66 | serializedVersion: 2 67 | m_Bits: 4294967295 68 | m_RenderingPath: -1 69 | m_TargetTexture: {fileID: 0} 70 | m_TargetDisplay: 0 71 | m_TargetEye: 3 72 | m_HDR: 0 73 | m_AllowMSAA: 0 74 | m_AllowDynamicResolution: 0 75 | m_ForceIntoRT: 0 76 | m_OcclusionCulling: 1 77 | m_StereoConvergence: 10 78 | m_StereoSeparation: 0.022 79 | --- !u!81 &246949571376715543 80 | AudioListener: 81 | m_ObjectHideFlags: 0 82 | m_CorrespondingSourceObject: {fileID: 0} 83 | m_PrefabInstance: {fileID: 0} 84 | m_PrefabAsset: {fileID: 0} 85 | m_GameObject: {fileID: 1357569919786384354} 86 | m_Enabled: 1 87 | --- !u!114 &1612986841743735477 88 | MonoBehaviour: 89 | m_ObjectHideFlags: 0 90 | m_CorrespondingSourceObject: {fileID: 0} 91 | m_PrefabInstance: {fileID: 0} 92 | m_PrefabAsset: {fileID: 0} 93 | m_GameObject: {fileID: 1357569919786384354} 94 | m_Enabled: 1 95 | m_EditorHideFlags: 0 96 | m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} 97 | m_Name: 98 | m_EditorClassIdentifier: 99 | m_Version: 7 100 | m_ObsoleteRenderingPath: 0 101 | m_ObsoleteFrameSettings: 102 | overrides: 0 103 | enableShadow: 0 104 | enableContactShadows: 0 105 | enableShadowMask: 0 106 | enableSSR: 0 107 | enableSSAO: 0 108 | enableSubsurfaceScattering: 0 109 | enableTransmission: 0 110 | enableAtmosphericScattering: 0 111 | enableVolumetrics: 0 112 | enableReprojectionForVolumetrics: 0 113 | enableLightLayers: 0 114 | enableExposureControl: 1 115 | diffuseGlobalDimmer: 0 116 | specularGlobalDimmer: 0 117 | shaderLitMode: 0 118 | enableDepthPrepassWithDeferredRendering: 0 119 | enableTransparentPrepass: 0 120 | enableMotionVectors: 0 121 | enableObjectMotionVectors: 0 122 | enableDecals: 0 123 | enableRoughRefraction: 0 124 | enableTransparentPostpass: 0 125 | enableDistortion: 0 126 | enablePostprocess: 0 127 | enableOpaqueObjects: 0 128 | enableTransparentObjects: 0 129 | enableRealtimePlanarReflection: 0 130 | enableMSAA: 0 131 | enableAsyncCompute: 0 132 | runLightListAsync: 0 133 | runSSRAsync: 0 134 | runSSAOAsync: 0 135 | runContactShadowsAsync: 0 136 | runVolumeVoxelizationAsync: 0 137 | lightLoopSettings: 138 | overrides: 0 139 | enableDeferredTileAndCluster: 0 140 | enableComputeLightEvaluation: 0 141 | enableComputeLightVariants: 0 142 | enableComputeMaterialVariants: 0 143 | enableFptlForForwardOpaque: 0 144 | enableBigTilePrepass: 0 145 | isFptlEnabled: 0 146 | clearColorMode: 0 147 | backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0} 148 | clearDepth: 1 149 | volumeLayerMask: 150 | serializedVersion: 2 151 | m_Bits: 1 152 | volumeAnchorOverride: {fileID: 0} 153 | antialiasing: 0 154 | SMAAQuality: 2 155 | dithering: 0 156 | stopNaNs: 0 157 | taaSharpenStrength: 0.6 158 | physicalParameters: 159 | m_Iso: 200 160 | m_ShutterSpeed: 0.005 161 | m_Aperture: 16 162 | m_BladeCount: 5 163 | m_Curvature: {x: 2, y: 11} 164 | m_BarrelClipping: 0.25 165 | m_Anamorphism: 0 166 | flipYMode: 0 167 | fullscreenPassthrough: 0 168 | allowDynamicResolution: 0 169 | customRenderingSettings: 0 170 | invertFaceCulling: 0 171 | probeLayerMask: 172 | serializedVersion: 2 173 | m_Bits: 4294967295 174 | hasPersistentHistory: 0 175 | m_RenderingPathCustomFrameSettings: 176 | bitDatas: 177 | data1: 734440390720 178 | data2: 536805376 179 | lodBias: 1 180 | lodBiasMode: 0 181 | lodBiasQualityLevel: 0 182 | maximumLODLevel: 0 183 | maximumLODLevelMode: 0 184 | maximumLODLevelQualityLevel: 0 185 | materialQuality: 0 186 | renderingPathCustomFrameSettingsOverrideMask: 187 | mask: 188 | data1: 0 189 | data2: 0 190 | defaultFrameSettings: 0 191 | --- !u!1 &4983735487394053334 192 | GameObject: 193 | m_ObjectHideFlags: 0 194 | m_CorrespondingSourceObject: {fileID: 0} 195 | m_PrefabInstance: {fileID: 0} 196 | m_PrefabAsset: {fileID: 0} 197 | serializedVersion: 6 198 | m_Component: 199 | - component: {fileID: 6036082589011171296} 200 | - component: {fileID: 7240076251166687866} 201 | m_Layer: 0 202 | m_Name: Sky and Fog Volume 203 | m_TagString: Untagged 204 | m_Icon: {fileID: 0} 205 | m_NavMeshLayer: 0 206 | m_StaticEditorFlags: 0 207 | m_IsActive: 1 208 | --- !u!4 &6036082589011171296 209 | Transform: 210 | m_ObjectHideFlags: 0 211 | m_CorrespondingSourceObject: {fileID: 0} 212 | m_PrefabInstance: {fileID: 0} 213 | m_PrefabAsset: {fileID: 0} 214 | m_GameObject: {fileID: 4983735487394053334} 215 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 216 | m_LocalPosition: {x: -3.9172678, y: -0.07954121, z: 5.81527} 217 | m_LocalScale: {x: 1, y: 1, z: 1} 218 | m_Children: [] 219 | m_Father: {fileID: 3321477440709210067} 220 | m_RootOrder: 2 221 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 222 | --- !u!114 &7240076251166687866 223 | MonoBehaviour: 224 | m_ObjectHideFlags: 0 225 | m_CorrespondingSourceObject: {fileID: 0} 226 | m_PrefabInstance: {fileID: 0} 227 | m_PrefabAsset: {fileID: 0} 228 | m_GameObject: {fileID: 4983735487394053334} 229 | m_Enabled: 1 230 | m_EditorHideFlags: 0 231 | m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} 232 | m_Name: 233 | m_EditorClassIdentifier: 234 | isGlobal: 1 235 | priority: 0 236 | blendDistance: 0 237 | weight: 1 238 | sharedProfile: {fileID: 11400000, guid: 64d0a8af6f49caf40ba9a93ecc9f9714, type: 2} 239 | --- !u!1 &5710712751814275007 240 | GameObject: 241 | m_ObjectHideFlags: 0 242 | m_CorrespondingSourceObject: {fileID: 0} 243 | m_PrefabInstance: {fileID: 0} 244 | m_PrefabAsset: {fileID: 0} 245 | serializedVersion: 6 246 | m_Component: 247 | - component: {fileID: 604574683031968705} 248 | - component: {fileID: 7643073095026524292} 249 | - component: {fileID: 1577589821597124969} 250 | m_Layer: 0 251 | m_Name: Directional Light 252 | m_TagString: Untagged 253 | m_Icon: {fileID: 0} 254 | m_NavMeshLayer: 0 255 | m_StaticEditorFlags: 0 256 | m_IsActive: 1 257 | --- !u!4 &604574683031968705 258 | Transform: 259 | m_ObjectHideFlags: 0 260 | m_CorrespondingSourceObject: {fileID: 0} 261 | m_PrefabInstance: {fileID: 0} 262 | m_PrefabAsset: {fileID: 0} 263 | m_GameObject: {fileID: 5710712751814275007} 264 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 265 | m_LocalPosition: {x: 0, y: 3, z: 0} 266 | m_LocalScale: {x: 1, y: 1, z: 1} 267 | m_Children: [] 268 | m_Father: {fileID: 3321477440709210067} 269 | m_RootOrder: 1 270 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 271 | --- !u!108 &7643073095026524292 272 | Light: 273 | m_ObjectHideFlags: 0 274 | m_CorrespondingSourceObject: {fileID: 0} 275 | m_PrefabInstance: {fileID: 0} 276 | m_PrefabAsset: {fileID: 0} 277 | m_GameObject: {fileID: 5710712751814275007} 278 | m_Enabled: 1 279 | serializedVersion: 10 280 | m_Type: 1 281 | m_Shape: 0 282 | m_Color: {r: 1, g: 1, b: 1, a: 1} 283 | m_Intensity: 10000 284 | m_Range: 10 285 | m_SpotAngle: 30 286 | m_InnerSpotAngle: 21.80208 287 | m_CookieSize: 10 288 | m_Shadows: 289 | m_Type: 2 290 | m_Resolution: -1 291 | m_CustomResolution: -1 292 | m_Strength: 1 293 | m_Bias: 0.05 294 | m_NormalBias: 0.4 295 | m_NearPlane: 0.2 296 | m_CullingMatrixOverride: 297 | e00: 1 298 | e01: 0 299 | e02: 0 300 | e03: 0 301 | e10: 0 302 | e11: 1 303 | e12: 0 304 | e13: 0 305 | e20: 0 306 | e21: 0 307 | e22: 1 308 | e23: 0 309 | e30: 0 310 | e31: 0 311 | e32: 0 312 | e33: 1 313 | m_UseCullingMatrixOverride: 0 314 | m_Cookie: {fileID: 0} 315 | m_DrawHalo: 0 316 | m_Flare: {fileID: 0} 317 | m_RenderMode: 0 318 | m_CullingMask: 319 | serializedVersion: 2 320 | m_Bits: 4294967295 321 | m_RenderingLayerMask: 1 322 | m_Lightmapping: 4 323 | m_LightShadowCasterMode: 2 324 | m_AreaSize: {x: 1, y: 1} 325 | m_BounceIntensity: 1 326 | m_ColorTemperature: 5500 327 | m_UseColorTemperature: 1 328 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 329 | m_UseBoundingSphereOverride: 0 330 | m_ShadowRadius: 0 331 | m_ShadowAngle: 0.53 332 | --- !u!114 &1577589821597124969 333 | MonoBehaviour: 334 | m_ObjectHideFlags: 0 335 | m_CorrespondingSourceObject: {fileID: 0} 336 | m_PrefabInstance: {fileID: 0} 337 | m_PrefabAsset: {fileID: 0} 338 | m_GameObject: {fileID: 5710712751814275007} 339 | m_Enabled: 1 340 | m_EditorHideFlags: 0 341 | m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} 342 | m_Name: 343 | m_EditorClassIdentifier: 344 | m_Version: 9 345 | m_ObsoleteShadowResolutionTier: 1 346 | m_ObsoleteUseShadowQualitySettings: 0 347 | m_ObsoleteCustomShadowResolution: 512 348 | m_ObsoleteContactShadows: 0 349 | m_PointlightHDType: 0 350 | m_SpotLightShape: 0 351 | m_AreaLightShape: 0 352 | m_Intensity: 10000 353 | m_EnableSpotReflector: 0 354 | m_LuxAtDistance: 1 355 | m_InnerSpotPercent: 0 356 | m_LightDimmer: 1 357 | m_VolumetricDimmer: 1 358 | m_LightUnit: 2 359 | m_FadeDistance: 10000 360 | m_AffectDiffuse: 1 361 | m_AffectSpecular: 1 362 | m_NonLightmappedOnly: 0 363 | m_ShapeWidth: 0.5 364 | m_ShapeHeight: 0.5 365 | m_AspectRatio: 1 366 | m_ShapeRadius: 0 367 | m_SoftnessScale: 1 368 | m_UseCustomSpotLightShadowCone: 0 369 | m_CustomSpotLightShadowCone: 30 370 | m_MaxSmoothness: 0.99 371 | m_ApplyRangeAttenuation: 1 372 | m_DisplayAreaLightEmissiveMesh: 0 373 | m_AreaLightCookie: {fileID: 0} 374 | m_AreaLightShadowCone: 120 375 | m_UseScreenSpaceShadows: 0 376 | m_InteractsWithSky: 1 377 | m_AngularDiameter: 0.53 378 | m_FlareSize: 2 379 | m_FlareTint: {r: 1, g: 1, b: 1, a: 1} 380 | m_FlareFalloff: 4 381 | m_SurfaceTexture: {fileID: 0} 382 | m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1} 383 | m_Distance: 150000000 384 | m_UseRayTracedShadows: 0 385 | m_NumRayTracingSamples: 4 386 | m_FilterTracedShadow: 1 387 | m_FilterSizeTraced: 16 388 | m_SunLightConeAngle: 0.5 389 | m_LightShadowRadius: 0.5 390 | m_SemiTransparentShadow: 0 391 | m_ColorShadow: 1 392 | m_EvsmExponent: 15 393 | m_EvsmLightLeakBias: 0 394 | m_EvsmVarianceBias: 0.00001 395 | m_EvsmBlurPasses: 0 396 | m_LightlayersMask: 1 397 | m_LinkShadowLayers: 1 398 | m_ShadowNearPlane: 0.1 399 | m_BlockerSampleCount: 24 400 | m_FilterSampleCount: 16 401 | m_MinFilterSize: 0.01 402 | m_KernelSize: 5 403 | m_LightAngle: 1 404 | m_MaxDepthBias: 0.001 405 | m_ShadowResolution: 406 | m_Override: 512 407 | m_UseOverride: 1 408 | m_Level: 1 409 | m_ShadowDimmer: 1 410 | m_VolumetricShadowDimmer: 1 411 | m_ShadowFadeDistance: 10000 412 | m_UseContactShadow: 413 | m_Override: 0 414 | m_UseOverride: 1 415 | m_Level: 0 416 | m_RayTracedContactShadow: 0 417 | m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} 418 | m_PenumbraTint: 0 419 | m_NormalBias: 0.75 420 | m_SlopeBias: 0.5 421 | m_ShadowUpdateMode: 0 422 | m_BarnDoorAngle: 90 423 | m_BarnDoorLength: 0.05 424 | m_ShadowCascadeRatios: 425 | - 0.05 426 | - 0.2 427 | - 0.3 428 | m_ShadowCascadeBorders: 429 | - 0.2 430 | - 0.2 431 | - 0.2 432 | - 0.2 433 | m_ShadowAlgorithm: 0 434 | m_ShadowVariant: 0 435 | m_ShadowPrecision: 0 436 | useOldInspector: 0 437 | useVolumetric: 1 438 | featuresFoldout: 1 439 | showAdditionalSettings: 0 440 | m_AreaLightEmissiveMeshShadowCastingMode: 0 441 | m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 442 | --- !u!1 &5823510469358171751 443 | GameObject: 444 | m_ObjectHideFlags: 0 445 | m_CorrespondingSourceObject: {fileID: 0} 446 | m_PrefabInstance: {fileID: 0} 447 | m_PrefabAsset: {fileID: 0} 448 | serializedVersion: 6 449 | m_Component: 450 | - component: {fileID: 3321477440709210067} 451 | m_Layer: 0 452 | m_Name: DefaultSceneRoot 453 | m_TagString: Untagged 454 | m_Icon: {fileID: 0} 455 | m_NavMeshLayer: 0 456 | m_StaticEditorFlags: 0 457 | m_IsActive: 1 458 | --- !u!4 &3321477440709210067 459 | Transform: 460 | m_ObjectHideFlags: 0 461 | m_CorrespondingSourceObject: {fileID: 0} 462 | m_PrefabInstance: {fileID: 0} 463 | m_PrefabAsset: {fileID: 0} 464 | m_GameObject: {fileID: 5823510469358171751} 465 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 466 | m_LocalPosition: {x: 0, y: 0, z: 0} 467 | m_LocalScale: {x: 1, y: 1, z: 1} 468 | m_Children: 469 | - {fileID: 1593205710513468862} 470 | - {fileID: 604574683031968705} 471 | - {fileID: 6036082589011171296} 472 | m_Father: {fileID: 0} 473 | m_RootOrder: 0 474 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 475 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/DefaultSceneRoot.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 484c6efb2d2a33947be59b042727684c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/Foliage Diffusion Profile.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: b2686e09ec7aef44bad2843e4416f057, type: 3} 13 | m_Name: Foliage Diffusion Profile 14 | m_EditorClassIdentifier: 15 | m_Version: 1 16 | profile: 17 | scatteringDistance: {r: 0.7568628, g: 0.7019608, b: 0.24313727, a: 1} 18 | transmissionTint: {r: 1, g: 1, b: 1, a: 1} 19 | texturingMode: 0 20 | transmissionMode: 1 21 | thicknessRemap: {x: 0, y: 0.2873168} 22 | worldScale: 1 23 | ior: 1.4 24 | hash: 1079847177 25 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f69b7deda16bf94d847bee2f2774a1d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/HDRenderPipelineAsset.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: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} 13 | m_Name: HDRenderPipelineAsset 14 | m_EditorClassIdentifier: 15 | m_Version: 14 16 | m_ObsoleteFrameSettings: 17 | overrides: 0 18 | enableShadow: 0 19 | enableContactShadows: 0 20 | enableShadowMask: 0 21 | enableSSR: 0 22 | enableSSAO: 0 23 | enableSubsurfaceScattering: 0 24 | enableTransmission: 0 25 | enableAtmosphericScattering: 0 26 | enableVolumetrics: 0 27 | enableReprojectionForVolumetrics: 0 28 | enableLightLayers: 0 29 | enableExposureControl: 1 30 | diffuseGlobalDimmer: 0 31 | specularGlobalDimmer: 0 32 | shaderLitMode: 0 33 | enableDepthPrepassWithDeferredRendering: 0 34 | enableTransparentPrepass: 0 35 | enableMotionVectors: 0 36 | enableObjectMotionVectors: 0 37 | enableDecals: 0 38 | enableRoughRefraction: 0 39 | enableTransparentPostpass: 0 40 | enableDistortion: 0 41 | enablePostprocess: 0 42 | enableOpaqueObjects: 0 43 | enableTransparentObjects: 0 44 | enableRealtimePlanarReflection: 0 45 | enableMSAA: 0 46 | enableAsyncCompute: 0 47 | runLightListAsync: 0 48 | runSSRAsync: 0 49 | runSSAOAsync: 0 50 | runContactShadowsAsync: 0 51 | runVolumeVoxelizationAsync: 0 52 | lightLoopSettings: 53 | overrides: 0 54 | enableDeferredTileAndCluster: 0 55 | enableComputeLightEvaluation: 0 56 | enableComputeLightVariants: 0 57 | enableComputeMaterialVariants: 0 58 | enableFptlForForwardOpaque: 0 59 | enableBigTilePrepass: 0 60 | isFptlEnabled: 0 61 | m_ObsoleteBakedOrCustomReflectionFrameSettings: 62 | overrides: 0 63 | enableShadow: 0 64 | enableContactShadows: 0 65 | enableShadowMask: 0 66 | enableSSR: 0 67 | enableSSAO: 0 68 | enableSubsurfaceScattering: 0 69 | enableTransmission: 0 70 | enableAtmosphericScattering: 0 71 | enableVolumetrics: 0 72 | enableReprojectionForVolumetrics: 0 73 | enableLightLayers: 0 74 | enableExposureControl: 1 75 | diffuseGlobalDimmer: 0 76 | specularGlobalDimmer: 0 77 | shaderLitMode: 0 78 | enableDepthPrepassWithDeferredRendering: 0 79 | enableTransparentPrepass: 0 80 | enableMotionVectors: 0 81 | enableObjectMotionVectors: 0 82 | enableDecals: 0 83 | enableRoughRefraction: 0 84 | enableTransparentPostpass: 0 85 | enableDistortion: 0 86 | enablePostprocess: 0 87 | enableOpaqueObjects: 0 88 | enableTransparentObjects: 0 89 | enableRealtimePlanarReflection: 0 90 | enableMSAA: 0 91 | enableAsyncCompute: 0 92 | runLightListAsync: 0 93 | runSSRAsync: 0 94 | runSSAOAsync: 0 95 | runContactShadowsAsync: 0 96 | runVolumeVoxelizationAsync: 0 97 | lightLoopSettings: 98 | overrides: 0 99 | enableDeferredTileAndCluster: 0 100 | enableComputeLightEvaluation: 0 101 | enableComputeLightVariants: 0 102 | enableComputeMaterialVariants: 0 103 | enableFptlForForwardOpaque: 0 104 | enableBigTilePrepass: 0 105 | isFptlEnabled: 0 106 | m_ObsoleteRealtimeReflectionFrameSettings: 107 | overrides: 0 108 | enableShadow: 0 109 | enableContactShadows: 0 110 | enableShadowMask: 0 111 | enableSSR: 0 112 | enableSSAO: 0 113 | enableSubsurfaceScattering: 0 114 | enableTransmission: 0 115 | enableAtmosphericScattering: 0 116 | enableVolumetrics: 0 117 | enableReprojectionForVolumetrics: 0 118 | enableLightLayers: 0 119 | enableExposureControl: 1 120 | diffuseGlobalDimmer: 0 121 | specularGlobalDimmer: 0 122 | shaderLitMode: 0 123 | enableDepthPrepassWithDeferredRendering: 0 124 | enableTransparentPrepass: 0 125 | enableMotionVectors: 0 126 | enableObjectMotionVectors: 0 127 | enableDecals: 0 128 | enableRoughRefraction: 0 129 | enableTransparentPostpass: 0 130 | enableDistortion: 0 131 | enablePostprocess: 0 132 | enableOpaqueObjects: 0 133 | enableTransparentObjects: 0 134 | enableRealtimePlanarReflection: 0 135 | enableMSAA: 0 136 | enableAsyncCompute: 0 137 | runLightListAsync: 0 138 | runSSRAsync: 0 139 | runSSAOAsync: 0 140 | runContactShadowsAsync: 0 141 | runVolumeVoxelizationAsync: 0 142 | lightLoopSettings: 143 | overrides: 0 144 | enableDeferredTileAndCluster: 0 145 | enableComputeLightEvaluation: 0 146 | enableComputeLightVariants: 0 147 | enableComputeMaterialVariants: 0 148 | enableFptlForForwardOpaque: 0 149 | enableBigTilePrepass: 0 150 | isFptlEnabled: 0 151 | m_RenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, 152 | type: 2} 153 | m_RenderPipelineRayTracingResources: {fileID: 0} 154 | m_DefaultVolumeProfile: {fileID: 11400000, guid: f940a8037e6cda542891dc1aac1fa4e8, 155 | type: 2} 156 | m_DefaultLookDevProfile: {fileID: 0} 157 | m_RenderingPathDefaultCameraFrameSettings: 158 | bitDatas: 159 | data1: 70297877217101 160 | data2: 4539628425463136256 161 | lodBias: 1 162 | lodBiasMode: 0 163 | lodBiasQualityLevel: 0 164 | maximumLODLevel: 0 165 | maximumLODLevelMode: 0 166 | maximumLODLevelQualityLevel: 0 167 | materialQuality: 0 168 | m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings: 169 | bitDatas: 170 | data1: 64942043591501 171 | data2: 4539628424389459968 172 | lodBias: 1 173 | lodBiasMode: 0 174 | lodBiasQualityLevel: 0 175 | maximumLODLevel: 0 176 | maximumLODLevelMode: 0 177 | maximumLODLevelQualityLevel: 0 178 | materialQuality: 0 179 | m_RenderingPathDefaultRealtimeReflectionFrameSettings: 180 | bitDatas: 181 | data1: 69554681159501 182 | data2: 4539628424657895424 183 | lodBias: 1 184 | lodBiasMode: 0 185 | lodBiasQualityLevel: 0 186 | maximumLODLevel: 0 187 | maximumLODLevelMode: 0 188 | maximumLODLevelQualityLevel: 0 189 | materialQuality: 0 190 | m_RenderPipelineSettings: 191 | supportShadowMask: 0 192 | supportSSR: 0 193 | supportSSAO: 0 194 | supportSubsurfaceScattering: 0 195 | increaseSssSampleCount: 0 196 | supportVolumetrics: 0 197 | increaseResolutionOfVolumetrics: 0 198 | supportLightLayers: 0 199 | lightLayerName0: Light Layer default 200 | lightLayerName1: Light Layer 1 201 | lightLayerName2: Light Layer 2 202 | lightLayerName3: Light Layer 3 203 | lightLayerName4: Light Layer 4 204 | lightLayerName5: Light Layer 5 205 | lightLayerName6: Light Layer 6 206 | lightLayerName7: Light Layer 7 207 | supportDistortion: 0 208 | supportTransparentBackface: 0 209 | supportTransparentDepthPrepass: 0 210 | supportTransparentDepthPostpass: 0 211 | colorBufferFormat: 74 212 | supportCustomPass: 0 213 | customBufferFormat: 12 214 | supportedLitShaderMode: 1 215 | supportDecals: 0 216 | msaaSampleCount: 1 217 | supportMotionVectors: 0 218 | supportRuntimeDebugDisplay: 0 219 | supportDitheringCrossFade: 0 220 | supportTerrainHole: 0 221 | supportRayTracing: 0 222 | lightLoopSettings: 223 | cookieAtlasSize: 2048 224 | cookieFormat: 74 225 | pointCookieSize: 128 226 | cubeCookieTexArraySize: 16 227 | cookieAtlasLastValidMip: 0 228 | cookieTexArraySize: 1 229 | planarReflectionAtlasSize: 1024 230 | reflectionProbeCacheSize: 64 231 | reflectionCubemapSize: 256 232 | reflectionCacheCompressed: 0 233 | planarReflectionCacheCompressed: 0 234 | skyReflectionSize: 256 235 | skyLightingOverrideLayerMask: 236 | serializedVersion: 2 237 | m_Bits: 0 238 | supportFabricConvolution: 0 239 | maxDirectionalLightsOnScreen: 16 240 | maxPunctualLightsOnScreen: 512 241 | maxAreaLightsOnScreen: 64 242 | maxEnvLightsOnScreen: 64 243 | maxDecalsOnScreen: 512 244 | maxPlanarReflectionOnScreen: 16 245 | hdShadowInitParams: 246 | maxShadowRequests: 128 247 | directionalShadowsDepthBits: 32 248 | shadowFilteringQuality: 1 249 | punctualLightShadowAtlas: 250 | shadowAtlasResolution: 4096 251 | shadowAtlasDepthBits: 32 252 | useDynamicViewportRescale: 1 253 | areaLightShadowAtlas: 254 | shadowAtlasResolution: 4096 255 | shadowAtlasDepthBits: 32 256 | useDynamicViewportRescale: 1 257 | shadowResolutionDirectional: 258 | m_Values: 00010000000200000004000000080000 259 | m_SchemaId: 260 | m_Id: With4Levels 261 | shadowResolutionPunctual: 262 | m_Values: 00010000000200000004000000080000 263 | m_SchemaId: 264 | m_Id: With4Levels 265 | shadowResolutionArea: 266 | m_Values: 00010000000200000004000000080000 267 | m_SchemaId: 268 | m_Id: With4Levels 269 | maxDirectionalShadowMapResolution: 2048 270 | maxPunctualShadowMapResolution: 2048 271 | maxAreaShadowMapResolution: 2048 272 | supportScreenSpaceShadows: 0 273 | maxScreenSpaceShadowSlots: 4 274 | screenSpaceShadowBufferFormat: 48 275 | decalSettings: 276 | drawDistance: 1000 277 | atlasWidth: 4096 278 | atlasHeight: 4096 279 | perChannelMask: 0 280 | postProcessSettings: 281 | m_LutSize: 32 282 | lutFormat: 48 283 | bufferFormat: 74 284 | dynamicResolutionSettings: 285 | enabled: 0 286 | maxPercentage: 100 287 | minPercentage: 100 288 | dynResType: 1 289 | upsampleFilter: 1 290 | forceResolution: 0 291 | forcedPercentage: 100 292 | lowresTransparentSettings: 293 | enabled: 0 294 | checkerboardDepthBuffer: 1 295 | upsampleType: 1 296 | xrSettings: 297 | singlePass: 0 298 | occlusionMesh: 0 299 | postProcessQualitySettings: 300 | NearBlurSampleCount: 030000000500000008000000 301 | NearBlurMaxRadius: 302 | - 2 303 | - 4 304 | - 7 305 | FarBlurSampleCount: 04000000070000000e000000 306 | FarBlurMaxRadius: 307 | - 5 308 | - 8 309 | - 13 310 | DoFResolution: 040000000200000001000000 311 | DoFHighQualityFiltering: 000101 312 | MotionBlurSampleCount: 04000000080000000c000000 313 | BloomRes: 040000000200000002000000 314 | BloomHighQualityFiltering: 000101 315 | ChromaticAberrationMaxSamples: 03000000060000000c000000 316 | lightSettings: 317 | useContactShadow: 318 | m_Values: 000000 319 | m_SchemaId: 320 | m_Id: 321 | maximumLODLevel: 322 | m_Values: 000000000000000000000000 323 | m_SchemaId: 324 | m_Id: With3Levels 325 | lodBias: 326 | m_Values: 327 | - 1 328 | - 1 329 | - 1 330 | m_SchemaId: 331 | m_Id: With3Levels 332 | lightingQualitySettings: 333 | AOStepCount: 040000000600000010000000 334 | AOFullRes: 000001 335 | AOMaximumRadiusPixels: 200000002800000050000000 336 | AOBilateralUpsample: 000101 337 | AODirectionCount: 010000000200000004000000 338 | ContactShadowSampleCount: 060000000a00000010000000 339 | SSRMaxRaySteps: 100000002000000040000000 340 | allowShaderVariantStripping: 1 341 | enableSRPBatcher: 1 342 | shaderVariantLogLevel: 0 343 | availableMaterialQualityLevels: -1 344 | m_DefaultMaterialQualityLevel: 4 345 | diffusionProfileSettings: {fileID: 0} 346 | diffusionProfileSettingsList: 347 | - {fileID: 11400000, guid: 483343b32c71211409ab0b0f191efa04, type: 2} 348 | - {fileID: 11400000, guid: 8f69b7deda16bf94d847bee2f2774a1d, type: 2} 349 | beforeTransparentCustomPostProcesses: [] 350 | beforePostProcessCustomPostProcesses: [] 351 | afterPostProcessCustomPostProcesses: [] 352 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8998ad6175f139f40a8ae9279c9f6e3b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/Skin Diffusion Profile.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: b2686e09ec7aef44bad2843e4416f057, type: 3} 13 | m_Name: Skin Diffusion Profile 14 | m_EditorClassIdentifier: 15 | profile: 16 | name: Skin 17 | scatteringDistance: {r: 0.7568628, g: 0.32156864, b: 0.20000002, a: 1} 18 | transmissionTint: {r: 0.7568628, g: 0.32156864, b: 0.20000002, a: 1} 19 | texturingMode: 0 20 | transmissionMode: 0 21 | thicknessRemap: {x: 0, y: 8.152544} 22 | worldScale: 1 23 | ior: 1.4 24 | hash: 1075477546 25 | m_Version: 1 26 | profiles: [] 27 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/Skin Diffusion Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 483343b32c71211409ab0b0f191efa04 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-3305224281371206947 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 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: 953beb541740ddc499d005ee80c9ff29, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | active: 0 16 | m_AdvancedMode: 0 17 | enabled: 18 | m_OverrideState: 1 19 | m_Value: 1 20 | colorMode: 21 | m_OverrideState: 0 22 | m_Value: 1 23 | color: 24 | m_OverrideState: 0 25 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 26 | hdr: 1 27 | showAlpha: 0 28 | showEyeDropper: 1 29 | tint: 30 | m_OverrideState: 0 31 | m_Value: {r: 1, g: 1, b: 1, a: 1} 32 | hdr: 1 33 | showAlpha: 0 34 | showEyeDropper: 1 35 | maxFogDistance: 36 | m_OverrideState: 0 37 | m_Value: 5000 38 | min: 0 39 | mipFogMaxMip: 40 | m_OverrideState: 0 41 | m_Value: 0.5 42 | min: 0 43 | max: 1 44 | mipFogNear: 45 | m_OverrideState: 0 46 | m_Value: 0 47 | min: 0 48 | mipFogFar: 49 | m_OverrideState: 0 50 | m_Value: 1000 51 | min: 0 52 | baseHeight: 53 | m_OverrideState: 0 54 | m_Value: 0 55 | maximumHeight: 56 | m_OverrideState: 0 57 | m_Value: 50 58 | albedo: 59 | m_OverrideState: 0 60 | m_Value: {r: 1, g: 1, b: 1, a: 1} 61 | hdr: 0 62 | showAlpha: 1 63 | showEyeDropper: 1 64 | meanFreePath: 65 | m_OverrideState: 1 66 | m_Value: 200 67 | min: 1 68 | enableVolumetricFog: 69 | m_OverrideState: 1 70 | m_Value: 1 71 | anisotropy: 72 | m_OverrideState: 1 73 | m_Value: 0.65 74 | min: -1 75 | max: 1 76 | globalLightProbeDimmer: 77 | m_OverrideState: 0 78 | m_Value: 1 79 | min: 0 80 | max: 1 81 | depthExtent: 82 | m_OverrideState: 0 83 | m_Value: 64 84 | min: 0.1 85 | sliceDistributionUniformity: 86 | m_OverrideState: 0 87 | m_Value: 0.75 88 | min: 0 89 | max: 1 90 | filter: 91 | m_OverrideState: 0 92 | m_Value: 0 93 | --- !u!114 &11400000 94 | MonoBehaviour: 95 | m_ObjectHideFlags: 0 96 | m_CorrespondingSourceObject: {fileID: 0} 97 | m_PrefabInstance: {fileID: 0} 98 | m_PrefabAsset: {fileID: 0} 99 | m_GameObject: {fileID: 0} 100 | m_Enabled: 1 101 | m_EditorHideFlags: 0 102 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 103 | m_Name: Sky and Fog Settings Profile 104 | m_EditorClassIdentifier: 105 | components: 106 | - {fileID: 6775376097864012941} 107 | - {fileID: 7488742677745068149} 108 | - {fileID: -3305224281371206947} 109 | --- !u!114 &6775376097864012941 110 | MonoBehaviour: 111 | m_ObjectHideFlags: 3 112 | m_CorrespondingSourceObject: {fileID: 0} 113 | m_PrefabInstance: {fileID: 0} 114 | m_PrefabAsset: {fileID: 0} 115 | m_GameObject: {fileID: 0} 116 | m_Enabled: 1 117 | m_EditorHideFlags: 0 118 | m_Script: {fileID: 11500000, guid: 0d7593b3a9277ac4696b20006c21dde2, type: 3} 119 | m_Name: 120 | m_EditorClassIdentifier: 121 | active: 0 122 | m_AdvancedMode: 0 123 | skyType: 124 | m_OverrideState: 1 125 | m_Value: 1 126 | skyAmbientMode: 127 | m_OverrideState: 0 128 | m_Value: 0 129 | fogType: 130 | m_OverrideState: 1 131 | m_Value: 3 132 | --- !u!114 &7488742677745068149 133 | MonoBehaviour: 134 | m_ObjectHideFlags: 3 135 | m_CorrespondingSourceObject: {fileID: 0} 136 | m_PrefabInstance: {fileID: 0} 137 | m_PrefabAsset: {fileID: 0} 138 | m_GameObject: {fileID: 0} 139 | m_Enabled: 1 140 | m_EditorHideFlags: 0 141 | m_Script: {fileID: 11500000, guid: 59b6606ef2548734bb6d11b9d160bc7e, type: 3} 142 | m_Name: HDRISky 143 | m_EditorClassIdentifier: 144 | active: 0 145 | m_AdvancedMode: 0 146 | rotation: 147 | m_OverrideState: 0 148 | m_Value: 0 149 | min: 0 150 | max: 360 151 | skyIntensityMode: 152 | m_OverrideState: 0 153 | m_Value: 0 154 | exposure: 155 | m_OverrideState: 1 156 | m_Value: 10 157 | multiplier: 158 | m_OverrideState: 0 159 | m_Value: 1 160 | min: 0 161 | upperHemisphereLuxValue: 162 | m_OverrideState: 0 163 | m_Value: 0.46607146 164 | min: 0 165 | upperHemisphereLuxColor: 166 | m_OverrideState: 0 167 | m_Value: {x: 0.18750611, y: 0.29181966, z: 0.5} 168 | desiredLuxValue: 169 | m_OverrideState: 0 170 | m_Value: 20000 171 | updateMode: 172 | m_OverrideState: 0 173 | m_Value: 0 174 | updatePeriod: 175 | m_OverrideState: 0 176 | m_Value: 0 177 | min: 0 178 | includeSunInBaking: 179 | m_OverrideState: 0 180 | m_Value: 0 181 | hdriSky: 182 | m_OverrideState: 1 183 | m_Value: {fileID: 8900000, guid: 8253d41e6e8b11a4cbe77a4f8f82934d, type: 3} 184 | enableBackplate: 185 | m_OverrideState: 0 186 | m_Value: 0 187 | backplateType: 188 | m_OverrideState: 0 189 | m_Value: 0 190 | groundLevel: 191 | m_OverrideState: 0 192 | m_Value: 0 193 | scale: 194 | m_OverrideState: 0 195 | m_Value: {x: 32, y: 32} 196 | projectionDistance: 197 | m_OverrideState: 0 198 | m_Value: 16 199 | min: 0.0000001 200 | plateRotation: 201 | m_OverrideState: 0 202 | m_Value: 0 203 | min: 0 204 | max: 360 205 | plateTexRotation: 206 | m_OverrideState: 0 207 | m_Value: 0 208 | min: 0 209 | max: 360 210 | plateTexOffset: 211 | m_OverrideState: 0 212 | m_Value: {x: 0, y: 0} 213 | blendAmount: 214 | m_OverrideState: 0 215 | m_Value: 0 216 | min: 0 217 | max: 100 218 | shadowTint: 219 | m_OverrideState: 0 220 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 221 | hdr: 0 222 | showAlpha: 1 223 | showEyeDropper: 1 224 | pointLightShadow: 225 | m_OverrideState: 0 226 | m_Value: 0 227 | dirLightShadow: 228 | m_OverrideState: 0 229 | m_Value: 0 230 | rectLightShadow: 231 | m_OverrideState: 0 232 | m_Value: 0 233 | -------------------------------------------------------------------------------- /Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ed0404fd393aa341be47b6938585425 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4d4f4bd7ee819b4c971ea77f90ee15e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1dd5ce6224d657d4ea598bcf126de7dc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Materials/Troop_cavalry_lv01_a0_mat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-8497751438687319497 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 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: da692e001514ec24dbc4cca1949ff7e8, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 2 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Troop_cavalry_lv01_a0_mat 24 | m_Shader: {fileID: -6465566751694194690, guid: 05bf7133ed731c94c828dbe1d40dd49e, 25 | type: 3} 26 | m_ShaderKeywords: _BAKE_TEX_ON _ECS_BAKE_TEX_ON 27 | m_LightmapFlags: 4 28 | m_EnableInstancingVariants: 1 29 | m_DoubleSidedGI: 0 30 | m_CustomRenderQueue: 2000 31 | stringTagMap: 32 | MotionVector: User 33 | disabledShaderPasses: 34 | - DistortionVectors 35 | - MOTIONVECTORS 36 | - TransparentDepthPrepass 37 | - TransparentDepthPostpass 38 | - TransparentBackface 39 | m_SavedProperties: 40 | serializedVersion: 3 41 | m_TexEnvs: 42 | - Texture2D_DEF68703: 43 | m_Texture: {fileID: 2800000, guid: f90a06c525decf140bd16d86aae5b113, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _AnimTex: 47 | m_Texture: {fileID: 2800000, guid: c232aebc787fa7243a67f4a6d27dc726, type: 2} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _AnimTex_Runtime: 51 | m_Texture: {fileID: 2800000, guid: c232aebc787fa7243a67f4a6d27dc726, type: 2} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _AnisotropyMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _BaseColorMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _BaseMap: 63 | m_Texture: {fileID: 2800000, guid: f90a06c525decf140bd16d86aae5b113, type: 3} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _BentNormalMap: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _BentNormalMapOS: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _CoatMaskMap: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _DetailMap: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - _DistortionVectorMap: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | - _EmissiveColorMap: 87 | m_Texture: {fileID: 0} 88 | m_Scale: {x: 1, y: 1} 89 | m_Offset: {x: 0, y: 0} 90 | - _HeightMap: 91 | m_Texture: {fileID: 0} 92 | m_Scale: {x: 1, y: 1} 93 | m_Offset: {x: 0, y: 0} 94 | - _IridescenceMaskMap: 95 | m_Texture: {fileID: 0} 96 | m_Scale: {x: 1, y: 1} 97 | m_Offset: {x: 0, y: 0} 98 | - _IridescenceThicknessMap: 99 | m_Texture: {fileID: 0} 100 | m_Scale: {x: 1, y: 1} 101 | m_Offset: {x: 0, y: 0} 102 | - _MainTex: 103 | m_Texture: {fileID: 0} 104 | m_Scale: {x: 1, y: 1} 105 | m_Offset: {x: 0, y: 0} 106 | - _MaskMap: 107 | m_Texture: {fileID: 0} 108 | m_Scale: {x: 1, y: 1} 109 | m_Offset: {x: 0, y: 0} 110 | - _NormalMap: 111 | m_Texture: {fileID: 0} 112 | m_Scale: {x: 1, y: 1} 113 | m_Offset: {x: 0, y: 0} 114 | - _NormalMapOS: 115 | m_Texture: {fileID: 0} 116 | m_Scale: {x: 1, y: 1} 117 | m_Offset: {x: 0, y: 0} 118 | - _SpecularColorMap: 119 | m_Texture: {fileID: 0} 120 | m_Scale: {x: 1, y: 1} 121 | m_Offset: {x: 0, y: 0} 122 | - _SubsurfaceMaskMap: 123 | m_Texture: {fileID: 0} 124 | m_Scale: {x: 1, y: 1} 125 | m_Offset: {x: 0, y: 0} 126 | - _TangentMap: 127 | m_Texture: {fileID: 0} 128 | m_Scale: {x: 1, y: 1} 129 | m_Offset: {x: 0, y: 0} 130 | - _TangentMapOS: 131 | m_Texture: {fileID: 0} 132 | m_Scale: {x: 1, y: 1} 133 | m_Offset: {x: 0, y: 0} 134 | - _ThicknessMap: 135 | m_Texture: {fileID: 0} 136 | m_Scale: {x: 1, y: 1} 137 | m_Offset: {x: 0, y: 0} 138 | - _TransmittanceColorMap: 139 | m_Texture: {fileID: 0} 140 | m_Scale: {x: 1, y: 1} 141 | m_Offset: {x: 0, y: 0} 142 | m_Floats: 143 | - BOOLEAN_B95ACE97: 0 144 | - _AORemapMax: 1 145 | - _AORemapMin: 0 146 | - _ATDistance: 1 147 | - _AddPrecomputedVelocity: 0 148 | - _AlbedoAffectEmissive: 0 149 | - _AlphaCutoff: 0.5 150 | - _AlphaCutoffEnable: 0 151 | - _AlphaCutoffPostpass: 0.5 152 | - _AlphaCutoffPrepass: 0.5 153 | - _AlphaCutoffShadow: 0.5 154 | - _AlphaDstBlend: 0 155 | - _AlphaSrcBlend: 1 156 | - _Anisotropy: 0 157 | - _BlendMode: 0 158 | - _CoatMask: 0 159 | - _CullMode: 2 160 | - _CullModeForward: 2 161 | - _Cutoff: 0.5 162 | - _DepthOffsetEnable: 0 163 | - _DetailAlbedoScale: 1 164 | - _DetailNormalScale: 1 165 | - _DetailSmoothnessScale: 1 166 | - _DiffusionProfile: 0 167 | - _DiffusionProfileHash: 0 168 | - _DisplacementLockObjectScale: 1 169 | - _DisplacementLockTilingScale: 1 170 | - _DisplacementMode: 0 171 | - _DistortionBlendMode: 0 172 | - _DistortionBlurBlendMode: 0 173 | - _DistortionBlurDstBlend: 1 174 | - _DistortionBlurRemapMax: 1 175 | - _DistortionBlurRemapMin: 0 176 | - _DistortionBlurScale: 1 177 | - _DistortionBlurSrcBlend: 1 178 | - _DistortionDepthTest: 1 179 | - _DistortionDstBlend: 1 180 | - _DistortionEnable: 0 181 | - _DistortionScale: 1 182 | - _DistortionSrcBlend: 1 183 | - _DistortionVectorBias: -1 184 | - _DistortionVectorScale: 2 185 | - _DoubleSidedEnable: 0 186 | - _DoubleSidedNormalMode: 1 187 | - _DstBlend: 0 188 | - _ECS: 0 189 | - _EmissiveColorMode: 1 190 | - _EmissiveExposureWeight: 1 191 | - _EmissiveIntensity: 1 192 | - _EmissiveIntensityUnit: 0 193 | - _EnableBlendModePreserveSpecularLighting: 1 194 | - _EnableFogOnTransparent: 1 195 | - _EnableGeometricSpecularAA: 0 196 | - _EnergyConservingSpecularColor: 1 197 | - _HeightAmplitude: 0.02 198 | - _HeightCenter: 0.5 199 | - _HeightMapParametrization: 0 200 | - _HeightMax: 1 201 | - _HeightMin: -1 202 | - _HeightOffset: 0 203 | - _HeightPoMAmplitude: 2 204 | - _HeightTessAmplitude: 2 205 | - _HeightTessCenter: 0.5 206 | - _InvTilingScale: 1 207 | - _Ior: 1.5 208 | - _IridescenceMask: 1 209 | - _IridescenceThickness: 1 210 | - _LinkDetailsWithBase: 1 211 | - _MaterialID: 1 212 | - _Metallic: 0 213 | - _NormalMapSpace: 0 214 | - _NormalScale: 1 215 | - _PPDLodThreshold: 5 216 | - _PPDMaxSamples: 15 217 | - _PPDMinSamples: 5 218 | - _PPDPrimitiveLength: 1 219 | - _PPDPrimitiveWidth: 1 220 | - _ReceivesSSR: 1 221 | - _RefractionModel: 0 222 | - _RenderQueueType: 1 223 | - _RequireSplitLighting: 0 224 | - _SSRefractionProjectionModel: 0 225 | - _Smoothness: 0.5 226 | - _SmoothnessRemapMax: 1 227 | - _SmoothnessRemapMin: 0 228 | - _SpecularAAScreenSpaceVariance: 0.1 229 | - _SpecularAAThreshold: 0.2 230 | - _SpecularOcclusionMode: 1 231 | - _SrcBlend: 1 232 | - _StencilRef: 0 233 | - _StencilRefDepth: 8 234 | - _StencilRefDistortionVec: 4 235 | - _StencilRefGBuffer: 10 236 | - _StencilRefMV: 40 237 | - _StencilWriteMask: 6 238 | - _StencilWriteMaskDepth: 8 239 | - _StencilWriteMaskDistortionVec: 4 240 | - _StencilWriteMaskGBuffer: 14 241 | - _StencilWriteMaskMV: 40 242 | - _SubsurfaceMask: 1 243 | - _SupportDecals: 1 244 | - _SurfaceType: 0 245 | - _TexWorldScale: 1 246 | - _TexWorldScaleEmissive: 1 247 | - _Thickness: 1 248 | - _TransmissionEnable: 1 249 | - _TransparentBackfaceEnable: 0 250 | - _TransparentCullMode: 2 251 | - _TransparentDepthPostpassEnable: 0 252 | - _TransparentDepthPrepassEnable: 0 253 | - _TransparentSortPriority: 0 254 | - _TransparentWritingMotionVec: 0 255 | - _TransparentZWrite: 0 256 | - _UVBase: 0 257 | - _UVDetail: 0 258 | - _UVEmissive: 0 259 | - _UseEmissiveIntensity: 0 260 | - _UseShadowThreshold: 0 261 | - _ZTestDepthEqualForOpaque: 3 262 | - _ZTestGBuffer: 4 263 | - _ZTestModeDistortion: 4 264 | - _ZTestTransparent: 4 265 | - _ZWrite: 1 266 | m_Colors: 267 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 268 | - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} 269 | - _Color: {r: 1, g: 1, b: 1, a: 1} 270 | - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} 271 | - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} 272 | - _ECS_FrameData: {r: 0, g: 0, b: 0, a: 0} 273 | - _ECS_TexSkinningData_Runtime: {r: 0, g: 0, b: 0, a: 0} 274 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 275 | - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} 276 | - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} 277 | - _FrameData: {r: 0, g: 0, b: 0, a: 0} 278 | - _FrameData_Runtime: {r: 0, g: 0, b: 0, a: 0} 279 | - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} 280 | - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 281 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 282 | - _TestColor: {r: 0, g: 0, b: 0, a: 0} 283 | - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 284 | - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} 285 | - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} 286 | - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} 287 | - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} 288 | -------------------------------------------------------------------------------- /Assets/Resources/Materials/Troop_cavalry_lv01_a0_mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adace76d7cd46a445890112252b9453e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Materials/Troop_cavalry_lv01_a1_mat.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: Troop_cavalry_lv01_a1_mat 11 | m_Shader: {fileID: -6465566751694194690, guid: 05bf7133ed731c94c828dbe1d40dd49e, 12 | type: 3} 13 | m_ShaderKeywords: 14 | m_LightmapFlags: 4 15 | m_EnableInstancingVariants: 1 16 | m_DoubleSidedGI: 0 17 | m_CustomRenderQueue: 2000 18 | stringTagMap: 19 | MotionVector: User 20 | disabledShaderPasses: 21 | - DistortionVectors 22 | - MOTIONVECTORS 23 | - TransparentDepthPrepass 24 | - TransparentDepthPostpass 25 | - TransparentBackface 26 | m_SavedProperties: 27 | serializedVersion: 3 28 | m_TexEnvs: 29 | - Texture2D_DEF68703: 30 | m_Texture: {fileID: 2800000, guid: f90a06c525decf140bd16d86aae5b113, type: 3} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _AnimTex: 34 | m_Texture: {fileID: 2800000, guid: 0c6ecace39964bb448c2aec31cf428b6, type: 2} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _AnimTex_Runtime: 38 | m_Texture: {fileID: 2800000, guid: 0c6ecace39964bb448c2aec31cf428b6, type: 2} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _AnisotropyMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _BaseColorMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _BaseMap: 50 | m_Texture: {fileID: 2800000, guid: f90a06c525decf140bd16d86aae5b113, type: 3} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _BentNormalMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _BentNormalMapOS: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _CoatMaskMap: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | - _DetailMap: 66 | m_Texture: {fileID: 0} 67 | m_Scale: {x: 1, y: 1} 68 | m_Offset: {x: 0, y: 0} 69 | - _DistortionVectorMap: 70 | m_Texture: {fileID: 0} 71 | m_Scale: {x: 1, y: 1} 72 | m_Offset: {x: 0, y: 0} 73 | - _EmissiveColorMap: 74 | m_Texture: {fileID: 0} 75 | m_Scale: {x: 1, y: 1} 76 | m_Offset: {x: 0, y: 0} 77 | - _HeightMap: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | - _IridescenceMaskMap: 82 | m_Texture: {fileID: 0} 83 | m_Scale: {x: 1, y: 1} 84 | m_Offset: {x: 0, y: 0} 85 | - _IridescenceThicknessMap: 86 | m_Texture: {fileID: 0} 87 | m_Scale: {x: 1, y: 1} 88 | m_Offset: {x: 0, y: 0} 89 | - _MainTex: 90 | m_Texture: {fileID: 0} 91 | m_Scale: {x: 1, y: 1} 92 | m_Offset: {x: 0, y: 0} 93 | - _MaskMap: 94 | m_Texture: {fileID: 0} 95 | m_Scale: {x: 1, y: 1} 96 | m_Offset: {x: 0, y: 0} 97 | - _NormalMap: 98 | m_Texture: {fileID: 0} 99 | m_Scale: {x: 1, y: 1} 100 | m_Offset: {x: 0, y: 0} 101 | - _NormalMapOS: 102 | m_Texture: {fileID: 0} 103 | m_Scale: {x: 1, y: 1} 104 | m_Offset: {x: 0, y: 0} 105 | - _SpecularColorMap: 106 | m_Texture: {fileID: 0} 107 | m_Scale: {x: 1, y: 1} 108 | m_Offset: {x: 0, y: 0} 109 | - _SubsurfaceMaskMap: 110 | m_Texture: {fileID: 0} 111 | m_Scale: {x: 1, y: 1} 112 | m_Offset: {x: 0, y: 0} 113 | - _TangentMap: 114 | m_Texture: {fileID: 0} 115 | m_Scale: {x: 1, y: 1} 116 | m_Offset: {x: 0, y: 0} 117 | - _TangentMapOS: 118 | m_Texture: {fileID: 0} 119 | m_Scale: {x: 1, y: 1} 120 | m_Offset: {x: 0, y: 0} 121 | - _ThicknessMap: 122 | m_Texture: {fileID: 0} 123 | m_Scale: {x: 1, y: 1} 124 | m_Offset: {x: 0, y: 0} 125 | - _TransmittanceColorMap: 126 | m_Texture: {fileID: 0} 127 | m_Scale: {x: 1, y: 1} 128 | m_Offset: {x: 0, y: 0} 129 | m_Floats: 130 | - BOOLEAN_B95ACE97: 0 131 | - _AORemapMax: 1 132 | - _AORemapMin: 0 133 | - _ATDistance: 1 134 | - _AddPrecomputedVelocity: 0 135 | - _AlbedoAffectEmissive: 0 136 | - _AlphaCutoff: 0.5 137 | - _AlphaCutoffEnable: 0 138 | - _AlphaCutoffPostpass: 0.5 139 | - _AlphaCutoffPrepass: 0.5 140 | - _AlphaCutoffShadow: 0.5 141 | - _AlphaDstBlend: 0 142 | - _AlphaSrcBlend: 1 143 | - _Anisotropy: 0 144 | - _BlendMode: 0 145 | - _CoatMask: 0 146 | - _CullMode: 2 147 | - _CullModeForward: 2 148 | - _Cutoff: 0.5 149 | - _DepthOffsetEnable: 0 150 | - _DetailAlbedoScale: 1 151 | - _DetailNormalScale: 1 152 | - _DetailSmoothnessScale: 1 153 | - _DiffusionProfile: 0 154 | - _DiffusionProfileHash: 0 155 | - _DisplacementLockObjectScale: 1 156 | - _DisplacementLockTilingScale: 1 157 | - _DisplacementMode: 0 158 | - _DistortionBlendMode: 0 159 | - _DistortionBlurBlendMode: 0 160 | - _DistortionBlurDstBlend: 1 161 | - _DistortionBlurRemapMax: 1 162 | - _DistortionBlurRemapMin: 0 163 | - _DistortionBlurScale: 1 164 | - _DistortionBlurSrcBlend: 1 165 | - _DistortionDepthTest: 1 166 | - _DistortionDstBlend: 1 167 | - _DistortionEnable: 0 168 | - _DistortionScale: 1 169 | - _DistortionSrcBlend: 1 170 | - _DistortionVectorBias: -1 171 | - _DistortionVectorScale: 2 172 | - _DoubleSidedEnable: 0 173 | - _DoubleSidedNormalMode: 1 174 | - _DstBlend: 0 175 | - _ECS: 0 176 | - _EmissiveColorMode: 1 177 | - _EmissiveExposureWeight: 1 178 | - _EmissiveIntensity: 1 179 | - _EmissiveIntensityUnit: 0 180 | - _EnableBlendModePreserveSpecularLighting: 1 181 | - _EnableFogOnTransparent: 1 182 | - _EnableGeometricSpecularAA: 0 183 | - _EnergyConservingSpecularColor: 1 184 | - _HeightAmplitude: 0.02 185 | - _HeightCenter: 0.5 186 | - _HeightMapParametrization: 0 187 | - _HeightMax: 1 188 | - _HeightMin: -1 189 | - _HeightOffset: 0 190 | - _HeightPoMAmplitude: 2 191 | - _HeightTessAmplitude: 2 192 | - _HeightTessCenter: 0.5 193 | - _InvTilingScale: 1 194 | - _Ior: 1.5 195 | - _IridescenceMask: 1 196 | - _IridescenceThickness: 1 197 | - _LinkDetailsWithBase: 1 198 | - _MaterialID: 1 199 | - _Metallic: 0 200 | - _NormalMapSpace: 0 201 | - _NormalScale: 1 202 | - _PPDLodThreshold: 5 203 | - _PPDMaxSamples: 15 204 | - _PPDMinSamples: 5 205 | - _PPDPrimitiveLength: 1 206 | - _PPDPrimitiveWidth: 1 207 | - _ReceivesSSR: 1 208 | - _RefractionModel: 0 209 | - _RenderQueueType: 1 210 | - _RequireSplitLighting: 0 211 | - _SSRefractionProjectionModel: 0 212 | - _Smoothness: 0.5 213 | - _SmoothnessRemapMax: 1 214 | - _SmoothnessRemapMin: 0 215 | - _SpecularAAScreenSpaceVariance: 0.1 216 | - _SpecularAAThreshold: 0.2 217 | - _SpecularOcclusionMode: 1 218 | - _SrcBlend: 1 219 | - _StencilRef: 0 220 | - _StencilRefDepth: 8 221 | - _StencilRefDistortionVec: 4 222 | - _StencilRefGBuffer: 10 223 | - _StencilRefMV: 40 224 | - _StencilWriteMask: 6 225 | - _StencilWriteMaskDepth: 8 226 | - _StencilWriteMaskDistortionVec: 4 227 | - _StencilWriteMaskGBuffer: 14 228 | - _StencilWriteMaskMV: 40 229 | - _SubsurfaceMask: 1 230 | - _SupportDecals: 1 231 | - _SurfaceType: 0 232 | - _TexWorldScale: 1 233 | - _TexWorldScaleEmissive: 1 234 | - _Thickness: 1 235 | - _TransmissionEnable: 1 236 | - _TransparentBackfaceEnable: 0 237 | - _TransparentCullMode: 2 238 | - _TransparentDepthPostpassEnable: 0 239 | - _TransparentDepthPrepassEnable: 0 240 | - _TransparentSortPriority: 0 241 | - _TransparentWritingMotionVec: 0 242 | - _TransparentZWrite: 0 243 | - _UVBase: 0 244 | - _UVDetail: 0 245 | - _UVEmissive: 0 246 | - _UseEmissiveIntensity: 0 247 | - _UseShadowThreshold: 0 248 | - _ZTestDepthEqualForOpaque: 3 249 | - _ZTestGBuffer: 4 250 | - _ZTestModeDistortion: 4 251 | - _ZTestTransparent: 4 252 | - _ZWrite: 1 253 | m_Colors: 254 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 255 | - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} 256 | - _Color: {r: 1, g: 1, b: 1, a: 1} 257 | - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} 258 | - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} 259 | - _ECS_FrameData: {r: 0, g: 0, b: 0, a: 0} 260 | - _ECS_TexSkinningData_Runtime: {r: 0, g: 0, b: 0, a: 0} 261 | - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} 262 | - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} 263 | - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} 264 | - _FrameData: {r: 0, g: 0, b: 0, a: 0} 265 | - _FrameData_Runtime: {r: 0, g: 0, b: 0, a: 0} 266 | - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} 267 | - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 268 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 269 | - _TestColor: {r: 0, g: 0, b: 0, a: 0} 270 | - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} 271 | - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} 272 | - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} 273 | - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} 274 | - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} 275 | --- !u!114 &6214925908537732768 276 | MonoBehaviour: 277 | m_ObjectHideFlags: 11 278 | m_CorrespondingSourceObject: {fileID: 0} 279 | m_PrefabInstance: {fileID: 0} 280 | m_PrefabAsset: {fileID: 0} 281 | m_GameObject: {fileID: 0} 282 | m_Enabled: 1 283 | m_EditorHideFlags: 0 284 | m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} 285 | m_Name: 286 | m_EditorClassIdentifier: 287 | version: 2 288 | -------------------------------------------------------------------------------- /Assets/Resources/Materials/Troop_cavalry_lv01_a1_mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f64e0f9b95733274482d9d80838e95db 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a4b7e641b97df2b418050f45f1d54007 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Shader/ECS_Skinning_Shader.shadergraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05bf7133ed731c94c828dbe1d40dd49e 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} 11 | -------------------------------------------------------------------------------- /Assets/Resources/Shader/Includes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05d27389fbec8ee408c0800905129801 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Shader/Includes/Skinning.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef __AOI_GPUSKINNING 2 | #define __AOI_GPUSKINNING 3 | 4 | TEXTURE2D(_AnimTex); 5 | SAMPLER(sampler_AnimTex); 6 | 7 | inline float2 BoneIndexToTexUV(float index, float4 param) { 8 | int row = (int)(index / param.y); 9 | int col = index % param.x; 10 | return float2(col * param.w, row * param.w); 11 | } 12 | 13 | inline float3 QuatMulPos(float4 rotation, float3 rhs) 14 | { 15 | float3 qVec = half3(rotation.xyz); 16 | float3 c1 = cross(qVec, rhs); 17 | float3 c2 = cross(qVec, c1); 18 | 19 | return rhs + 2 * (c1 * rotation.w + c2); 20 | } 21 | 22 | inline float3 QuatMulPos(float4 real, float4 dual, float4 rhs) { 23 | return dual.xyz * rhs.w + QuatMulPos(real, rhs.xyz); 24 | } 25 | 26 | inline float4 DQTexSkinning(float4 vertex, float4 texcoord, float4 startData, Texture2D animTex, SamplerState animTexSample) { 27 | 28 | int index1 = startData.z + texcoord.x; 29 | float4 boneDataReal1 = SAMPLE_TEXTURE2D_LOD(animTex, animTexSample, BoneIndexToTexUV(index1, startData), 0); 30 | float4 boneDataDual1 = SAMPLE_TEXTURE2D_LOD(animTex, animTexSample, BoneIndexToTexUV(index1 + 1, startData), 0); 31 | float4 real1 = boneDataReal1.rgba; 32 | float4 dual1 = boneDataDual1.rgba; 33 | 34 | int index2 = startData.z + texcoord.z; 35 | float4 boneDataReal2 = SAMPLE_TEXTURE2D_LOD(animTex, animTexSample, BoneIndexToTexUV(index2, startData), 0); 36 | float4 boneDataDual2 = SAMPLE_TEXTURE2D_LOD(animTex, animTexSample, BoneIndexToTexUV(index2 + 1, startData), 0); 37 | float4 real2 = boneDataReal2.rgba; 38 | float4 dual2 = boneDataDual2.rgba; 39 | 40 | float3 position = (dual1.xyz * vertex.w) + QuatMulPos(real1, vertex.xyz); 41 | float4 t0 = float4(position, vertex.w); 42 | 43 | position = (dual2.xyz * vertex.w) + QuatMulPos(real2, vertex.xyz); 44 | float4 t1 = float4(position, vertex.w); 45 | 46 | return t0 * texcoord.y + t1 * texcoord.w; 47 | } 48 | 49 | inline void SkinningTex_float(float4 positionOS, float4 texcoord, float4 frameData, Texture2D animTex, SamplerState animTexSample, out float4 output) { 50 | output = float4(DQTexSkinning(positionOS, texcoord, frameData, animTex, animTexSample).xyz,1); 51 | } 52 | 53 | #endif -------------------------------------------------------------------------------- /Assets/Resources/Shader/Includes/Skinning.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3295e5d570708b444a3135742230a2bd 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Resources/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3335ad047d5dbf44c82f15b04d6cba8b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Textures/cavalry_lv01.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Assets/Resources/Textures/cavalry_lv01.tga -------------------------------------------------------------------------------- /Assets/Resources/Textures/cavalry_lv01.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f90a06c525decf140bd16d86aae5b113 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1309835393398080038 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: 5981361541441058304} 12 | - component: {fileID: 7480683700914630623} 13 | m_Layer: 0 14 | m_Name: Troop_cavalry_lv01 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!4 &5981361541441058304 21 | Transform: 22 | m_ObjectHideFlags: 0 23 | m_CorrespondingSourceObject: {fileID: 0} 24 | m_PrefabInstance: {fileID: 0} 25 | m_PrefabAsset: {fileID: 0} 26 | m_GameObject: {fileID: 1309835393398080038} 27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 28 | m_LocalPosition: {x: 0, y: 0, z: 0} 29 | m_LocalScale: {x: 1, y: 1, z: 1} 30 | m_Children: [] 31 | m_Father: {fileID: 0} 32 | m_RootOrder: 0 33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 34 | --- !u!114 &7480683700914630623 35 | MonoBehaviour: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInstance: {fileID: 0} 39 | m_PrefabAsset: {fileID: 0} 40 | m_GameObject: {fileID: 1309835393398080038} 41 | m_Enabled: 1 42 | m_EditorHideFlags: 0 43 | m_Script: {fileID: 11500000, guid: 004ec76f51d916349b8b625aeeadd000, type: 3} 44 | m_Name: 45 | m_EditorClassIdentifier: 46 | AttachDatas: 47 | - LODMesh: 48 | - {fileID: 4300000, guid: 4763c7ba7b072f04691e5290ce912c86, type: 2} 49 | - {fileID: 4300000, guid: 5e912f5a20edfde409476c4b3ebbe2f0, type: 2} 50 | DrawMaterial: {fileID: 2100000, guid: adace76d7cd46a445890112252b9453e, type: 2} 51 | AnimTexture: {fileID: 2800000, guid: c232aebc787fa7243a67f4a6d27dc726, type: 2} 52 | SMRCount: 15 53 | - LODMesh: 54 | - {fileID: 4300000, guid: bfa4f5ed271aacb41ab3df3e09161848, type: 2} 55 | - {fileID: 4300000, guid: 6ec0c68539460b54aa0b9b3ebb457e3e, type: 2} 56 | DrawMaterial: {fileID: 2100000, guid: f64e0f9b95733274482d9d80838e95db, type: 2} 57 | AnimTexture: {fileID: 2800000, guid: 0c6ecace39964bb448c2aec31cf428b6, type: 2} 58 | SMRCount: 22 59 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39a3c6d0a8a57c348be05a7143068ba8 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_ECSGPUInstancing.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &7045960173741397865 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: 7551042020096470871} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 6993d5983158f3e4690e44c3ac29b77a, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | --- !u!1001 &8856268110104096113 16 | PrefabInstance: 17 | m_ObjectHideFlags: 0 18 | serializedVersion: 2 19 | m_Modification: 20 | m_TransformParent: {fileID: 0} 21 | m_Modifications: 22 | - target: {fileID: 1309835393398080038, guid: 39a3c6d0a8a57c348be05a7143068ba8, 23 | type: 3} 24 | propertyPath: m_Name 25 | value: Troop_cavalry_lv01_ECSGPUInstancing 26 | objectReference: {fileID: 0} 27 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 28 | type: 3} 29 | propertyPath: m_LocalPosition.x 30 | value: 0 31 | objectReference: {fileID: 0} 32 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 33 | type: 3} 34 | propertyPath: m_LocalPosition.y 35 | value: 0 36 | objectReference: {fileID: 0} 37 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 38 | type: 3} 39 | propertyPath: m_LocalPosition.z 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 43 | type: 3} 44 | propertyPath: m_LocalRotation.x 45 | value: 0 46 | objectReference: {fileID: 0} 47 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 48 | type: 3} 49 | propertyPath: m_LocalRotation.y 50 | value: 0 51 | objectReference: {fileID: 0} 52 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 53 | type: 3} 54 | propertyPath: m_LocalRotation.z 55 | value: 0 56 | objectReference: {fileID: 0} 57 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 58 | type: 3} 59 | propertyPath: m_LocalRotation.w 60 | value: 1 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 63 | type: 3} 64 | propertyPath: m_RootOrder 65 | value: 0 66 | objectReference: {fileID: 0} 67 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 68 | type: 3} 69 | propertyPath: m_LocalEulerAnglesHint.x 70 | value: 0 71 | objectReference: {fileID: 0} 72 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 73 | type: 3} 74 | propertyPath: m_LocalEulerAnglesHint.y 75 | value: 0 76 | objectReference: {fileID: 0} 77 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 78 | type: 3} 79 | propertyPath: m_LocalEulerAnglesHint.z 80 | value: 0 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 83 | type: 3} 84 | propertyPath: AnimNames.Array.size 85 | value: 4 86 | objectReference: {fileID: 0} 87 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 88 | type: 3} 89 | propertyPath: AnimFrameCount.Array.size 90 | value: 4 91 | objectReference: {fileID: 0} 92 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 93 | type: 3} 94 | propertyPath: AnimNames.Array.data[0] 95 | value: attack01 96 | objectReference: {fileID: 0} 97 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 98 | type: 3} 99 | propertyPath: AnimNames.Array.data[1] 100 | value: dead01 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 103 | type: 3} 104 | propertyPath: AnimNames.Array.data[2] 105 | value: idle01 106 | objectReference: {fileID: 0} 107 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 108 | type: 3} 109 | propertyPath: AnimNames.Array.data[3] 110 | value: walk01 111 | objectReference: {fileID: 0} 112 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 113 | type: 3} 114 | propertyPath: AnimFrameCount.Array.data[0] 115 | value: 49 116 | objectReference: {fileID: 0} 117 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 118 | type: 3} 119 | propertyPath: AnimFrameCount.Array.data[1] 120 | value: 84 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 123 | type: 3} 124 | propertyPath: AnimFrameCount.Array.data[2] 125 | value: 60 126 | objectReference: {fileID: 0} 127 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 128 | type: 3} 129 | propertyPath: AnimFrameCount.Array.data[3] 130 | value: 49 131 | objectReference: {fileID: 0} 132 | m_RemovedComponents: [] 133 | m_SourcePrefab: {fileID: 100100000, guid: 39a3c6d0a8a57c348be05a7143068ba8, type: 3} 134 | --- !u!1 &7551042020096470871 stripped 135 | GameObject: 136 | m_CorrespondingSourceObject: {fileID: 1309835393398080038, guid: 39a3c6d0a8a57c348be05a7143068ba8, 137 | type: 3} 138 | m_PrefabInstance: {fileID: 8856268110104096113} 139 | m_PrefabAsset: {fileID: 0} 140 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_ECSGPUInstancing.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 425807e85bd186b4dbd5ae02a588bb54 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_NormalGPUInstancing.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1568955874 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: 5715673760336489943} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 0d31346377f32ca48aca2d86bb1f5436, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | --- !u!1001 &6737208404254306289 16 | PrefabInstance: 17 | m_ObjectHideFlags: 0 18 | serializedVersion: 2 19 | m_Modification: 20 | m_TransformParent: {fileID: 0} 21 | m_Modifications: 22 | - target: {fileID: 1309835393398080038, guid: 39a3c6d0a8a57c348be05a7143068ba8, 23 | type: 3} 24 | propertyPath: m_Name 25 | value: Troop_cavalry_lv01_NormalGPUInstancing 26 | objectReference: {fileID: 0} 27 | - target: {fileID: 1309835393398080038, guid: 39a3c6d0a8a57c348be05a7143068ba8, 28 | type: 3} 29 | propertyPath: m_IsActive 30 | value: 0 31 | objectReference: {fileID: 0} 32 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 33 | type: 3} 34 | propertyPath: m_LocalPosition.x 35 | value: 0 36 | objectReference: {fileID: 0} 37 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 38 | type: 3} 39 | propertyPath: m_LocalPosition.y 40 | value: 0 41 | objectReference: {fileID: 0} 42 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 43 | type: 3} 44 | propertyPath: m_LocalPosition.z 45 | value: 0 46 | objectReference: {fileID: 0} 47 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 48 | type: 3} 49 | propertyPath: m_LocalRotation.x 50 | value: 0 51 | objectReference: {fileID: 0} 52 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 53 | type: 3} 54 | propertyPath: m_LocalRotation.y 55 | value: 0 56 | objectReference: {fileID: 0} 57 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 58 | type: 3} 59 | propertyPath: m_LocalRotation.z 60 | value: 0 61 | objectReference: {fileID: 0} 62 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 63 | type: 3} 64 | propertyPath: m_LocalRotation.w 65 | value: 1 66 | objectReference: {fileID: 0} 67 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 68 | type: 3} 69 | propertyPath: m_RootOrder 70 | value: 0 71 | objectReference: {fileID: 0} 72 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 73 | type: 3} 74 | propertyPath: m_LocalEulerAnglesHint.x 75 | value: 0 76 | objectReference: {fileID: 0} 77 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 78 | type: 3} 79 | propertyPath: m_LocalEulerAnglesHint.y 80 | value: 0 81 | objectReference: {fileID: 0} 82 | - target: {fileID: 5981361541441058304, guid: 39a3c6d0a8a57c348be05a7143068ba8, 83 | type: 3} 84 | propertyPath: m_LocalEulerAnglesHint.z 85 | value: 0 86 | objectReference: {fileID: 0} 87 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 88 | type: 3} 89 | propertyPath: AnimNames.Array.size 90 | value: 4 91 | objectReference: {fileID: 0} 92 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 93 | type: 3} 94 | propertyPath: AnimFrameCount.Array.size 95 | value: 4 96 | objectReference: {fileID: 0} 97 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 98 | type: 3} 99 | propertyPath: AnimNames.Array.data[0] 100 | value: attach01 101 | objectReference: {fileID: 0} 102 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 103 | type: 3} 104 | propertyPath: AnimNames.Array.data[1] 105 | value: dead01 106 | objectReference: {fileID: 0} 107 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 108 | type: 3} 109 | propertyPath: AnimNames.Array.data[2] 110 | value: idle01 111 | objectReference: {fileID: 0} 112 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 113 | type: 3} 114 | propertyPath: AnimNames.Array.data[3] 115 | value: walk01 116 | objectReference: {fileID: 0} 117 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 118 | type: 3} 119 | propertyPath: AnimFrameCount.Array.data[0] 120 | value: 49 121 | objectReference: {fileID: 0} 122 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 123 | type: 3} 124 | propertyPath: AnimFrameCount.Array.data[1] 125 | value: 84 126 | objectReference: {fileID: 0} 127 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 128 | type: 3} 129 | propertyPath: AnimFrameCount.Array.data[2] 130 | value: 60 131 | objectReference: {fileID: 0} 132 | - target: {fileID: 7480683700914630623, guid: 39a3c6d0a8a57c348be05a7143068ba8, 133 | type: 3} 134 | propertyPath: AnimFrameCount.Array.data[3] 135 | value: 49 136 | objectReference: {fileID: 0} 137 | m_RemovedComponents: [] 138 | m_SourcePrefab: {fileID: 100100000, guid: 39a3c6d0a8a57c348be05a7143068ba8, type: 3} 139 | --- !u!1 &5715673760336489943 stripped 140 | GameObject: 141 | m_CorrespondingSourceObject: {fileID: 1309835393398080038, guid: 39a3c6d0a8a57c348be05a7143068ba8, 142 | type: 3} 143 | m_PrefabInstance: {fileID: 6737208404254306289} 144 | m_PrefabAsset: {fileID: 0} 145 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_NormalGPUInstancing.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ae0b81eb6342354b8da664d3609a25b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f8e43b63d23d614694188dfc346dea5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_a_0_mesh.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4763c7ba7b072f04691e5290ce912c86 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_a_0_mesh_lod.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e912f5a20edfde409476c4b3ebbe2f0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_a_1_mesh.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfa4f5ed271aacb41ab3df3e09161848 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_a_1_mesh_lod.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ec0c68539460b54aa0b9b3ebb457e3e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_animData.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: -748599645, guid: 137f92a34333cfe4d997bdedc4612c54, type: 3} 13 | m_Name: Troop_cavalry_lv01_animData 14 | m_EditorClassIdentifier: 15 | AttachData: 16 | - AttachMesh: {fileID: 4300000, guid: 4763c7ba7b072f04691e5290ce912c86, type: 2} 17 | AttachMats: 18 | - {fileID: 2100000, guid: a604630a8e0a2d447a3fe23380d5408d, type: 2} 19 | ExportBoneAnimArray: [] 20 | FixedExportBoneDataArray: 21 | - BoneBindPosMatrix: 22 | real: {x: 0, y: 0, z: 0.7043065, w: 0.709896} 23 | dual: {x: 1.0201629, y: -0.81367904, z: 0.019280823} 24 | BoneIndex: 0 25 | BoneIndexInList: 0 26 | BoneParentInList: 0 27 | FixedBoneChildrenInArray: 28 | BoneName: -1694199449 29 | BoneTransName: Bone005 30 | - BoneBindPosMatrix: 31 | real: {x: 0.4673077, y: -0.53068215, z: 0.46730757, w: 0.5306822} 32 | dual: {x: 0.94292206, y: -0.12588556, z: -0.00000014864163} 33 | BoneIndex: 12 34 | BoneIndexInList: 1 35 | BoneParentInList: 0 36 | FixedBoneChildrenInArray: 37 | BoneName: 1034683906 38 | BoneTransName: Bone015 39 | - BoneBindPosMatrix: 40 | real: {x: -0.47094455, y: -0.5316643, z: -0.54837435, w: 0.4413954} 41 | dual: {x: -1.037396, y: 0.021079594, z: -0.27109382} 42 | BoneIndex: 3 43 | BoneIndexInList: 2 44 | BoneParentInList: 0 45 | FixedBoneChildrenInArray: 46 | BoneName: -1583048562 47 | BoneTransName: Bone007 48 | - BoneBindPosMatrix: 49 | real: {x: -0.544613, y: -0.50485015, z: -0.5458805, w: 0.38799164} 50 | dual: {x: -0.6321129, y: 0.09943499, z: -0.24477006} 51 | BoneIndex: 2 52 | BoneIndexInList: 3 53 | BoneParentInList: 0 54 | FixedBoneChildrenInArray: 55 | BoneName: 72642505 56 | BoneTransName: Bone008 57 | - BoneBindPosMatrix: 58 | real: {x: -0.5483745, y: -0.44139552, z: -0.4709446, w: 0.531664} 59 | dual: {x: -1.0366184, y: 0.0210023, z: 0.27569205} 60 | BoneIndex: 9 61 | BoneIndexInList: 4 62 | BoneParentInList: 0 63 | FixedBoneChildrenInArray: 64 | BoneName: -817394303 65 | BoneTransName: Bone007(mirrored) 66 | - BoneBindPosMatrix: 67 | real: {x: -0.5458808, y: -0.38799176, z: -0.54461294, w: 0.5048498} 68 | dual: {x: -0.6316199, y: 0.098846495, z: 0.2493705} 69 | BoneIndex: 11 70 | BoneIndexInList: 5 71 | BoneParentInList: 0 72 | FixedBoneChildrenInArray: 73 | BoneName: 694828105 74 | BoneTransName: Bone008(mirrored) 75 | - BoneBindPosMatrix: 76 | real: {x: 0.49799588, y: -0.5019961, z: 0.4979958, w: 0.5019962} 77 | dual: {x: 1.1942418, y: 0.015807148, z: -0.00000015120052} 78 | BoneIndex: 8 79 | BoneIndexInList: 6 80 | BoneParentInList: 0 81 | FixedBoneChildrenInArray: 82 | BoneName: 1145834792 83 | BoneTransName: Bone016 84 | - BoneBindPosMatrix: 85 | real: {x: 0.5618112, y: -0.42938116, z: 0.56181115, w: 0.42938125} 86 | dual: {x: 1.3887055, y: 0.40620258, z: -0.00000015120183} 87 | BoneIndex: 5 88 | BoneIndexInList: 7 89 | BoneParentInList: 0 90 | FixedBoneChildrenInArray: 91 | BoneName: 1568187011 92 | BoneTransName: Bone017 93 | - BoneBindPosMatrix: 94 | real: {x: 0.48614627, y: -0.5134801, z: 0.48614615, w: 0.5134802} 95 | dual: {x: 1.7387828, y: -0.1488513, z: -0.00000015120173} 96 | BoneIndex: 6 97 | BoneIndexInList: 8 98 | BoneParentInList: 0 99 | FixedBoneChildrenInArray: 100 | BoneName: 2049108443 101 | BoneTransName: Bone018 102 | - BoneBindPosMatrix: 103 | real: {x: -0.3975684, y: -0.58371216, z: -0.60108453, w: 0.37405458} 104 | dual: {x: -1.4251885, y: 0.13264115, z: -0.8875466} 105 | BoneIndex: 4 106 | BoneIndexInList: 9 107 | BoneParentInList: 0 108 | FixedBoneChildrenInArray: 109 | BoneName: 483024510 110 | BoneTransName: Bone020 111 | - BoneBindPosMatrix: 112 | real: {x: -0.29969826, y: -0.6617937, z: -0.44249147, w: 0.52574843} 113 | dual: {x: -1.1256374, y: -0.48889515, z: -0.72524554} 114 | BoneIndex: 1 115 | BoneIndexInList: 10 116 | BoneParentInList: 0 117 | FixedBoneChildrenInArray: 118 | BoneName: -2069583072 119 | BoneTransName: Bone012 120 | - BoneBindPosMatrix: 121 | real: {x: -0.38939974, y: -0.581495, z: -0.5095638, w: 0.5005758} 122 | dual: {x: -1.0025748, y: -0.21104959, z: -0.6587046} 123 | BoneIndex: 13 124 | BoneIndexInList: 11 125 | BoneParentInList: 0 126 | FixedBoneChildrenInArray: 127 | BoneName: 1929419389 128 | BoneTransName: Bone013 129 | - BoneBindPosMatrix: 130 | real: {x: -0.60108477, y: -0.37405494, z: -0.39756835, w: 0.58371174} 131 | dual: {x: -1.4233044, y: 0.13257469, z: 0.8918116} 132 | BoneIndex: 7 133 | BoneIndexInList: 12 134 | BoneParentInList: 0 135 | FixedBoneChildrenInArray: 136 | BoneName: -817565575 137 | BoneTransName: Bone020(mirrored) 138 | - BoneBindPosMatrix: 139 | real: {x: -0.44249168, y: -0.5257489, z: -0.29969808, w: 0.66179323} 140 | dual: {x: -1.1243904, y: -0.48857462, z: 0.7297281} 141 | BoneIndex: 10 142 | BoneIndexInList: 13 143 | BoneParentInList: 0 144 | FixedBoneChildrenInArray: 145 | BoneName: 868627904 146 | BoneTransName: Bone012(mirrored) 147 | - BoneBindPosMatrix: 148 | real: {x: 0, y: 0, z: 0, w: 1} 149 | dual: {x: -0, y: 0, z: 2.6031866e-10} 150 | BoneIndex: -1 151 | BoneIndexInList: 14 152 | BoneParentInList: 0 153 | FixedBoneChildrenInArray: 154 | BoneName: -524975769 155 | BoneTransName: Bone_root 156 | VitualBoneIdxArr: 157 | RootBoneIdxInList: 14 158 | - AttachMesh: {fileID: 4300000, guid: bfa4f5ed271aacb41ab3df3e09161848, type: 2} 159 | AttachMats: 160 | - {fileID: 2100000, guid: 4a79769b487da0646a8b7c98e4ade516, type: 2} 161 | ExportBoneAnimArray: [] 162 | FixedExportBoneDataArray: 163 | - BoneBindPosMatrix: 164 | real: {x: 0.7071068, y: 0.00000029802322, z: -0.70710677, w: 0} 165 | dual: {x: -0.6411133, y: 1.5096333, z: 0.0000012718431} 166 | BoneIndex: 1 167 | BoneIndexInList: 0 168 | BoneParentInList: 0 169 | FixedBoneChildrenInArray: 170 | BoneName: -1243372048 171 | BoneTransName: Bip001 Pelvis 172 | - BoneBindPosMatrix: 173 | real: {x: 0.7071072, y: 0.0003238214, z: -0.70710623, w: 0.0003221117} 174 | dual: {x: -0.45407477, y: 1.5097806, z: 0.0000067606397} 175 | BoneIndex: 0 176 | BoneIndexInList: 1 177 | BoneParentInList: 0 178 | FixedBoneChildrenInArray: 179 | BoneName: -1344228036 180 | BoneTransName: Bip001 Spine 181 | - BoneBindPosMatrix: 182 | real: {x: -0.44514328, y: -0.5218531, z: -0.44132987, w: 0.5785713} 183 | dual: {x: -1.5967882, y: 0.29471073, z: 0.28324056} 184 | BoneIndex: 18 185 | BoneIndexInList: 2 186 | BoneParentInList: 0 187 | FixedBoneChildrenInArray: 188 | BoneName: 1163907025 189 | BoneTransName: Bip001 L Thigh 190 | - BoneBindPosMatrix: 191 | real: {x: -0.58940613, y: -0.35083273, z: -0.60404885, w: 0.4057608} 192 | dual: {x: -0.78133553, y: 0.97225386, z: 0.2832406} 193 | BoneIndex: 9 194 | BoneIndexInList: 3 195 | BoneParentInList: 0 196 | FixedBoneChildrenInArray: 197 | BoneName: -1361850788 198 | BoneTransName: Bip001 L Calf 199 | - BoneBindPosMatrix: 200 | real: {x: -0.44796214, y: -0.51943535, z: -0.44445583, w: 0.5761734} 201 | dual: {x: -0.7681423, y: 0.6389279, z: 0.28324056} 202 | BoneIndex: 14 203 | BoneIndexInList: 4 204 | BoneParentInList: 0 205 | FixedBoneChildrenInArray: 206 | BoneName: -1490331754 207 | BoneTransName: Bip001 L HorseLink 208 | - BoneBindPosMatrix: 209 | real: {x: -0.44132924, y: -0.5785706, z: -0.4451439, w: 0.5218539} 210 | dual: {x: -1.5967878, y: 0.29471046, z: -0.2832456} 211 | BoneIndex: 4 212 | BoneIndexInList: 5 213 | BoneParentInList: 0 214 | FixedBoneChildrenInArray: 215 | BoneName: 1981136671 216 | BoneTransName: Bip001 R Thigh 217 | - BoneBindPosMatrix: 218 | real: {x: -0.604048, y: -0.40576032, z: -0.58940697, w: 0.35083333} 219 | dual: {x: -0.7813355, y: 0.97225344, z: -0.28324562} 220 | BoneIndex: 8 221 | BoneIndexInList: 6 222 | BoneParentInList: 0 223 | FixedBoneChildrenInArray: 224 | BoneName: -1313437288 225 | BoneTransName: Bip001 R Calf 226 | - BoneBindPosMatrix: 227 | real: {x: -0.4444552, y: -0.5761727, z: -0.44796276, w: 0.5194362} 228 | dual: {x: -0.768142, y: 0.63892776, z: -0.2832456} 229 | BoneIndex: 11 230 | BoneIndexInList: 7 231 | BoneParentInList: 0 232 | FixedBoneChildrenInArray: 233 | BoneName: -1339334540 234 | BoneTransName: Bip001 R HorseLink 235 | - BoneBindPosMatrix: 236 | real: {x: 0.7071072, y: 0.0003238214, z: -0.70710623, w: 0.0003221117} 237 | dual: {x: 0.18435507, y: 1.5102891, z: 0.0000067620504} 238 | BoneIndex: 10 239 | BoneIndexInList: 8 240 | BoneParentInList: 0 241 | FixedBoneChildrenInArray: 242 | BoneName: 111790023 243 | BoneTransName: Bip001 Spine1 244 | - BoneBindPosMatrix: 245 | real: {x: -0.69713545, y: 0.11833172, z: 0.69713485, w: 0.118333496} 246 | dual: {x: 1.3377343, y: 1.1107415, z: 0.000005751998} 247 | BoneIndex: 16 248 | BoneIndexInList: 9 249 | BoneParentInList: 0 250 | FixedBoneChildrenInArray: 251 | BoneName: 499202337 252 | BoneTransName: Bip001 Neck 253 | - BoneBindPosMatrix: 254 | real: {x: -0.113077834, y: 0.13386723, z: -0.6353135, w: 0.7521102} 255 | dual: {x: -1.6982939, y: -0.33910176, z: -0.08343106} 256 | BoneIndex: 19 257 | BoneIndexInList: 10 258 | BoneParentInList: 0 259 | FixedBoneChildrenInArray: 260 | BoneName: 944956611 261 | BoneTransName: Bip001 L Clavicle 262 | - BoneBindPosMatrix: 263 | real: {x: -0.47959918, y: -0.50638235, z: -0.47627053, w: 0.53546983} 264 | dual: {x: -1.1610476, y: -0.62704754, z: 0.1616242} 265 | BoneIndex: 12 266 | BoneIndexInList: 11 267 | BoneParentInList: 0 268 | FixedBoneChildrenInArray: 269 | BoneName: 1950406696 270 | BoneTransName: Bip001 L UpperArm 271 | - BoneBindPosMatrix: 272 | real: {x: -0.49778095, y: -0.4885208, z: -0.4955173, w: 0.5177105} 273 | dual: {x: -0.6033388, y: -0.5845488, z: 0.16162416} 274 | BoneIndex: 7 275 | BoneIndexInList: 12 276 | BoneParentInList: 0 277 | FixedBoneChildrenInArray: 278 | BoneName: -1330684061 279 | BoneTransName: Bip001 L Forearm 280 | - BoneBindPosMatrix: 281 | real: {x: -0.5492042, y: 0.445392, z: 0.5492047, w: 0.44539297} 282 | dual: {x: 1.8762064, y: -0.9543202, z: 0.000000024340693} 283 | BoneIndex: 2 284 | BoneIndexInList: 13 285 | BoneParentInList: 0 286 | FixedBoneChildrenInArray: 287 | BoneName: -140683822 288 | BoneTransName: Bip001 Neck1 289 | - BoneBindPosMatrix: 290 | real: {x: 0.70686924, y: 0.018347718, z: -0.70686823, w: 0.018345732} 291 | dual: {x: 1.3143275, y: 2.2128737, z: 0.000008808877} 292 | BoneIndex: 3 293 | BoneIndexInList: 14 294 | BoneParentInList: 0 295 | FixedBoneChildrenInArray: 296 | BoneName: 891901611 297 | BoneTransName: Bip001 Head 298 | - BoneBindPosMatrix: 299 | real: {x: 0.63531333, y: 0.75211036, z: 0.11307865, w: 0.13386633} 300 | dual: {x: -1.698293, y: -0.33910683, z: 0.083431445} 301 | BoneIndex: 13 302 | BoneIndexInList: 15 303 | BoneParentInList: 0 304 | FixedBoneChildrenInArray: 305 | BoneName: -1043132079 306 | BoneTransName: Bip001 R Clavicle 307 | - BoneBindPosMatrix: 308 | real: {x: -0.4762699, y: -0.5354692, z: -0.4795998, w: 0.506383} 309 | dual: {x: -1.1610477, y: -0.6270478, z: -0.16162933} 310 | BoneIndex: 5 311 | BoneIndexInList: 16 312 | BoneParentInList: 0 313 | FixedBoneChildrenInArray: 314 | BoneName: 1615682536 315 | BoneTransName: Bip001 R UpperArm 316 | - BoneBindPosMatrix: 317 | real: {x: -0.49551666, y: -0.51770985, z: -0.4977816, w: 0.4885215} 318 | dual: {x: -0.60333854, y: -0.58454883, z: -0.1616293} 319 | BoneIndex: 6 320 | BoneIndexInList: 17 321 | BoneParentInList: 0 322 | FixedBoneChildrenInArray: 323 | BoneName: -1041129175 324 | BoneTransName: Bip001 R Forearm 325 | - BoneBindPosMatrix: 326 | real: {x: 0.4501729, y: 0.5452932, z: -0.45017266, w: 0.54529285} 327 | dual: {x: -1.5497195, y: -1.0564436, z: -0.00000010137359} 328 | BoneIndex: 15 329 | BoneIndexInList: 18 330 | BoneParentInList: 0 331 | FixedBoneChildrenInArray: 332 | BoneName: 1652381162 333 | BoneTransName: Bone001 334 | - BoneBindPosMatrix: 335 | real: {x: 0.4762578, y: 0.5226651, z: -0.47625756, w: 0.5226647} 336 | dual: {x: -1.2348566, y: -0.9404972, z: -0.00000007470055} 337 | BoneIndex: 17 338 | BoneIndexInList: 19 339 | BoneParentInList: 0 340 | FixedBoneChildrenInArray: 341 | BoneName: -1485729050 342 | BoneTransName: Bone003 343 | - BoneBindPosMatrix: 344 | real: {x: -0.008893552, y: 0.0088935625, z: 0.70705044, w: 0.7070513} 345 | dual: {x: -0.000000023442327, y: 1.449674, z: -0.53629845} 346 | BoneIndex: -1 347 | BoneIndexInList: 20 348 | BoneParentInList: 0 349 | FixedBoneChildrenInArray: 350 | BoneName: 451628056 351 | BoneTransName: Bip001 352 | - BoneBindPosMatrix: 353 | real: {x: 0, y: 0, z: 0, w: 1} 354 | dual: {x: -0, y: 0, z: 2.6031866e-10} 355 | BoneIndex: -1 356 | BoneIndexInList: 21 357 | BoneParentInList: 0 358 | FixedBoneChildrenInArray: 359 | BoneName: -524975769 360 | BoneTransName: Bone_root 361 | VitualBoneIdxArr: 362 | RootBoneIdxInList: 21 363 | AnimationNames: 364 | - attack01 365 | - dead01 366 | - idle01 367 | - walk01 368 | AnimationFrameCount: 31000000540000003c00000031000000 369 | fps: 30 370 | ClipCount: 4 371 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_animData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebcadde88c1303143aa2a3660c26dad0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_animData_a0_texData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c232aebc787fa7243a67f4a6d27dc726 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Troop_cavalry_lv01_animData/Troop_cavalry_lv01_animData_a1_texData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c6ecace39964bb448c2aec31cf428b6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e157c0cbd7f05cc4ba4fc0ba23a945e4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/ECSGPUSkinning.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9acb578f0b2da0a498638b16994525ee 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/NormalGPUSkinning.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc0d4010bbf28b4594072e72b8655ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84893883d12cd4245ab8b680f16b9bff 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c9863d81b6510c448cab4b1f71deed9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/Component.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af749310e40402c40b731b78b56a7287 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/Component/ECS_GPUSkinningData.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Unity.Entities; 5 | using Unity.Mathematics; 6 | using System; 7 | using Unity.Transforms; 8 | /// 9 | /// Author:Aoicocooon 10 | /// Date:20200907 11 | /// 基于ECS实现的 SkinnedMatrixAnimator数据 12 | /// 13 | namespace Aoi.ECS 14 | { 15 | public struct AnimationData : IComponentData 16 | { 17 | public int AnimationIndex; 18 | public int AttachCount; 19 | public int AnimCount; 20 | public int ActivedLOD; 21 | public int CurFrame; 22 | public float StartTime; 23 | public float FPS; 24 | public float3 Position; 25 | public BlobAssetReference AnimationFrameOffsetArr; //每个动画的帧数据偏移量索引开始值 26 | public BlobAssetReference AnimationFrameCountArr; //每个动画的总帧数 27 | public BlobAssetReference AttachSmrCountArr; //骨骼数 28 | public BlobAssetReference AttachTexDataArr; 29 | 30 | 31 | /// 32 | /// 计算这帧数normalizeTime 33 | /// 34 | /// 35 | /// 36 | /// 37 | public float CalcNormalizeTime(int frameCount, float time) 38 | { 39 | float curAnimationLength = frameCount * FPS; 40 | return Mathf.Repeat(time, curAnimationLength) / curAnimationLength; 41 | } 42 | } 43 | 44 | public struct ECS_AttachData 45 | { 46 | public BlobAssetReference AnimationFrameOffsetArr; //每个动画的帧数据偏移量索引开始值 47 | public int SmrCountArr; //骨骼数 48 | } 49 | 50 | public struct FloatArray 51 | { 52 | public BlobArray ArrayData; 53 | } 54 | 55 | public struct Float3Array 56 | { 57 | public BlobArray ArrayData; 58 | } 59 | 60 | public struct Float4Array 61 | { 62 | public BlobArray ArrayData; 63 | } 64 | 65 | public struct IntArray 66 | { 67 | public BlobArray ArrayData; 68 | } 69 | 70 | public struct EntityArray 71 | { 72 | public BlobArray ArrayData; 73 | } 74 | 75 | public struct AttachDataArr 76 | { 77 | public BlobArray ArrayData; 78 | } 79 | 80 | [InternalBufferCapacity(4)] 81 | public struct EntityBuffer : IBufferElementData 82 | { 83 | public Entity entity; 84 | } 85 | 86 | public struct AnimatorCurrentFrame : IComponentData 87 | { 88 | public int CurrentFrame; 89 | } 90 | 91 | public struct FrameData : IComponentData 92 | { 93 | //每帧数据,根据 texWidth, texHeight, frameOffset, min(1/w, 1.h) 填充 94 | public float4 PerFrameData; 95 | } 96 | 97 | /// 98 | /// 士兵类型 99 | /// 参照枚举 Aoi.TroopType 100 | /// 101 | public struct TroopTypeData : IComponentData 102 | { 103 | public int TypeValue; 104 | } 105 | 106 | //当前激活的LODAttach 107 | public struct ECS_ActivedLODAttach : IComponentData 108 | { 109 | 110 | } 111 | 112 | /// 113 | /// 所有要跟随ECS_SkinnedMatrixAnimator移动的部件,都要拥有此组件 114 | /// 比如Animator下 LODGroup, SubMesh 等 115 | /// 116 | [Serializable] 117 | [WriteGroup(typeof(LocalToWorld))] 118 | public struct ECS_SkinnedMatrixAnimatorAttach : IComponentData 119 | { 120 | public int AttachIndex; 121 | public Entity Parent; 122 | } 123 | 124 | [Serializable] 125 | [WriteGroup(typeof(LocalToWorld))] 126 | struct ECS_SkinnedMatrixAnimator : ISharedComponentData 127 | { 128 | 129 | } 130 | 131 | struct ECS_SkinnedMatrixAnimatorChildren : ISharedComponentData 132 | { 133 | 134 | } 135 | } -------------------------------------------------------------------------------- /Assets/Scripts/ECS/Component/ECS_GPUSkinningData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 127eb34bf3938dc4bb350a750d60626c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_AnimatorConvertToEntity.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Unity.Entities; 5 | using Unity.Collections; 6 | using Unity.Mathematics; 7 | using Random = Unity.Mathematics.Random; 8 | using Unity.Rendering; 9 | using Unity.Transforms; 10 | 11 | /// 12 | /// Author:Aoicocoon 13 | /// Date:20200908 14 | /// Aoi Animator ->ECS 转换器 15 | /// 16 | namespace Aoi.ECS 17 | { 18 | public sealed class ECS_AnimatorConvertToEntity : MonoBehaviour, IConvertGameObjectToEntity 19 | { 20 | public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) 21 | { 22 | ECS_Provider provider = this.GetComponent(); 23 | 24 | FillEntityWithAnimatorComponent(entity, dstManager, provider); 25 | } 26 | 27 | void FillEntityWithAnimatorComponent(Entity entity, EntityManager dstManager, ECS_Provider provider) 28 | { 29 | List attachSmrCount = new List(); 30 | List attachTexData = new List(); 31 | List frameData = new List(); 32 | 33 | //动画帧间隔 34 | int[] frameOffsetArr = new int[provider.AnimNames.Length * provider.AttachDatas.Length]; 35 | 36 | Dictionary needCreateNewMatDict = new Dictionary(); 37 | 38 | for (int attach = 0; attach < provider.AttachDatas.Length; attach++) 39 | { 40 | Texture2D animTex = provider.AttachDatas[attach].AnimTexture; 41 | 42 | if (null != animTex) 43 | { 44 | attachSmrCount.Add(provider.AttachDatas[attach].SMRCount); 45 | attachTexData.Add(new float3(animTex.width, animTex.height, math.min(1.0f / animTex.width, 1.0f / animTex.height))); 46 | frameData.Add(new float4()); 47 | 48 | int numPixels = 0; 49 | for (int i = 0; i < provider.AnimNames.Length; i++) 50 | { 51 | int frameCount = provider.AnimFrameCount[i]; 52 | int curAnimPixelStart = numPixels; 53 | numPixels += frameCount * provider.AttachDatas[attach].SMRCount * 2; 54 | frameOffsetArr[(attach * provider.AnimNames.Length) + i] = curAnimPixelStart; 55 | } 56 | 57 | Material m = provider.AttachDatas[attach].DrawMaterial; 58 | m.SetTexture("_AnimTex", animTex); 59 | m.EnableKeyword("_ECS_ON"); 60 | } 61 | else 62 | { 63 | Debug.LogErrorFormat("Missing InstancingAnimTex" + (provider as MonoBehaviour).name); 64 | } 65 | } 66 | 67 | var animData = default(AnimationData); 68 | animData.AnimationIndex = 0; 69 | animData.StartTime = 0; 70 | animData.AnimCount = provider.AnimNames.Length; 71 | animData.AnimationFrameOffsetArr = GeneratorIntArr(frameOffsetArr); 72 | animData.AnimationFrameCountArr = GeneratorIntArr(provider.AnimFrameCount); 73 | animData.FPS = 1.0f / 30.0f; 74 | animData.AttachCount = provider.AttachDatas.Length; 75 | animData.AttachSmrCountArr = GeneratorIntArr(attachSmrCount.ToArray()); 76 | animData.AttachTexDataArr = GeneratorFloat3Arr(attachTexData.ToArray()); 77 | 78 | dstManager.AddComponentData(entity, animData); 79 | 80 | var animator = new ECS_SkinnedMatrixAnimator(); 81 | dstManager.AddSharedComponentData(entity, animator); 82 | } 83 | 84 | BlobAssetReference GeneratorIntArr(int[] baseData) 85 | { 86 | using (var builder = new BlobBuilder(Allocator.Temp)) 87 | { 88 | ref var root = ref builder.ConstructRoot(); 89 | var refArr = builder.Allocate(ref root.ArrayData, baseData.Length); 90 | for (int i = 0; i < baseData.Length; i++) 91 | { 92 | refArr[i] = baseData[i]; 93 | } 94 | return builder.CreateBlobAssetReference(Allocator.Persistent); 95 | } 96 | } 97 | 98 | BlobAssetReference GeneratorFloat3Arr(float3[] baseData) 99 | { 100 | using (var builder = new BlobBuilder(Allocator.Temp)) 101 | { 102 | ref var root = ref builder.ConstructRoot(); 103 | var refArr = builder.Allocate(ref root.ArrayData, baseData.Length); 104 | for (int i = 0; i < baseData.Length; i++) 105 | { 106 | refArr[i] = baseData[i]; 107 | } 108 | return builder.CreateBlobAssetReference(Allocator.Persistent); 109 | } 110 | } 111 | 112 | BlobAssetReference GeneratorFloat3Arr(float4[] baseData) 113 | { 114 | using (var builder = new BlobBuilder(Allocator.Temp)) 115 | { 116 | ref var root = ref builder.ConstructRoot(); 117 | var refArr = builder.Allocate(ref root.ArrayData, baseData.Length); 118 | for (int i = 0; i < baseData.Length; i++) 119 | { 120 | refArr[i] = baseData[i]; 121 | } 122 | return builder.CreateBlobAssetReference(Allocator.Persistent); 123 | } 124 | } 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_AnimatorConvertToEntity.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6993d5983158f3e4690e44c3ac29b77a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_AnimatorEntityGenerator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Unity.Entities; 3 | using System.Collections.Generic; 4 | using Unity.Mathematics; 5 | using Unity.Rendering; 6 | using Unity.Transforms; 7 | using Unity.Collections; 8 | 9 | /// 10 | /// Author:Aoicocoon 11 | /// Date:20200907 12 | /// Entity生成器组件转换 13 | /// 14 | namespace Aoi.ECS 15 | { 16 | public sealed class ECS_AnimatorEntityGenerator : MonoBehaviour, IDeclareReferencedPrefabs, IConvertGameObjectToEntity 17 | { 18 | public GameObject Prefab; 19 | public int CountX; 20 | public int CountY; 21 | public float4 LODDistance = new float4(10f, 1000f, 1000f, 1000f); 22 | 23 | /// 24 | /// 生成结构为 25 | /// Primary Entity (为ECS_SkinnedMatrixAnimator,MeshLODGroupComponent组件所在) 26 | /// |-Attach0 27 | /// | |-LOD0 (RenderMesh, RenderBound, MeshLODComponent) 28 | /// | |-LOD1 29 | /// | 30 | /// |-Attach1 31 | /// | |-LOD0 32 | /// | |-LOD1 33 | /// 34 | /// 35 | /// 36 | /// 37 | public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) 38 | { 39 | var spawnerData = new ECS_AnimatorSpawner 40 | { 41 | //主Entity 为ECS_SkinnedMatrixAnimator组件所在 42 | Prefab = conversionSystem.GetPrimaryEntity(Prefab), 43 | CountX = CountX, 44 | CountY = CountY, 45 | }; 46 | 47 | if (true) 48 | { 49 | GeneratorAttach(ref spawnerData, dstManager); 50 | } 51 | 52 | dstManager.AddComponentData(entity, spawnerData); 53 | } 54 | 55 | public void DeclareReferencedPrefabs(List referencedPrefabs) 56 | { 57 | referencedPrefabs.Add(Prefab); 58 | } 59 | 60 | void GeneratorAttach(ref ECS_AnimatorSpawner spawnerData, EntityManager dstManager) 61 | { 62 | ECS_Provider provider = Prefab.GetComponent(); 63 | 64 | spawnerData.AttachCount = provider.AttachDatas.Length; 65 | 66 | List LODList = new List(); 67 | 68 | for (int attach = 0; attach < spawnerData.AttachCount; attach++) 69 | { 70 | AttachData attachData = provider.AttachDatas[attach]; 71 | GeneratorLOD(ref spawnerData, dstManager, LODList, attach, attachData); 72 | } 73 | 74 | spawnerData.AttachLOD = GeneratorEntityArr(LODList.ToArray()); 75 | } 76 | 77 | void GeneratorLOD(ref ECS_AnimatorSpawner spawnerData, EntityManager dstManager, List lodEntityList, int attachIndex, AttachData attachData) 78 | { 79 | dstManager.AddComponentData(spawnerData.Prefab, new MeshLODGroupComponent() 80 | { 81 | LODDistances0 = LODDistance, 82 | LODDistances1 = LODDistance, 83 | LocalReferencePoint = float3.zero 84 | }); 85 | 86 | for (int lod = 0; lod < 2; lod++) 87 | { 88 | Entity lodEntity = Entity.Null; 89 | GeneratorSubLOD(ref spawnerData, ref lodEntity, ref spawnerData.Prefab, lod, dstManager, attachIndex, attachData); 90 | lodEntityList.Add(lodEntity); 91 | } 92 | } 93 | 94 | void GeneratorSubLOD(ref ECS_AnimatorSpawner spawnData, ref Entity output, ref Entity hostEntity, int lod, EntityManager dstManager, int attachIndex, AttachData attachData) 95 | { 96 | var treeType = dstManager.CreateArchetype( 97 | typeof(RenderMesh), // Rendering mesh 98 | typeof(LocalToWorld), // Needed for rendering 99 | typeof(Translation), // Transform position 100 | typeof(Rotation), // Transform rotation 101 | typeof(Scale), // Transform scale (version with X, Y and Z) 102 | typeof(RenderBounds), //Bounds to tell the Renderer where it is 103 | typeof(MeshLODComponent) //The actual LOD Component 104 | ); 105 | 106 | Entity childOfGroup = dstManager.CreateEntity(treeType); 107 | 108 | List lodMesh = new List(); 109 | lodMesh.Add(attachData.LODMesh[0]); 110 | 111 | if (attachData.LODMesh.Length > 0) 112 | { 113 | lodMesh.Add(attachData.LODMesh[1]); 114 | } 115 | 116 | //需要创建lod,且有lod数据 117 | if (lodMesh.Count > 1) 118 | { 119 | List lodMaterial = new List(); 120 | for (int i = 0; i < lodMesh.Count; i++) 121 | { 122 | lodMaterial.Add(attachData.DrawMaterial); 123 | } 124 | 125 | float4 lodDistances = LODDistance;//new float4(10f, 10000f, 10000f, 10000f); 126 | float3 position = new float3(0, 5, 0); 127 | 128 | CreateLODEntity(ref childOfGroup, ref hostEntity, lod, dstManager, lodMesh.Count, lodMesh.ToArray(), lodMaterial.ToArray(), lodDistances, position); 129 | } 130 | 131 | output = childOfGroup; 132 | } 133 | 134 | void CreateLODEntity(ref Entity childOfGroup, ref Entity hostEntity, int lodLevel, EntityManager dstManager, int lodCout, Mesh[] lodMesh, Material[] lodMat, float4 lodDistances, float3 position) 135 | { 136 | RenderMesh renderMesh = new RenderMesh 137 | { 138 | mesh = lodMesh[lodLevel], 139 | material = lodMat[lodLevel], 140 | subMesh = 0, 141 | castShadows = UnityEngine.Rendering.ShadowCastingMode.Off, 142 | receiveShadows = false, 143 | }; 144 | 145 | RenderBounds bounds = new RenderBounds 146 | { 147 | Value = GetBoxRenderBounds(new float3(1, 1, 1)) 148 | }; 149 | 150 | 151 | //dstManager.SetDebugName(childOfGroup, "AnimatorMeshGroupPrefab"); 152 | 153 | dstManager.SetSharedComponentData(childOfGroup, renderMesh); 154 | 155 | dstManager.SetComponentData(childOfGroup, new LocalToWorld() { Value = float4x4.TRS(float3.zero, quaternion.identity, new float3(1, 1, 1)) }); 156 | dstManager.SetComponentData(childOfGroup, new Translation() { Value = position }); 157 | dstManager.SetComponentData(childOfGroup, bounds); 158 | 159 | dstManager.SetComponentData(childOfGroup, new MeshLODComponent { Group = hostEntity, LODMask = GetLODMask(lodLevel) }); 160 | } 161 | 162 | AABB GetBoxRenderBounds(float3 size) 163 | { 164 | var aabb = new AABB(); 165 | aabb.Center = float3.zero; 166 | aabb.Extents = size; 167 | return aabb; 168 | } 169 | 170 | int GetLODMask(int index) 171 | { 172 | switch (index) 173 | { 174 | case 0: 175 | return 0x01; 176 | 177 | case 1: 178 | return 0x02; 179 | 180 | case 2: 181 | return 0x04; 182 | 183 | case 3: 184 | return 0x08; 185 | 186 | 187 | default: 188 | return 0x08; 189 | } 190 | } 191 | 192 | BlobAssetReference GeneratorEntityArr(Entity[] baseData) 193 | { 194 | using (var builder = new BlobBuilder(Allocator.Temp)) 195 | { 196 | ref var root = ref builder.ConstructRoot(); 197 | var refArr = builder.Allocate(ref root.ArrayData, baseData.Length); 198 | for (int i = 0; i < baseData.Length; i++) 199 | { 200 | refArr[i] = baseData[i]; 201 | } 202 | return builder.CreateBlobAssetReference(Allocator.Persistent); 203 | } 204 | } 205 | } 206 | } 207 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_AnimatorEntityGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9af447cd74ade8a4e839a2190c3313ad 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_AnimatorSpawner.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | 3 | namespace Aoi.ECS 4 | { 5 | public struct ECS_AnimatorSpawner : IComponentData 6 | { 7 | public int CountX; 8 | public int CountY; 9 | public int AttachCount; 10 | public Entity Prefab; 11 | 12 | public BlobAssetReference AttachLOD; 13 | 14 | public int GetLODMask(int index) 15 | { 16 | switch (index) 17 | { 18 | case 0: 19 | return 0x01; 20 | 21 | case 1: 22 | return 0x02; 23 | 24 | case 2: 25 | return 0x04; 26 | 27 | case 3: 28 | return 0x08; 29 | 30 | 31 | default: 32 | return 0x08; 33 | } 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_AnimatorSpawner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74106ed942c5eb244be9440d274a5e29 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_FrameDataMaterialPropertyComponent.cs: -------------------------------------------------------------------------------- 1 | using Unity.Rendering; 2 | using Unity.Entities; 3 | using Unity.Mathematics; 4 | 5 | [MaterialProperty("_ECS_FrameData", MaterialPropertyFormat.Float4)] 6 | public struct ECS_FrameDataMaterialPropertyComponent : IComponentData 7 | { 8 | public float4 Value; 9 | } -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_FrameDataMaterialPropertyComponent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fce8a248ca4a66448862360c12a6aac 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_Provider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | public sealed class ECS_Provider : MonoBehaviour 6 | { 7 | public AttachData[] AttachDatas; 8 | public string[] AnimNames; 9 | public int[] AnimFrameCount; 10 | } 11 | 12 | [System.Serializable] 13 | public class AttachData 14 | { 15 | public Mesh[] LODMesh; 16 | public Material DrawMaterial; 17 | public Texture2D AnimTexture; 18 | public int SMRCount; 19 | } -------------------------------------------------------------------------------- /Assets/Scripts/ECS/ECS_Provider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 004ec76f51d916349b8b625aeeadd000 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/LOD_Tester.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Mathematics; 3 | using Unity.Rendering; 4 | using Unity.Transforms; 5 | using UnityEngine.Rendering; 6 | using UnityEngine; 7 | using System.Collections.Generic; 8 | using Unity.Collections; 9 | 10 | 11 | public sealed class LOD_Tester : MonoBehaviour 12 | { 13 | //lazy configuration from the inspector 14 | 15 | [Tooltip("The material to apply for all detail levels.")] 16 | public UnityEngine.Material MeshMaterial; 17 | 18 | [Tooltip("The most detailed mesh, LOD Level 0.")] 19 | public Mesh Lod1; 20 | [Tooltip("The mesh for LOD Level 1.")] 21 | public Mesh Lod2; 22 | [Tooltip("The mesh for LOD Level 2.")] 23 | public Mesh Lod3; 24 | [Tooltip("The mesh for LOD Level 3.")] 25 | public Mesh Lod4; 26 | 27 | [Tooltip("Instantiate 1000 entities with random positions.")] 28 | public bool placeRandomTestEntities = false; 29 | 30 | [Tooltip("Create the LOD Distances. The first number applies from position 0 to e.g. 10f for LOD0.")] 31 | public float4 lodDistances = new float4(10f, 20f, 30f, 100f); 32 | 33 | //Temporary data from the inspector for a later ordered access. 34 | [System.Serializable] 35 | public struct LodElelement 36 | { 37 | public Mesh mesh; 38 | public UnityEngine.Material mat; 39 | } 40 | 41 | private void Start() 42 | { 43 | List lodElements = new List(); 44 | //Get the data for the materials and the meshes to a list. The material here is always the same. 45 | lodElements.Add(new LodElelement { mesh = Lod1, mat = MeshMaterial }); 46 | lodElements.Add(new LodElelement { mesh = Lod2, mat = MeshMaterial }); 47 | lodElements.Add(new LodElelement { mesh = Lod3, mat = MeshMaterial }); 48 | lodElements.Add(new LodElelement { mesh = Lod4, mat = MeshMaterial }); 49 | 50 | 51 | 52 | //Crate a combined LOD entity. This will crate 5 single entities. 53 | CreateLodEntity(new float3(0, 5, 0), lodElements, lodDistances); 54 | 55 | if (placeRandomTestEntities == true) 56 | { 57 | float3 min = new float3(-10, -10, -10); 58 | float3 max = new float3(10, 10, 10); 59 | 60 | for (int i = 0; i < 1000; i++) 61 | { 62 | float3 myVector = new Vector3(UnityEngine.Random.Range(min.x, max.x), UnityEngine.Random.Range(min.y, max.y), UnityEngine.Random.Range(min.z, max.z)); 63 | CreateLodEntity(myVector, lodElements, lodDistances); 64 | } 65 | } 66 | } 67 | 68 | void CreateLodEntity(float3 position, List lodElements, float4 lodDistances) 69 | { 70 | 71 | 72 | EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager; 73 | 74 | //Create a LOD group Component. 75 | var lodGroupType = entityManager.CreateArchetype( 76 | typeof(LocalToWorld), // Even if the group entity here has no renderer, it requires LocalToWorld 77 | typeof(Translation), // Transform position. The Lod-Distance is calculated against this. 78 | //typeof(Rotation), // Transform rotation - doesn't seem to be required 79 | //typeof(Scale), // Transform scale (version with X, Y and Z) - doesn't seem to be required 80 | typeof(MeshLODGroupComponent) //MeshLODGroupComponent defines the distances and the local reference point. 81 | ); 82 | 83 | // Create an entity which represents the LOD group 84 | Entity lodGroupEntity = entityManager.CreateEntity(lodGroupType); 85 | 86 | entityManager.SetComponentData(lodGroupEntity, new Translation() 87 | { 88 | Value = position 89 | }); 90 | 91 | entityManager.SetComponentData(lodGroupEntity, new MeshLODGroupComponent() 92 | { 93 | LODDistances0 = lodDistances, 94 | LODDistances1 = lodDistances, //XXX:What are LODDistances1 for? Addional Detail Levels? 95 | LocalReferencePoint = float3.zero //XXX:Why is a reference point needed for distance calculation? Setting this to the position of the element gives strange results. 96 | }); 97 | 98 | // 99 | // The creation of the simple LOD group Component is finished here. Next step is adding addional entities which could be rendered. 100 | // 101 | 102 | //Generate RenderBounds for LOD Entities 103 | RenderBounds bounds = new RenderBounds 104 | { 105 | Value = GetBoxRenderBounds(new float3(1, 1, 1)) 106 | }; 107 | 108 | float3 pos = position; 109 | Quaternion rot = Quaternion.identity; 110 | float scale = 1f; 111 | 112 | //Create the Archetype for the LOD Trees (The things actually rendered) 113 | var treeType = entityManager.CreateArchetype( 114 | typeof(RenderMesh), // Rendering mesh 115 | typeof(LocalToWorld), // Needed for rendering 116 | typeof(Translation), // Transform position 117 | typeof(Rotation), // Transform rotation 118 | typeof(Scale), // Transform scale (version with X, Y and Z) 119 | typeof(RenderBounds), //Bounds to tell the Renderer where it is 120 | typeof(MeshLODComponent), //The actual LOD Component 121 | typeof(PerInstanceCullingTag) // Required for Occlusion Culling 122 | ); 123 | //Create an Array of the LOD entities 124 | NativeArray lods = new NativeArray(4, Allocator.Temp); 125 | 126 | //Create all the LOD Entities in bulk 127 | entityManager.CreateEntity(treeType, lods); 128 | 129 | //Loop through each entity of a detail level 130 | for (int i = 0; i < 4; i++) 131 | { 132 | CreateLOD(lods[i], lodGroupEntity, lodElements[i].mesh, lodElements[i].mat, GetLODMask(i), pos, rot, scale, bounds, entityManager); 133 | } 134 | 135 | lods.Dispose(); 136 | } 137 | 138 | //Create a manual render bound, for testing purposes. 139 | AABB GetBoxRenderBounds(float3 size) 140 | { 141 | var aabb = new AABB(); 142 | aabb.Center = float3.zero; 143 | aabb.Extents = size; 144 | return aabb; 145 | } 146 | 147 | /// 148 | /// Sets up the various information for a single LOD entity. 149 | /// 150 | /// An rendered Entity for a specific detail level 151 | /// The manager for the LOD group. A single entity with 'MeshLODGroupComponent' 152 | /// The mesh for this detail level 153 | /// The material for this detail level 154 | /// The LODMask (does this define which view range applies in some kind of bitfield-manner?) 155 | /// The mesh world position 156 | /// The mesh rotation 157 | /// The mesh scale 158 | /// The render bounds of the mesh 159 | /// The entity manager to set component data 160 | void CreateLOD(Entity lodLevelEntity, Entity lodGroupEntity, Mesh mesh, Material mat, int LODMask, float3 position, quaternion rotation, float size, RenderBounds bounds, EntityManager manager) 161 | { 162 | //Create Render Mesh fpr the Index 163 | RenderMesh renderMesh = new RenderMesh 164 | { 165 | mesh = mesh, 166 | material = mat, 167 | subMesh = 0, 168 | castShadows = ShadowCastingMode.Off, 169 | receiveShadows = false 170 | 171 | }; 172 | //Set all Data 173 | manager.SetComponentData(lodLevelEntity, new Translation { Value = position }); 174 | manager.SetComponentData(lodLevelEntity, new Scale { Value = size }); 175 | manager.SetSharedComponentData(lodLevelEntity, renderMesh); 176 | manager.SetComponentData(lodLevelEntity, bounds); 177 | manager.SetComponentData(lodLevelEntity, new Rotation { Value = rotation }); 178 | 179 | //Setup the LOD Component. Set the Group to be the Parent, and get a Mask for the LOD 180 | manager.SetComponentData(lodLevelEntity, new MeshLODComponent { Group = lodGroupEntity, LODMask = LODMask }); 181 | } 182 | 183 | /// 184 | /// Get an appropriate mask for the LOD, Max number is 3 , returns mask as Hexidecimal 185 | /// 186 | /// LOD Index between 0 and 3 inclusive 187 | /// Hexidecimal Mask 188 | int GetLODMask(int index) 189 | { 190 | switch (index) 191 | { 192 | case 0: 193 | return 0x01; 194 | 195 | case 1: 196 | return 0x02; 197 | 198 | case 2: 199 | return 0x04; 200 | 201 | case 3: 202 | return 0x08; 203 | 204 | 205 | default: 206 | return 0x08; 207 | } 208 | } 209 | } -------------------------------------------------------------------------------- /Assets/Scripts/ECS/LOD_Tester.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fef0d45f3772bac4188ed7a8a63631fc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/SwitchAnimBtn.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Unity.Entities; 5 | using Aoi.ECS; 6 | 7 | public sealed class SwitchAnimBtn : MonoBehaviour 8 | { 9 | private void Start() 10 | { 11 | 12 | } 13 | 14 | private void OnGUI() 15 | { 16 | 17 | } 18 | 19 | public void OnClickBtn() 20 | { 21 | ECS_AnimatorEntityRenderingSystem renderingSys = World.DefaultGameObjectInjectionWorld.GetExistingSystem(); 22 | if (null != renderingSys) 23 | { 24 | renderingSys.SwitchAnim(); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /Assets/Scripts/ECS/SwitchAnimBtn.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d30a595b3f8c9994db6bcf49012fc89c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/System.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 283130987f96bd64f95c7fede39f1cf2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/System/ECS_AnimatorEntityRenderingSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Burst; 2 | using Unity.Collections; 3 | using Unity.Entities; 4 | using Unity.Jobs; 5 | using Unity.Mathematics; 6 | using Unity.Rendering; 7 | using Unity.Transforms; 8 | using UnityEngine.Rendering; 9 | using Random = Unity.Mathematics.Random; 10 | 11 | /// 12 | /// Author:Aoicocoon 13 | /// Date:20200907 14 | /// 实体渲染系统 15 | /// 16 | namespace Aoi.ECS 17 | { 18 | [UpdateInGroup(typeof(SimulationSystemGroup))] 19 | public sealed class ECS_AnimatorEntityFrameDataCalcSystem : SystemBase 20 | { 21 | private EntityQuery m_calcAnimatorFrameDataGroup; 22 | private EntityQuery m_finalGroup; 23 | private float m_time; 24 | 25 | protected override void OnCreate() 26 | { 27 | base.OnCreate(); 28 | 29 | m_calcAnimatorFrameDataGroup = GetEntityQuery(new EntityQueryDesc 30 | { 31 | All = new ComponentType[] 32 | { 33 | typeof(LocalToWorld), 34 | typeof(AnimationData), 35 | ComponentType.ReadOnly(), 36 | ComponentType.ReadOnly(), 37 | } 38 | }); 39 | 40 | m_finalGroup = GetEntityQuery(new EntityQueryDesc 41 | { 42 | All = new ComponentType[] 43 | { 44 | typeof(LocalToWorld), 45 | typeof(AnimationData), 46 | ComponentType.ReadOnly(), 47 | ComponentType.ReadOnly() 48 | } 49 | }); 50 | } 51 | 52 | protected override void OnUpdate() 53 | { 54 | float dt = UnityEngine.Time.deltaTime; 55 | UnityEngine.Camera camera = UnityEngine.Camera.main; 56 | LODGroupExtensions.LODParams lodPrams = default; 57 | if (camera) 58 | { 59 | lodPrams = Unity.Rendering.LODGroupExtensions.CalculateLODParams(camera); 60 | } 61 | 62 | ComponentDataFromEntity animationData = GetComponentDataFromEntity(true); 63 | ComponentDataFromEntity translationData = GetComponentDataFromEntity(true); 64 | ComponentDataFromEntity rotationData = GetComponentDataFromEntity(true); 65 | //ComponentDataFromEntity scaleData = GetComponentDataFromEntity(true); 66 | 67 | Entities 68 | .WithName("ECS_AnimatorEntityFrameDataCalcSystem") 69 | .WithBurst(Unity.Burst.FloatMode.Default, Unity.Burst.FloatPrecision.Standard) 70 | .WithStoreEntityQueryInField(ref m_calcAnimatorFrameDataGroup) 71 | .ForEach((ref LocalToWorld location, ref AnimationData animData, ref MeshLODGroupComponent lodGrpup, in Translation translation) => 72 | { 73 | var lodIndex = LODGroupExtensions.CalculateCurrentLODIndex(lodGrpup.LODDistances0, translation.Value, ref lodPrams); 74 | animData.ActivedLOD = lodIndex + 1; 75 | 76 | int frameCount = animData.AnimationFrameCountArr.Value.ArrayData[animData.AnimationIndex]; 77 | 78 | animData.StartTime += dt; 79 | float normalizeTime = animData.CalcNormalizeTime(frameCount, animData.StartTime); 80 | animData.CurFrame = (int)(normalizeTime * frameCount); 81 | 82 | }).ScheduleParallel(); 83 | 84 | 85 | 86 | Entities 87 | .WithName("ECS_AnimatorEntityAttachRenderingSystem") 88 | .WithBurst(Unity.Burst.FloatMode.Default, Unity.Burst.FloatPrecision.Standard) 89 | .WithStoreEntityQueryInField(ref m_finalGroup) 90 | .WithReadOnly(animationData) 91 | .WithReadOnly(translationData) 92 | .WithReadOnly(rotationData) 93 | //.WithReadOnly(scaleData) 94 | .ForEach((Entity entity, int entityInQueryIndex, ref LocalToWorld location, ref ECS_FrameDataMaterialPropertyComponent frameDataMaterialProerty, in ECS_SkinnedMatrixAnimatorAttach attach, in MeshLODComponent lod) => 95 | { 96 | AnimationData animData = animationData[attach.Parent]; 97 | 98 | //未激活的LOD attach return 99 | if((lod.LODMask & animData.ActivedLOD) == 0) 100 | { 101 | return; 102 | } 103 | 104 | int frameInPixelOffset = animData.AnimationFrameOffsetArr.Value.ArrayData[(attach.AttachIndex * animData.AnimCount) + animData.AnimationIndex]; 105 | int smrOffset = animData.AttachSmrCountArr.Value.ArrayData[attach.AttachIndex]; 106 | float3 texData = texData = animData.AttachTexDataArr.Value.ArrayData[attach.AttachIndex]; 107 | 108 | int frameOffset = frameInPixelOffset + animData.CurFrame * smrOffset * 2; 109 | float4 perFrameData = new float4(texData.x, texData.y, frameOffset, texData.z); 110 | 111 | Translation animatorTranslateData = translationData[attach.Parent]; 112 | Rotation animatorRotationData = rotationData[attach.Parent]; 113 | //Scale animatorScaleData = scaleData[attach.Parent]; 114 | float3 position = animatorTranslateData.Value; 115 | 116 | float4x4 trs = float4x4.TRS(animatorTranslateData.Value, animatorRotationData.Value, new float3(1,1,1)); 117 | 118 | frameDataMaterialProerty.Value = perFrameData; 119 | 120 | location.Value = trs; 121 | 122 | }).ScheduleParallel(); 123 | } 124 | } 125 | 126 | [UpdateInGroup(typeof(SimulationSystemGroup))] 127 | [UpdateAfter(typeof(ECS_AnimatorEntityFrameDataCalcSystem))] 128 | public sealed class ECS_AnimatorEntityRenderingSystem : SystemBase 129 | { 130 | private bool m_switchAnimIsDirty = false; 131 | 132 | protected override void OnCreate() 133 | { 134 | base.OnCreate(); 135 | } 136 | 137 | public void SwitchAnim() 138 | { 139 | m_switchAnimIsDirty = true; 140 | } 141 | protected override void OnUpdate() 142 | { 143 | if (m_switchAnimIsDirty) 144 | { 145 | Random random = new Random((uint)UnityEngine.Time.frameCount); 146 | m_switchAnimIsDirty = false; 147 | 148 | Entities 149 | .WithName("ECS_AnimatorEntityRenderingSystem_switchAnim") 150 | .WithBurst(Unity.Burst.FloatMode.Default, Unity.Burst.FloatPrecision.Standard) 151 | .ForEach((ref AnimationData animData) => 152 | { 153 | animData.AnimationIndex = random.NextInt(0, animData.AnimCount); 154 | animData.StartTime = random.NextFloat(0.0f, 1.0f); 155 | }).ScheduleParallel(); 156 | } 157 | } 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/System/ECS_AnimatorEntityRenderingSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f95bacedb7cf1f0428abce6067f08443 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/System/ECS_AnimatorEntitySpawnerSystem.cs: -------------------------------------------------------------------------------- 1 | using Unity.Entities; 2 | using Unity.Transforms; 3 | using Unity.Mathematics; 4 | using Unity.Rendering; 5 | 6 | using Random = Unity.Mathematics.Random; 7 | 8 | /// 9 | /// Author:Aoicocoon 10 | /// Date:20200907 11 | /// 实体生成系统 12 | /// 13 | namespace Aoi.ECS 14 | { 15 | [UpdateInGroup(typeof(InitializationSystemGroup))] 16 | public sealed class ECS_AnimatorEntitySpawnerSystem : SystemBase 17 | { 18 | BeginInitializationEntityCommandBufferSystem m_EntityCommandBufferSystem; 19 | 20 | protected override void OnCreate() 21 | { 22 | base.OnCreate(); 23 | m_EntityCommandBufferSystem = World.GetOrCreateSystem(); 24 | } 25 | 26 | protected override void OnUpdate() 27 | { 28 | var command = m_EntityCommandBufferSystem.CreateCommandBuffer().ToConcurrent(); 29 | 30 | //Instantiate 士兵预制体 31 | Entities 32 | .WithName("ECS_AmimatorEntitySpawnerSystem") 33 | .WithBurst(Unity.Burst.FloatMode.Default, Unity.Burst.FloatPrecision.Standard, true) 34 | .ForEach( 35 | (Entity entity, int entityInQueryIndex, int nativeThreadIndex, in ECS_AnimatorSpawner spawner, in LocalToWorld location) => 36 | { 37 | for (var x = 0; x < spawner.CountX; x++) 38 | { 39 | for (var y = 0; y < spawner.CountY; y++) 40 | { 41 | var instance = command.Instantiate(entityInQueryIndex, spawner.Prefab); 42 | 43 | //Aniamtor出生位置 44 | var position = math.transform(location.Value, 45 | new float3(x * 1.3F, 0, y * 1.3F)); 46 | command.SetComponent(entityInQueryIndex, instance, new Translation() { Value = position }); 47 | 48 | //模型部件分拆 需要独立实例化,比如骑兵的 马和人 是2个attach 49 | for (int attach = 0; attach < spawner.AttachCount; attach++) 50 | { 51 | //初始化每个attach的 lod 网格 52 | var lodEntity = Entity.Null; 53 | for (int lod = 0; lod < 2; lod++) 54 | { 55 | lodEntity = command.Instantiate(entityInQueryIndex, spawner.AttachLOD.Value.ArrayData[attach * 2 + lod]); 56 | 57 | //建立 MeshLODComponent-> 到 MeshLODGroup 的父子级关系 58 | command.SetComponent(entityInQueryIndex, lodEntity, new MeshLODComponent { Group = instance, LODMask = spawner.GetLODMask(lod) }); 59 | //建立 AnimatorAttach-> 到 Animator 的父子级关系 60 | command.AddComponent(entityInQueryIndex, lodEntity, new ECS_SkinnedMatrixAnimatorAttach() { Parent = instance, AttachIndex = attach }); 61 | command.AddComponent(entityInQueryIndex, lodEntity, new ECS_FrameDataMaterialPropertyComponent()); 62 | } 63 | } 64 | } 65 | } 66 | 67 | //清理预制体 68 | command.DestroyEntity(entityInQueryIndex, entity); 69 | // command.DestroyEntity(entityInQueryIndex, spawner.Prefab); 70 | 71 | for (int lod = 0; lod < spawner.AttachLOD.Value.ArrayData.Length; lod++) 72 | { 73 | command.DestroyEntity(entityInQueryIndex, spawner.AttachLOD.Value.ArrayData[lod]); 74 | } 75 | }).ScheduleParallel(); 76 | 77 | m_EntityCommandBufferSystem.AddJobHandleForProducer(this.Dependency); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Scripts/ECS/System/ECS_AnimatorEntitySpawnerSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2152cc7edd99b84f91486376e8c41fe 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Normal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19e756112025f8e4889217f1cef81fc6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Normal/SimpleAnimator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | public class SimpleAnimator : MonoBehaviour 6 | { 7 | public static float FPS = 1.0f / 30.0f; 8 | 9 | protected MeshFilter[] m_subPartMF; 10 | protected Renderer[] m_subPartRenderer; 11 | protected Material[] m_subPartMaterial; 12 | 13 | protected float m_deltaTime; 14 | protected int m_playAnimIdx = 0; 15 | protected int m_playAnimFrameIdx = 0; 16 | protected int m_playedAnimFrameCount; 17 | protected bool m_hasInited = false; 18 | 19 | protected int[][] InstancingTexFrameOffset = null; 20 | protected int[] InstancingSmrCount = null; 21 | protected Vector4[] InstancingData; 22 | protected ECS_Provider m_Provider; 23 | protected MaterialPropertyBlock m_block; 24 | 25 | protected static int TEXSKINNING_PIXEL_START = Shader.PropertyToID("_FrameData"); 26 | 27 | public void InitData(ECS_Provider pSkin) 28 | { 29 | m_subPartMF = new MeshFilter[pSkin.AttachDatas.Length]; 30 | m_subPartRenderer = new Renderer[pSkin.AttachDatas.Length]; 31 | m_subPartMaterial = new Material[pSkin.AttachDatas.Length]; 32 | InstancingTexFrameOffset = new int[pSkin.AnimNames.Length][]; 33 | InstancingSmrCount = new int[pSkin.AttachDatas.Length]; 34 | InstancingData = new Vector4[pSkin.AttachDatas.Length]; 35 | 36 | for (int i = 0; i < pSkin.AttachDatas.Length; i++) 37 | { 38 | GameObject attach = new GameObject(i.ToString(), typeof(MeshFilter), typeof(MeshRenderer)); 39 | attach.transform.parent = this.transform; 40 | attach.transform.localPosition = Vector3.zero; 41 | 42 | Renderer renderer = attach.GetComponent(); 43 | MeshFilter mf = attach.GetComponent(); 44 | Material mat = pSkin.AttachDatas[i].DrawMaterial; 45 | 46 | mf.sharedMesh = pSkin.AttachDatas[i].LODMesh[0]; 47 | renderer.sharedMaterial = mat; 48 | 49 | m_subPartRenderer[i] = renderer; 50 | m_subPartMF[i] = mf; 51 | m_subPartMaterial[i] = mat; 52 | 53 | Texture2D animTex = pSkin.AttachDatas[i].AnimTexture; 54 | if (animTex) 55 | { 56 | InstancingData[i] = new Vector4(animTex.width, animTex.height, 0, Mathf.Min(1.0f / animTex.width, 1.0f / animTex.height)); 57 | } 58 | 59 | mat.DisableKeyword("_ECS_ON"); 60 | 61 | InstancingSmrCount[i] = pSkin.AttachDatas[i].SMRCount; 62 | InstancingTexFrameOffset[i] = new int[pSkin.AnimNames.Length]; 63 | int numPixels = 0; 64 | for (int j = 0; j < pSkin.AnimNames.Length; j++) 65 | { 66 | string animName = pSkin.AnimNames[j]; 67 | int frameCount = pSkin.AnimFrameCount[j]; 68 | int curAnimPixelStart = numPixels; 69 | numPixels += frameCount * pSkin.AttachDatas[i].SMRCount * 2; 70 | InstancingTexFrameOffset[i][j] = curAnimPixelStart; 71 | } 72 | 73 | m_Provider = pSkin; 74 | m_playAnimIdx = -1; 75 | m_block = new MaterialPropertyBlock(); 76 | m_hasInited = true; 77 | } 78 | } 79 | 80 | public Vector4 CalcInstancingFrameOffset(int attachIdx, int animIdx, int frameIdx) 81 | { 82 | if (null == InstancingTexFrameOffset) 83 | { 84 | return Vector4.zero; 85 | } 86 | 87 | int frameOffset = InstancingTexFrameOffset[attachIdx][animIdx] + frameIdx * InstancingSmrCount[attachIdx] * 2; 88 | 89 | Vector4 data = InstancingData[attachIdx]; 90 | data.z = frameOffset; 91 | return data; 92 | } 93 | 94 | public void PlayAnim(int animIdx) 95 | { 96 | m_playAnimIdx = animIdx; 97 | m_playedAnimFrameCount = m_Provider.AnimFrameCount[animIdx]; 98 | } 99 | 100 | public void Update() 101 | { 102 | if (!m_hasInited || -1 == m_playAnimIdx) 103 | { 104 | return; 105 | } 106 | 107 | m_deltaTime += Time.deltaTime; 108 | if(m_deltaTime > FPS) 109 | { 110 | m_deltaTime = 0; 111 | int frame = m_playAnimFrameIdx++ % m_playedAnimFrameCount; 112 | for (int i = 0; i < m_subPartRenderer.Length; i++) 113 | { 114 | Vector4 data = this.CalcInstancingFrameOffset(i, m_playAnimIdx, frame); 115 | m_block.SetVector(TEXSKINNING_PIXEL_START, data); 116 | m_subPartRenderer[i].SetPropertyBlock(m_block); 117 | } 118 | } 119 | } 120 | } -------------------------------------------------------------------------------- /Assets/Scripts/Normal/SimpleAnimator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1373d5b7ea1049340b37e9184d1acce4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/NormalAnimatorLaunch.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | public sealed class NormalAnimatorLaunch : MonoBehaviour 6 | { 7 | public void Start() 8 | { 9 | SimpleAnimator animator = this.gameObject.AddComponent(); 10 | ECS_Provider provider = this.GetComponent(); 11 | animator.InitData(provider); 12 | animator.PlayAnim(0); 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/Scripts/NormalAnimatorLaunch.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d31346377f32ca48aca2d86bb1f5436 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Respawn.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | public sealed class Respawn : MonoBehaviour 6 | { 7 | public GameObject Prefab; 8 | public Vector2Int RespawnCount; 9 | public float Interval = 1; 10 | 11 | public void Start() 12 | { 13 | for(int i = 0; i < RespawnCount.x; i++) 14 | { 15 | for(int j= 0; j < RespawnCount.y; j++) 16 | { 17 | GameObject go = GameObject.Instantiate(Prefab); 18 | go.transform.position = new Vector3(i * Interval, 0, j * Interval); 19 | go.SetActive(true); 20 | } 21 | } 22 | 23 | Prefab.SetActive(false); 24 | } 25 | } -------------------------------------------------------------------------------- /Assets/Scripts/Respawn.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6900e91c26133ee4897ec2e147ae3172 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Entity/CustomFunctionNode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/CustomFunctionNode.png -------------------------------------------------------------------------------- /Entity/ECS_AnimatorEntityFrameDataCalcSystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/ECS_AnimatorEntityFrameDataCalcSystem.png -------------------------------------------------------------------------------- /Entity/ECS_AnimatorEntityGenerator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/ECS_AnimatorEntityGenerator.png -------------------------------------------------------------------------------- /Entity/ECS_AnimatorEntitySpawnerSystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/ECS_AnimatorEntitySpawnerSystem.png -------------------------------------------------------------------------------- /Entity/ECS_FrameData.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/ECS_FrameData.png -------------------------------------------------------------------------------- /Entity/ECS_Marco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/ECS_Marco.png -------------------------------------------------------------------------------- /Entity/EntityDebug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/EntityDebug.png -------------------------------------------------------------------------------- /Entity/EntityFrameDebug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/EntityFrameDebug.png -------------------------------------------------------------------------------- /Entity/EntityGpuSkinning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/EntityGpuSkinning.png -------------------------------------------------------------------------------- /Entity/MeshLODGroupComponent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/MeshLODGroupComponent.png -------------------------------------------------------------------------------- /Entity/NormalFrameDebug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/NormalFrameDebug.png -------------------------------------------------------------------------------- /Entity/NormalGPUSkinning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/NormalGPUSkinning.png -------------------------------------------------------------------------------- /Entity/ShaderGraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dreamfairy/Unity_ECS_GPUSkinning/bd373518833c8389b14eaae741079984c46e8e5f/Entity/ShaderGraph.png -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.burst": "1.3.9", 4 | "com.unity.collab-proxy": "1.2.16", 5 | "com.unity.entities": "0.11.2-preview.1", 6 | "com.unity.ide.rider": "1.1.4", 7 | "com.unity.ide.vscode": "1.2.1", 8 | "com.unity.render-pipelines.high-definition": "7.3.1", 9 | "com.unity.rendering.hybrid": "0.5.2-preview.4", 10 | "com.unity.test-framework": "1.1.14", 11 | "com.unity.textmeshpro": "2.1.1", 12 | "com.unity.timeline": "1.2.15", 13 | "com.unity.ugui": "1.0.0", 14 | "com.unity.modules.ai": "1.0.0", 15 | "com.unity.modules.androidjni": "1.0.0", 16 | "com.unity.modules.animation": "1.0.0", 17 | "com.unity.modules.assetbundle": "1.0.0", 18 | "com.unity.modules.audio": "1.0.0", 19 | "com.unity.modules.cloth": "1.0.0", 20 | "com.unity.modules.director": "1.0.0", 21 | "com.unity.modules.imageconversion": "1.0.0", 22 | "com.unity.modules.imgui": "1.0.0", 23 | "com.unity.modules.jsonserialize": "1.0.0", 24 | "com.unity.modules.particlesystem": "1.0.0", 25 | "com.unity.modules.physics": "1.0.0", 26 | "com.unity.modules.physics2d": "1.0.0", 27 | "com.unity.modules.screencapture": "1.0.0", 28 | "com.unity.modules.terrain": "1.0.0", 29 | "com.unity.modules.terrainphysics": "1.0.0", 30 | "com.unity.modules.tilemap": "1.0.0", 31 | "com.unity.modules.ui": "1.0.0", 32 | "com.unity.modules.uielements": "1.0.0", 33 | "com.unity.modules.umbra": "1.0.0", 34 | "com.unity.modules.unityanalytics": "1.0.0", 35 | "com.unity.modules.unitywebrequest": "1.0.0", 36 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 37 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 38 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 39 | "com.unity.modules.unitywebrequestwww": "1.0.0", 40 | "com.unity.modules.vehicles": "1.0.0", 41 | "com.unity.modules.video": "1.0.0", 42 | "com.unity.modules.vr": "1.0.0", 43 | "com.unity.modules.wind": "1.0.0", 44 | "com.unity.modules.xr": "1.0.0" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.burst": { 4 | "version": "1.3.9", 5 | "depth": 0, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.mathematics": "1.2.1" 9 | }, 10 | "url": "https://packages.unity.cn" 11 | }, 12 | "com.unity.collab-proxy": { 13 | "version": "1.2.16", 14 | "depth": 0, 15 | "source": "registry", 16 | "dependencies": {}, 17 | "url": "https://packages.unity.cn" 18 | }, 19 | "com.unity.collections": { 20 | "version": "0.9.0-preview.6", 21 | "depth": 1, 22 | "source": "registry", 23 | "dependencies": { 24 | "com.unity.test-framework.performance": "2.0.8-preview", 25 | "com.unity.burst": "1.3.0-preview.12" 26 | }, 27 | "url": "https://packages.unity.cn" 28 | }, 29 | "com.unity.entities": { 30 | "version": "0.11.2-preview.1", 31 | "depth": 0, 32 | "source": "registry", 33 | "dependencies": { 34 | "com.unity.burst": "1.3.0-preview.12", 35 | "com.unity.collections": "0.9.0-preview.6", 36 | "com.unity.properties": "1.2.0-preview", 37 | "com.unity.mathematics": "1.1.0", 38 | "com.unity.test-framework.performance": "2.0.8-preview", 39 | "com.unity.serialization": "1.2.0-preview", 40 | "com.unity.nuget.mono-cecil": "0.1.6-preview.2", 41 | "com.unity.jobs": "0.2.10-preview.13", 42 | "com.unity.scriptablebuildpipeline": "1.6.4-preview", 43 | "com.unity.platforms": "0.3.0-preview.4" 44 | }, 45 | "url": "https://packages.unity.cn" 46 | }, 47 | "com.unity.ext.nunit": { 48 | "version": "1.0.0", 49 | "depth": 1, 50 | "source": "registry", 51 | "dependencies": {}, 52 | "url": "https://packages.unity.cn" 53 | }, 54 | "com.unity.ide.rider": { 55 | "version": "1.1.4", 56 | "depth": 0, 57 | "source": "registry", 58 | "dependencies": { 59 | "com.unity.test-framework": "1.1.1" 60 | }, 61 | "url": "https://packages.unity.cn" 62 | }, 63 | "com.unity.ide.vscode": { 64 | "version": "1.2.1", 65 | "depth": 0, 66 | "source": "registry", 67 | "dependencies": {}, 68 | "url": "https://packages.unity.cn" 69 | }, 70 | "com.unity.jobs": { 71 | "version": "0.2.10-preview.13", 72 | "depth": 1, 73 | "source": "registry", 74 | "dependencies": { 75 | "com.unity.collections": "0.9.0-preview.6", 76 | "com.unity.mathematics": "1.1.0" 77 | }, 78 | "url": "https://packages.unity.cn" 79 | }, 80 | "com.unity.mathematics": { 81 | "version": "1.2.1", 82 | "depth": 1, 83 | "source": "registry", 84 | "dependencies": {}, 85 | "url": "https://packages.unity.cn" 86 | }, 87 | "com.unity.nuget.mono-cecil": { 88 | "version": "0.1.6-preview.2", 89 | "depth": 1, 90 | "source": "registry", 91 | "dependencies": { 92 | "nuget.mono-cecil": "0.1.6-preview" 93 | }, 94 | "url": "https://packages.unity.cn" 95 | }, 96 | "com.unity.nuget.newtonsoft-json": { 97 | "version": "2.0.0-preview", 98 | "depth": 2, 99 | "source": "registry", 100 | "dependencies": {}, 101 | "url": "https://packages.unity.cn" 102 | }, 103 | "com.unity.platforms": { 104 | "version": "0.3.0-preview.4", 105 | "depth": 1, 106 | "source": "registry", 107 | "dependencies": { 108 | "com.unity.properties": "1.1.1-preview", 109 | "com.unity.properties.ui": "1.1.1-preview", 110 | "com.unity.searcher": "4.0.9", 111 | "com.unity.serialization": "1.1.1-preview" 112 | }, 113 | "url": "https://packages.unity.cn" 114 | }, 115 | "com.unity.properties": { 116 | "version": "1.2.0-preview", 117 | "depth": 1, 118 | "source": "registry", 119 | "dependencies": { 120 | "nuget.mono-cecil": "0.1.5-preview", 121 | "com.unity.test-framework.performance": "1.3.3-preview" 122 | }, 123 | "url": "https://packages.unity.cn" 124 | }, 125 | "com.unity.properties.ui": { 126 | "version": "1.1.1-preview", 127 | "depth": 2, 128 | "source": "registry", 129 | "dependencies": { 130 | "com.unity.properties": "1.1.1-preview", 131 | "com.unity.serialization": "1.1.1-preview" 132 | }, 133 | "url": "https://packages.unity.cn" 134 | }, 135 | "com.unity.render-pipelines.core": { 136 | "version": "7.3.1", 137 | "depth": 1, 138 | "source": "registry", 139 | "dependencies": { 140 | "com.unity.ugui": "1.0.0" 141 | }, 142 | "url": "https://packages.unity.cn" 143 | }, 144 | "com.unity.render-pipelines.high-definition": { 145 | "version": "7.3.1", 146 | "depth": 0, 147 | "source": "registry", 148 | "dependencies": { 149 | "com.unity.render-pipelines.core": "7.3.1", 150 | "com.unity.shadergraph": "7.3.1", 151 | "com.unity.visualeffectgraph": "7.3.1", 152 | "com.unity.render-pipelines.high-definition-config": "7.3.1" 153 | }, 154 | "url": "https://packages.unity.cn" 155 | }, 156 | "com.unity.render-pipelines.high-definition-config": { 157 | "version": "7.3.1", 158 | "depth": 1, 159 | "source": "registry", 160 | "dependencies": { 161 | "com.unity.render-pipelines.core": "7.3.1" 162 | }, 163 | "url": "https://packages.unity.cn" 164 | }, 165 | "com.unity.rendering.hybrid": { 166 | "version": "0.5.2-preview.4", 167 | "depth": 0, 168 | "source": "registry", 169 | "dependencies": { 170 | "com.unity.entities": "0.11.1-preview.4" 171 | }, 172 | "url": "https://packages.unity.cn" 173 | }, 174 | "com.unity.scriptablebuildpipeline": { 175 | "version": "1.6.4-preview", 176 | "depth": 1, 177 | "source": "registry", 178 | "dependencies": {}, 179 | "url": "https://packages.unity.cn" 180 | }, 181 | "com.unity.searcher": { 182 | "version": "4.0.9", 183 | "depth": 2, 184 | "source": "registry", 185 | "dependencies": {}, 186 | "url": "https://packages.unity.cn" 187 | }, 188 | "com.unity.serialization": { 189 | "version": "1.2.0-preview", 190 | "depth": 1, 191 | "source": "registry", 192 | "dependencies": { 193 | "com.unity.collections": "0.7.0-preview.2", 194 | "com.unity.burst": "1.3.0-preview.5", 195 | "com.unity.jobs": "0.2.7-preview.11", 196 | "com.unity.properties": "1.2.0-preview", 197 | "com.unity.test-framework.performance": "1.3.3-preview" 198 | }, 199 | "url": "https://packages.unity.cn" 200 | }, 201 | "com.unity.shadergraph": { 202 | "version": "7.3.1", 203 | "depth": 1, 204 | "source": "registry", 205 | "dependencies": { 206 | "com.unity.render-pipelines.core": "7.3.1" 207 | }, 208 | "url": "https://packages.unity.cn" 209 | }, 210 | "com.unity.test-framework": { 211 | "version": "1.1.14", 212 | "depth": 0, 213 | "source": "registry", 214 | "dependencies": { 215 | "com.unity.ext.nunit": "1.0.0", 216 | "com.unity.modules.imgui": "1.0.0", 217 | "com.unity.modules.jsonserialize": "1.0.0" 218 | }, 219 | "url": "https://packages.unity.cn" 220 | }, 221 | "com.unity.test-framework.performance": { 222 | "version": "2.0.8-preview", 223 | "depth": 1, 224 | "source": "registry", 225 | "dependencies": { 226 | "com.unity.test-framework": "1.1.0", 227 | "com.unity.nuget.newtonsoft-json": "2.0.0-preview" 228 | }, 229 | "url": "https://packages.unity.cn" 230 | }, 231 | "com.unity.textmeshpro": { 232 | "version": "2.1.1", 233 | "depth": 0, 234 | "source": "registry", 235 | "dependencies": { 236 | "com.unity.ugui": "1.0.0" 237 | }, 238 | "url": "https://packages.unity.cn" 239 | }, 240 | "com.unity.timeline": { 241 | "version": "1.2.15", 242 | "depth": 0, 243 | "source": "registry", 244 | "dependencies": {}, 245 | "url": "https://packages.unity.cn" 246 | }, 247 | "com.unity.ugui": { 248 | "version": "1.0.0", 249 | "depth": 0, 250 | "source": "builtin", 251 | "dependencies": { 252 | "com.unity.modules.ui": "1.0.0" 253 | } 254 | }, 255 | "com.unity.visualeffectgraph": { 256 | "version": "7.3.1", 257 | "depth": 1, 258 | "source": "registry", 259 | "dependencies": { 260 | "com.unity.shadergraph": "7.3.1" 261 | }, 262 | "url": "https://packages.unity.cn" 263 | }, 264 | "nuget.mono-cecil": { 265 | "version": "0.1.6-preview", 266 | "depth": 2, 267 | "source": "registry", 268 | "dependencies": {}, 269 | "url": "https://packages.unity.cn" 270 | }, 271 | "com.unity.modules.ai": { 272 | "version": "1.0.0", 273 | "depth": 0, 274 | "source": "builtin", 275 | "dependencies": {} 276 | }, 277 | "com.unity.modules.androidjni": { 278 | "version": "1.0.0", 279 | "depth": 0, 280 | "source": "builtin", 281 | "dependencies": {} 282 | }, 283 | "com.unity.modules.animation": { 284 | "version": "1.0.0", 285 | "depth": 0, 286 | "source": "builtin", 287 | "dependencies": {} 288 | }, 289 | "com.unity.modules.assetbundle": { 290 | "version": "1.0.0", 291 | "depth": 0, 292 | "source": "builtin", 293 | "dependencies": {} 294 | }, 295 | "com.unity.modules.audio": { 296 | "version": "1.0.0", 297 | "depth": 0, 298 | "source": "builtin", 299 | "dependencies": {} 300 | }, 301 | "com.unity.modules.cloth": { 302 | "version": "1.0.0", 303 | "depth": 0, 304 | "source": "builtin", 305 | "dependencies": { 306 | "com.unity.modules.physics": "1.0.0" 307 | } 308 | }, 309 | "com.unity.modules.director": { 310 | "version": "1.0.0", 311 | "depth": 0, 312 | "source": "builtin", 313 | "dependencies": { 314 | "com.unity.modules.audio": "1.0.0", 315 | "com.unity.modules.animation": "1.0.0" 316 | } 317 | }, 318 | "com.unity.modules.imageconversion": { 319 | "version": "1.0.0", 320 | "depth": 0, 321 | "source": "builtin", 322 | "dependencies": {} 323 | }, 324 | "com.unity.modules.imgui": { 325 | "version": "1.0.0", 326 | "depth": 0, 327 | "source": "builtin", 328 | "dependencies": {} 329 | }, 330 | "com.unity.modules.jsonserialize": { 331 | "version": "1.0.0", 332 | "depth": 0, 333 | "source": "builtin", 334 | "dependencies": {} 335 | }, 336 | "com.unity.modules.particlesystem": { 337 | "version": "1.0.0", 338 | "depth": 0, 339 | "source": "builtin", 340 | "dependencies": {} 341 | }, 342 | "com.unity.modules.physics": { 343 | "version": "1.0.0", 344 | "depth": 0, 345 | "source": "builtin", 346 | "dependencies": {} 347 | }, 348 | "com.unity.modules.physics2d": { 349 | "version": "1.0.0", 350 | "depth": 0, 351 | "source": "builtin", 352 | "dependencies": {} 353 | }, 354 | "com.unity.modules.screencapture": { 355 | "version": "1.0.0", 356 | "depth": 0, 357 | "source": "builtin", 358 | "dependencies": { 359 | "com.unity.modules.imageconversion": "1.0.0" 360 | } 361 | }, 362 | "com.unity.modules.subsystems": { 363 | "version": "1.0.0", 364 | "depth": 1, 365 | "source": "builtin", 366 | "dependencies": { 367 | "com.unity.modules.jsonserialize": "1.0.0" 368 | } 369 | }, 370 | "com.unity.modules.terrain": { 371 | "version": "1.0.0", 372 | "depth": 0, 373 | "source": "builtin", 374 | "dependencies": {} 375 | }, 376 | "com.unity.modules.terrainphysics": { 377 | "version": "1.0.0", 378 | "depth": 0, 379 | "source": "builtin", 380 | "dependencies": { 381 | "com.unity.modules.physics": "1.0.0", 382 | "com.unity.modules.terrain": "1.0.0" 383 | } 384 | }, 385 | "com.unity.modules.tilemap": { 386 | "version": "1.0.0", 387 | "depth": 0, 388 | "source": "builtin", 389 | "dependencies": { 390 | "com.unity.modules.physics2d": "1.0.0" 391 | } 392 | }, 393 | "com.unity.modules.ui": { 394 | "version": "1.0.0", 395 | "depth": 0, 396 | "source": "builtin", 397 | "dependencies": {} 398 | }, 399 | "com.unity.modules.uielements": { 400 | "version": "1.0.0", 401 | "depth": 0, 402 | "source": "builtin", 403 | "dependencies": { 404 | "com.unity.modules.imgui": "1.0.0", 405 | "com.unity.modules.jsonserialize": "1.0.0" 406 | } 407 | }, 408 | "com.unity.modules.umbra": { 409 | "version": "1.0.0", 410 | "depth": 0, 411 | "source": "builtin", 412 | "dependencies": {} 413 | }, 414 | "com.unity.modules.unityanalytics": { 415 | "version": "1.0.0", 416 | "depth": 0, 417 | "source": "builtin", 418 | "dependencies": { 419 | "com.unity.modules.unitywebrequest": "1.0.0", 420 | "com.unity.modules.jsonserialize": "1.0.0" 421 | } 422 | }, 423 | "com.unity.modules.unitywebrequest": { 424 | "version": "1.0.0", 425 | "depth": 0, 426 | "source": "builtin", 427 | "dependencies": {} 428 | }, 429 | "com.unity.modules.unitywebrequestassetbundle": { 430 | "version": "1.0.0", 431 | "depth": 0, 432 | "source": "builtin", 433 | "dependencies": { 434 | "com.unity.modules.assetbundle": "1.0.0", 435 | "com.unity.modules.unitywebrequest": "1.0.0" 436 | } 437 | }, 438 | "com.unity.modules.unitywebrequestaudio": { 439 | "version": "1.0.0", 440 | "depth": 0, 441 | "source": "builtin", 442 | "dependencies": { 443 | "com.unity.modules.unitywebrequest": "1.0.0", 444 | "com.unity.modules.audio": "1.0.0" 445 | } 446 | }, 447 | "com.unity.modules.unitywebrequesttexture": { 448 | "version": "1.0.0", 449 | "depth": 0, 450 | "source": "builtin", 451 | "dependencies": { 452 | "com.unity.modules.unitywebrequest": "1.0.0", 453 | "com.unity.modules.imageconversion": "1.0.0" 454 | } 455 | }, 456 | "com.unity.modules.unitywebrequestwww": { 457 | "version": "1.0.0", 458 | "depth": 0, 459 | "source": "builtin", 460 | "dependencies": { 461 | "com.unity.modules.unitywebrequest": "1.0.0", 462 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 463 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 464 | "com.unity.modules.audio": "1.0.0", 465 | "com.unity.modules.assetbundle": "1.0.0", 466 | "com.unity.modules.imageconversion": "1.0.0" 467 | } 468 | }, 469 | "com.unity.modules.vehicles": { 470 | "version": "1.0.0", 471 | "depth": 0, 472 | "source": "builtin", 473 | "dependencies": { 474 | "com.unity.modules.physics": "1.0.0" 475 | } 476 | }, 477 | "com.unity.modules.video": { 478 | "version": "1.0.0", 479 | "depth": 0, 480 | "source": "builtin", 481 | "dependencies": { 482 | "com.unity.modules.audio": "1.0.0", 483 | "com.unity.modules.ui": "1.0.0", 484 | "com.unity.modules.unitywebrequest": "1.0.0" 485 | } 486 | }, 487 | "com.unity.modules.vr": { 488 | "version": "1.0.0", 489 | "depth": 0, 490 | "source": "builtin", 491 | "dependencies": { 492 | "com.unity.modules.jsonserialize": "1.0.0", 493 | "com.unity.modules.physics": "1.0.0", 494 | "com.unity.modules.xr": "1.0.0" 495 | } 496 | }, 497 | "com.unity.modules.wind": { 498 | "version": "1.0.0", 499 | "depth": 0, 500 | "source": "builtin", 501 | "dependencies": {} 502 | }, 503 | "com.unity.modules.xr": { 504 | "version": "1.0.0", 505 | "depth": 0, 506 | "source": "builtin", 507 | "dependencies": { 508 | "com.unity.modules.physics": "1.0.0", 509 | "com.unity.modules.jsonserialize": "1.0.0", 510 | "com.unity.modules.subsystems": "1.0.0" 511 | } 512 | } 513 | } 514 | } 515 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 11400000, guid: 8998ad6175f139f40a8ae9279c9f6e3b, 42 | type: 2} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 1 62 | m_LightsUseColorTemperature: 1 63 | m_LogWhenShaderIsCompiled: 0 64 | m_AllowEnlightenSupportForUpgradedProject: 0 65 | -------------------------------------------------------------------------------- /ProjectSettings/HDRPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 63a2978a97e4fc04cb9d905947216f3d, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 1 16 | m_DefaultScenePrefabSaved: {fileID: 5823510469358171751, guid: 484c6efb2d2a33947be59b042727684c, 17 | type: 3} 18 | m_DefaultDXRScenePrefabSaved: {fileID: 0} 19 | m_ProjectSettingFolderPath: HDRPDefaultResources 20 | m_WizardPopupAtStart: 1 21 | m_WizardPopupAlreadyShownOnce: 1 22 | m_WizardActiveTab: 0 23 | m_WizardNeedRestartAfterChangingToDX12: 0 24 | m_WizardNeedToRunFixAllAgainAfterDomainReload: 0 25 | m_LastMaterialVersion: 2 26 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.4.7f1 2 | m_EditorVersionWithRevision: 2019.4.7f1 (c96ffa5b8cd5) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 0} 44 | excludedTargetPlatforms: [] 45 | - serializedVersion: 2 46 | name: Low 47 | pixelLightCount: 0 48 | shadows: 0 49 | shadowResolution: 0 50 | shadowProjection: 1 51 | shadowCascades: 1 52 | shadowDistance: 20 53 | shadowNearPlaneOffset: 3 54 | shadowCascade2Split: 0.33333334 55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 56 | shadowmaskMode: 0 57 | skinWeights: 2 58 | textureQuality: 0 59 | anisotropicTextures: 0 60 | antiAliasing: 0 61 | softParticles: 0 62 | softVegetation: 0 63 | realtimeReflectionProbes: 0 64 | billboardsFaceCameraPosition: 0 65 | vSyncCount: 0 66 | lodBias: 0.4 67 | maximumLODLevel: 0 68 | streamingMipmapsActive: 0 69 | streamingMipmapsAddAllCameras: 1 70 | streamingMipmapsMemoryBudget: 512 71 | streamingMipmapsRenderersPerFrame: 512 72 | streamingMipmapsMaxLevelReduction: 2 73 | streamingMipmapsMaxFileIORequests: 1024 74 | particleRaycastBudget: 16 75 | asyncUploadTimeSlice: 2 76 | asyncUploadBufferSize: 16 77 | asyncUploadPersistentBuffer: 1 78 | resolutionScalingFixedDPIFactor: 1 79 | customRenderPipeline: {fileID: 0} 80 | excludedTargetPlatforms: [] 81 | - serializedVersion: 2 82 | name: Medium 83 | pixelLightCount: 1 84 | shadows: 1 85 | shadowResolution: 0 86 | shadowProjection: 1 87 | shadowCascades: 1 88 | shadowDistance: 20 89 | shadowNearPlaneOffset: 3 90 | shadowCascade2Split: 0.33333334 91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 92 | shadowmaskMode: 0 93 | skinWeights: 2 94 | textureQuality: 0 95 | anisotropicTextures: 1 96 | antiAliasing: 0 97 | softParticles: 0 98 | softVegetation: 0 99 | realtimeReflectionProbes: 0 100 | billboardsFaceCameraPosition: 0 101 | vSyncCount: 1 102 | lodBias: 0.7 103 | maximumLODLevel: 0 104 | streamingMipmapsActive: 0 105 | streamingMipmapsAddAllCameras: 1 106 | streamingMipmapsMemoryBudget: 512 107 | streamingMipmapsRenderersPerFrame: 512 108 | streamingMipmapsMaxLevelReduction: 2 109 | streamingMipmapsMaxFileIORequests: 1024 110 | particleRaycastBudget: 64 111 | asyncUploadTimeSlice: 2 112 | asyncUploadBufferSize: 16 113 | asyncUploadPersistentBuffer: 1 114 | resolutionScalingFixedDPIFactor: 1 115 | customRenderPipeline: {fileID: 0} 116 | excludedTargetPlatforms: [] 117 | - serializedVersion: 2 118 | name: High 119 | pixelLightCount: 2 120 | shadows: 2 121 | shadowResolution: 1 122 | shadowProjection: 1 123 | shadowCascades: 2 124 | shadowDistance: 40 125 | shadowNearPlaneOffset: 3 126 | shadowCascade2Split: 0.33333334 127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 128 | shadowmaskMode: 1 129 | skinWeights: 2 130 | textureQuality: 0 131 | anisotropicTextures: 1 132 | antiAliasing: 0 133 | softParticles: 0 134 | softVegetation: 1 135 | realtimeReflectionProbes: 1 136 | billboardsFaceCameraPosition: 1 137 | vSyncCount: 1 138 | lodBias: 1 139 | maximumLODLevel: 0 140 | streamingMipmapsActive: 0 141 | streamingMipmapsAddAllCameras: 1 142 | streamingMipmapsMemoryBudget: 512 143 | streamingMipmapsRenderersPerFrame: 512 144 | streamingMipmapsMaxLevelReduction: 2 145 | streamingMipmapsMaxFileIORequests: 1024 146 | particleRaycastBudget: 256 147 | asyncUploadTimeSlice: 2 148 | asyncUploadBufferSize: 16 149 | asyncUploadPersistentBuffer: 1 150 | resolutionScalingFixedDPIFactor: 1 151 | customRenderPipeline: {fileID: 0} 152 | excludedTargetPlatforms: [] 153 | - serializedVersion: 2 154 | name: Very High 155 | pixelLightCount: 3 156 | shadows: 2 157 | shadowResolution: 2 158 | shadowProjection: 1 159 | shadowCascades: 2 160 | shadowDistance: 70 161 | shadowNearPlaneOffset: 3 162 | shadowCascade2Split: 0.33333334 163 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 164 | shadowmaskMode: 1 165 | skinWeights: 4 166 | textureQuality: 0 167 | anisotropicTextures: 2 168 | antiAliasing: 2 169 | softParticles: 1 170 | softVegetation: 1 171 | realtimeReflectionProbes: 1 172 | billboardsFaceCameraPosition: 1 173 | vSyncCount: 1 174 | lodBias: 1.5 175 | maximumLODLevel: 0 176 | streamingMipmapsActive: 0 177 | streamingMipmapsAddAllCameras: 1 178 | streamingMipmapsMemoryBudget: 512 179 | streamingMipmapsRenderersPerFrame: 512 180 | streamingMipmapsMaxLevelReduction: 2 181 | streamingMipmapsMaxFileIORequests: 1024 182 | particleRaycastBudget: 1024 183 | asyncUploadTimeSlice: 2 184 | asyncUploadBufferSize: 16 185 | asyncUploadPersistentBuffer: 1 186 | resolutionScalingFixedDPIFactor: 1 187 | customRenderPipeline: {fileID: 0} 188 | excludedTargetPlatforms: [] 189 | - serializedVersion: 2 190 | name: Ultra 191 | pixelLightCount: 4 192 | shadows: 2 193 | shadowResolution: 2 194 | shadowProjection: 1 195 | shadowCascades: 4 196 | shadowDistance: 150 197 | shadowNearPlaneOffset: 3 198 | shadowCascade2Split: 0.33333334 199 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 200 | shadowmaskMode: 1 201 | skinWeights: 4 202 | textureQuality: 0 203 | anisotropicTextures: 2 204 | antiAliasing: 2 205 | softParticles: 1 206 | softVegetation: 1 207 | realtimeReflectionProbes: 1 208 | billboardsFaceCameraPosition: 1 209 | vSyncCount: 1 210 | lodBias: 2 211 | maximumLODLevel: 0 212 | streamingMipmapsActive: 0 213 | streamingMipmapsAddAllCameras: 1 214 | streamingMipmapsMemoryBudget: 512 215 | streamingMipmapsRenderersPerFrame: 512 216 | streamingMipmapsMaxLevelReduction: 2 217 | streamingMipmapsMaxFileIORequests: 1024 218 | particleRaycastBudget: 4096 219 | asyncUploadTimeSlice: 2 220 | asyncUploadBufferSize: 16 221 | asyncUploadPersistentBuffer: 1 222 | resolutionScalingFixedDPIFactor: 1 223 | customRenderPipeline: {fileID: 0} 224 | excludedTargetPlatforms: [] 225 | m_PerPlatformDefaultQuality: 226 | Android: 2 227 | Lumin: 5 228 | Nintendo 3DS: 5 229 | Nintendo Switch: 5 230 | PS4: 5 231 | PSP2: 2 232 | Stadia: 5 233 | Standalone: 5 234 | WebGL: 3 235 | Windows Store Apps: 5 236 | XboxOne: 5 237 | iPhone: 2 238 | tvOS: 2 239 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity.cn 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 7200000, guid: 84a17cfa13e40ae4082ef42714f0a81c, type: 3} 7 | m_CopyBufferShader: {fileID: 7200000, guid: 23c51f21a3503f6428b527b01f8a2f4e, type: 3} 8 | m_SortShader: {fileID: 7200000, guid: ea257ca3cfb12a642a5025e612af6b2a, type: 3} 9 | m_StripUpdateShader: {fileID: 7200000, guid: 8fa6c4009fe2a4d4486c62736fc30ad8, type: 3} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Unity_ECS_GPUSkinning 2 | Unity HDRP ECS + Brust + GPUSkinning + Instancing 3 | 1万人,400面 4 | ![Image text](https://github.com/dreamfairy/Unity_ECS_GPUSkinning/blob/master/Entity/EntityGpuSkinning.png) 5 | Entity模式下 达到110帧 6 | 7 | ![Image text](https://github.com/dreamfairy/Unity_ECS_GPUSkinning/blob/master/Entity/NormalGPUSkinning.png) 8 | 普通GpuSkinning 达到30帧 9 | --------------------------------------------------------------------------------