From 6ac67b9b5fd09cc450be9251298045500b8275e4 Mon Sep 17 00:00:00 2001 From: mischa Date: Fri, 16 Jun 2023 12:26:59 +0800 Subject: [PATCH] feature: NetworkRigidbody Benchmark demo --- .../Mirror/Examples/RigidbodyBenchmark.meta | 8 + .../RigidbodyBenchmark/Materials.meta | 8 + .../RigidbodyBenchmark/Materials/Floor.mat | 80 +++ .../Materials/Floor.mat.meta | 8 + .../RigidbodyBenchmark/Materials/Player.mat | 80 +++ .../Materials/Player.mat.meta | 8 + .../RigidbodyBenchmark/Materials/Server.mat | 80 +++ .../Materials/Server.mat.meta | 8 + .../RigidbodyBenchmark/PhysicMaterials.meta | 8 + .../PhysicMaterials/Ball.physicMaterial | 14 + .../PhysicMaterials/Ball.physicMaterial.meta | 8 + .../PhysicMaterials/Floor.physicMaterial | 14 + .../PhysicMaterials/Floor.physicMaterial.meta | 8 + .../Examples/RigidbodyBenchmark/Prefabs.meta | 8 + .../Prefabs/Player Ball.prefab | 187 +++++ .../Prefabs/Player Ball.prefab.meta | 7 + .../Prefabs/Server Ball.prefab | 188 +++++ .../Prefabs/Server Ball.prefab.meta | 7 + .../Examples/RigidbodyBenchmark/Scenes.meta | 8 + .../Scenes/RigidbodyBenchmark.unity | 671 ++++++++++++++++++ .../Scenes/RigidbodyBenchmark.unity.meta | 7 + .../Examples/RigidbodyBenchmark/Scripts.meta | 8 + .../RigidbodyBenchmark/Scripts/AddForce.cs | 27 + .../Scripts/AddForce.cs.meta | 11 + .../RigidbodyBenchmark/Scripts/AutoForce.cs | 32 + .../Scripts/AutoForce.cs.meta | 11 + .../RigidbodyBenchmarkNetworkManager.cs | 52 ++ .../RigidbodyBenchmarkNetworkManager.cs.meta | 11 + 28 files changed, 1567 insertions(+) create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scenes.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs.meta create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs create mode 100644 Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs.meta diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark.meta b/Assets/Mirror/Examples/RigidbodyBenchmark.meta new file mode 100644 index 000000000..c7d4c4304 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f79168ef2e25141fda6648fa738bc0c7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials.meta new file mode 100644 index 000000000..e18c09b3b --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a7c83f59720d4159bc429cffa131504 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat new file mode 100644 index 000000000..e7c7c3d1a --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Floor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.8962264, g: 0.8962264, b: 0.8962264, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat.meta new file mode 100644 index 000000000..3425243ad --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Floor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85f7f8f287aab49ea8e679c9f50a195d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat new file mode 100644 index 000000000..e21471648 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Player + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.3 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat.meta new file mode 100644 index 000000000..0319d8716 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Player.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39b4637f172cd49e3859073b6bbdb7e5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat new file mode 100644 index 000000000..6c821049b --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Server + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.3 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat.meta new file mode 100644 index 000000000..3ed7d7e5d --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Materials/Server.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: afbd8e57822694fa38e586483925e61c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials.meta new file mode 100644 index 000000000..1c910d3b0 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0bfbc3f2c49b14a0597a9dc87ce1af3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial new file mode 100644 index 000000000..8893503b9 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ball + dynamicFriction: 0 + staticFriction: 0 + bounciness: 0.8 + frictionCombine: 0 + bounceCombine: 0 diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial.meta new file mode 100644 index 000000000..8265827c2 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Ball.physicMaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0597114e4b10a4ab3b8d8d07fbaca542 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 13400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial new file mode 100644 index 000000000..6c5fea5e3 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!134 &13400000 +PhysicMaterial: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Floor + dynamicFriction: 0 + staticFriction: 0 + bounciness: 0.8 + frictionCombine: 0 + bounceCombine: 0 diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial.meta new file mode 100644 index 000000000..4206b6b20 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/PhysicMaterials/Floor.physicMaterial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5079c2dafd704093a8f8c67707e13db +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 13400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs.meta new file mode 100644 index 000000000..a67105029 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3195bb8175a02476cb0a64d011069af7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab new file mode 100644 index 000000000..d253bd341 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab @@ -0,0 +1,187 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &698050339555519028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 698050339555519043} + - component: {fileID: 698050339555519036} + - component: {fileID: 698050339555519037} + - component: {fileID: 698050339555519038} + - component: {fileID: 698050339555519039} + - component: {fileID: 698050339555519032} + - component: {fileID: -5502503139843890449} + - component: {fileID: 698050339555519035} + m_Layer: 0 + m_Name: Player Ball + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &698050339555519043 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &698050339555519036 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &698050339555519037 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: bbe2c7293af197640a2b40018e79b9a6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &698050339555519038 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_Material: {fileID: 13400000, guid: f2bb9a8ecc30457468aea7dacef6f5de, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &698050339555519039 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 122 + m_CollisionDetection: 0 +--- !u!114 &698050339555519032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneId: 0 + _assetId: 1309009603 + serverOnly: 0 + visible: 0 + hasSpawned: 0 +--- !u!114 &-5502503139843890449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb803efbe62c34d7baece46c9ffebad9, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 1 + syncMode: 0 + syncInterval: 0 + target: {fileID: 698050339555519043} + clientAuthority: 0 + syncPosition: 1 + syncRotation: 0 + syncScale: 0 + interpolatePosition: 1 + interpolateRotation: 0 + interpolateScale: 0 + sendIntervalMultiplier: 1 + timelineOffset: 1 + showGizmos: 1 + showOverlay: 1 + overlayColor: {r: 0, g: 0, b: 0, a: 0.5} + onlySyncOnChange: 1 + onlySyncOnChangeCorrectionMultiplier: 2 + rotationSensitivity: 0.01 + compressRotation: 0 + positionPrecision: 0.01 + scalePrecision: 0.01 +--- !u!114 &698050339555519035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 698050339555519028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1b468aa0f3779f4b950b7651891cb8c, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 0 + syncMode: 0 + syncInterval: 0.1 + rigidbody3d: {fileID: 698050339555519039} + force: 500 diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab.meta new file mode 100644 index 000000000..a6c4ec2b2 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Player Ball.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f2727d7d9d2ae43dc8757c9c45e889f3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab new file mode 100644 index 000000000..23040d5ff --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab @@ -0,0 +1,188 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3517777692215755533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3517777692215755573} + - component: {fileID: 3517777692215755572} + - component: {fileID: 3517777692215755575} + - component: {fileID: 3517777692215755574} + - component: {fileID: 3517777692215755569} + - component: {fileID: 3517777692215755568} + - component: {fileID: 3517777692215755571} + - component: {fileID: 899092500654627585} + m_Layer: 0 + m_Name: Server Ball + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3517777692215755573 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3517777692215755572 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3517777692215755575 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 84335f003ad8f42408d13787e76d4f94, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &3517777692215755574 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_Material: {fileID: 13400000, guid: f2bb9a8ecc30457468aea7dacef6f5de, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &3517777692215755569 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 122 + m_CollisionDetection: 0 +--- !u!114 &3517777692215755568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneId: 0 + _assetId: 2765676260 + serverOnly: 0 + visible: 0 + hasSpawned: 0 +--- !u!114 &3517777692215755571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb803efbe62c34d7baece46c9ffebad9, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 0 + syncMode: 0 + syncInterval: 0 + target: {fileID: 3517777692215755573} + clientAuthority: 0 + syncPosition: 1 + syncRotation: 0 + syncScale: 0 + interpolatePosition: 1 + interpolateRotation: 0 + interpolateScale: 0 + sendIntervalMultiplier: 1 + timelineOffset: 1 + showGizmos: 0 + showOverlay: 0 + overlayColor: {r: 0, g: 0, b: 0, a: 0.5} + onlySyncOnChange: 1 + onlySyncOnChangeCorrectionMultiplier: 2 + rotationSensitivity: 0.01 + compressRotation: 0 + positionPrecision: 0.01 + scalePrecision: 0.01 +--- !u!114 &899092500654627585 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3517777692215755533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e7cfbc91b3df3449dba2d6585082228e, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 0 + syncMode: 0 + syncInterval: 0 + rigidbody3d: {fileID: 3517777692215755569} + force: 500 + forceProbability: 0.05 diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab.meta new file mode 100644 index 000000000..a0a1f369e --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Prefabs/Server Ball.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d61a7422206054cc8974b0d32ffebef5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes.meta new file mode 100644 index 000000000..4c14ad50b --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e181ca08ae0d74b36a94b158e6e40c62 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity b/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity new file mode 100644 index 000000000..fa2543047 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity @@ -0,0 +1,671 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 1 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 836101366} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &368607347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 368607351} + - component: {fileID: 368607350} + - component: {fileID: 368607349} + - component: {fileID: 368607348} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &368607348 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 368607347} + m_Material: {fileID: 13400000, guid: df195ce493ed09b4c929f832263ba617, type: 2} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &368607349 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 368607347} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 2082151ae101a9445990e8a0fe9142da, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &368607350 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 368607347} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &368607351 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 368607347} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 50, y: 1, z: 50} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &492096633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 492096636} + - component: {fileID: 492096635} + - component: {fileID: 492096637} + - component: {fileID: 492096634} + - component: {fileID: 492096638} + - component: {fileID: 492096639} + m_Layer: 0 + m_Name: NetworkManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &492096634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492096633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b0fecffa3f624585964b0d0eb21b18e, type: 3} + m_Name: + m_EditorClassIdentifier: + port: 7777 + DualMode: 1 + NoDelay: 1 + Interval: 10 + Timeout: 10000 + RecvBufferSize: 7361536 + SendBufferSize: 7361536 + FastResend: 2 + ReceiveWindowSize: 4096 + SendWindowSize: 4096 + MaxRetransmit: 40 + MaximizeSocketBuffers: 1 + ReliableMaxMessageSize: 297433 + UnreliableMaxMessageSize: 1195 + debugLog: 0 + statisticsGUI: 0 + statisticsLog: 0 +--- !u!114 &492096635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492096633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b21e2d778c62d40e69f03e5c9624ddf1, type: 3} + m_Name: + m_EditorClassIdentifier: + dontDestroyOnLoad: 0 + runInBackground: 1 + autoStartServerBuild: 1 + autoConnectClientBuild: 0 + sendRate: 60 + offlineScene: + onlineScene: + transport: {fileID: 492096638} + networkAddress: localhost + maxConnections: 100 + authenticator: {fileID: 0} + playerPrefab: {fileID: 698050339555519028, guid: f2727d7d9d2ae43dc8757c9c45e889f3, + type: 3} + autoCreatePlayer: 1 + playerSpawnMethod: 1 + spawnPrefabs: + - {fileID: 3517777692215755533, guid: d61a7422206054cc8974b0d32ffebef5, type: 3} + snapshotSettings: + bufferTimeMultiplier: 2 + catchupNegativeThreshold: -1 + catchupPositiveThreshold: 1 + catchupSpeed: 0.019999999552965164 + slowdownSpeed: 0.03999999910593033 + driftEmaDuration: 1 + dynamicAdjustment: 1 + dynamicAdjustmentTolerance: 1 + deliveryTimeEmaDuration: 2 + timeInterpolationGui: 1 + spawnPrefab: {fileID: 3517777692215755533, guid: d61a7422206054cc8974b0d32ffebef5, + type: 3} + spawnAmount: 2000 + interleave: 2 +--- !u!4 &492096636 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492096633} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &492096637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492096633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6442dc8070ceb41f094e44de0bf87274, type: 3} + m_Name: + m_EditorClassIdentifier: + offsetX: 0 + offsetY: 0 +--- !u!114 &492096638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492096633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 96b149f511061407fb54895c057b7736, type: 3} + m_Name: + m_EditorClassIdentifier: + wrap: {fileID: 492096634} + jitter: 0 + jitterSpeed: 0 + reliableLatency: 0 + unreliableLoss: 0 + unreliableLatency: 0 + unreliableScramble: 0 +--- !u!114 &492096639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492096633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 39adc6e09d5544ed955a50ce8600355a, type: 3} + m_Name: + m_EditorClassIdentifier: + visRange: 300 + rebuildInterval: 1 + checkMethod: 0 + showSlider: 0 +--- !u!1 &570167411 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 570167412} + - component: {fileID: 570167413} + m_Layer: 0 + m_Name: Player Spawn + m_TagString: Untagged + m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &570167412 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570167411} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -47, y: 0.5, z: -47} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &570167413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570167411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 41f84591ce72545258ea98cb7518d8b9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!850595691 &836101366 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 4 + m_GIWorkflowMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 1 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_PVRTiledBaking: 0 +--- !u!1 &1021102841 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1021102843} + - component: {fileID: 1021102842} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1021102842 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021102841} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.63 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1021102843 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021102841} + m_LocalRotation: {x: 0.53729963, y: 0, z: 0, w: 0.8433915} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 65, y: 0, z: 0} +--- !u!1 &1723209989 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1723209992} + - component: {fileID: 1723209991} + - component: {fileID: 1723209993} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1723209991 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723209989} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.39215687, g: 0.58431375, b: 0.92941177, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1723209992 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723209989} + m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956} + m_LocalPosition: {x: -55.43, y: 5.11, z: -55.43} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} +--- !u!114 &1723209993 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723209989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6635375fbc6be456ea640b75add6378e, type: 3} + m_Name: + m_EditorClassIdentifier: + showGUI: 1 + showLog: 1 diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity.meta new file mode 100644 index 000000000..8ed316ef8 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scenes/RigidbodyBenchmark.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1585faff4c0ab4a6182a0a6846f1c7a5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts.meta new file mode 100644 index 000000000..b86fa2adc --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45cd8fe9d53d041b9903683528d2fdc3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs new file mode 100644 index 000000000..fc7467c04 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace Mirror.Examples.RigidbodyBenchmark +{ + [RequireComponent(typeof(Rigidbody))] + public class AddForce : NetworkBehaviour + { + public Rigidbody rigidbody3d; + public float force = 500f; + + protected override void OnValidate() + { + base.OnValidate(); + rigidbody3d = GetComponent(); + } + + void Update() + { + // do we have authority over this? + if (!rigidbody3d.isKinematic) + { + if (Input.GetKeyDown(KeyCode.Space)) + rigidbody3d.AddForce(Vector3.up * force); + } + } + } +} diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs.meta new file mode 100644 index 000000000..95722e918 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AddForce.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a0e44d14fc08546319793f1932832d13 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs new file mode 100644 index 000000000..0419f2d6b --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs @@ -0,0 +1,32 @@ +using UnityEngine; +using Random = UnityEngine.Random; + +namespace Mirror.Examples.RigidbodyBenchmark +{ + [RequireComponent(typeof(Rigidbody))] + public class AutoForce : NetworkBehaviour + { + public Rigidbody rigidbody3d; + public float force = 500; + public float forceProbability = 0.05f; + + protected override void OnValidate() + { + base.OnValidate(); + rigidbody3d = GetComponent(); + } + + [ServerCallback] + void FixedUpdate() + { + // do we have authority over this? + if (rigidbody3d.isKinematic) return; + + // time to apply force? + if (Random.value < forceProbability * Time.deltaTime) + { + rigidbody3d.AddForce(Vector3.up * force); + } + } + } +} diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs.meta new file mode 100644 index 000000000..cdf8f0c82 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/AutoForce.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e7cfbc91b3df3449dba2d6585082228e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs new file mode 100644 index 000000000..9f05b0c58 --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs @@ -0,0 +1,52 @@ +using UnityEngine; + +namespace Mirror.Examples.RigidbodyBenchmark +{ + [AddComponentMenu("")] + public class RigidbodyBenchmarkNetworkManager : NetworkManager + { + [Header("Spawns")] + public GameObject spawnPrefab; + public int spawnAmount = 2000; + public float interleave = 2; + + void SpawnAll() + { + // calculate sqrt so we can spawn N * N = Amount + float sqrt = Mathf.Sqrt(spawnAmount); + + // calculate spawn xz start positions + // based on spawnAmount * distance + float offset = -sqrt / 2 * interleave; + + // spawn exactly the amount, not one more. + int spawned = 0; + for (int spawnX = 0; spawnX < sqrt; ++spawnX) + { + for (int spawnZ = 0; spawnZ < sqrt; ++spawnZ) + { + // spawn exactly the amount, not any more + // (our sqrt method isn't 100% precise) + if (spawned < spawnAmount) + { + // instantiate & position + GameObject go = Instantiate(spawnPrefab); + float x = offset + spawnX * interleave; + float z = offset + spawnZ * interleave; + go.transform.position = new Vector3(x, 0, z); + + // spawn + NetworkServer.Spawn(go); + ++spawned; + } + } + } + } + + public override void OnStartServer() + { + base.OnStartServer(); + SpawnAll(); + } + } +} diff --git a/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs.meta b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs.meta new file mode 100644 index 000000000..7b5ef66dc --- /dev/null +++ b/Assets/Mirror/Examples/RigidbodyBenchmark/Scripts/RigidbodyBenchmarkNetworkManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b21e2d778c62d40e69f03e5c9624ddf1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: