Browse Source

获取某个物体的实际Bounds 参数

DGJ 1 year ago
parent
commit
9f23d56efe

+ 851 - 0
Assets/Scenes/Test.unity

@@ -0,0 +1,851 @@
+%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: 0
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+  m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 12
+  m_GIWorkflowMode: 1
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 1
+    m_EnableRealtimeLightmaps: 0
+  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: 512
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 256
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 1
+    m_PVRDenoiserTypeDirect: 1
+    m_PVRDenoiserTypeIndirect: 1
+    m_PVRDenoiserTypeAO: 1
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 1
+    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: 0}
+--- !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 &32429158
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 32429160}
+  - component: {fileID: 32429159}
+  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 &32429159
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 32429158}
+  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: 1
+    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 &32429160
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 32429158}
+  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+  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: 50, y: -30, z: 0}
+--- !u!1 &731835868
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 731835869}
+  - component: {fileID: 731835872}
+  - component: {fileID: 731835871}
+  - component: {fileID: 731835870}
+  m_Layer: 0
+  m_Name: Cube (4)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &731835869
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 731835868}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -1.35, y: -2.82, z: 0.332}
+  m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1724059286}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &731835870
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 731835868}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &731835871
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 731835868}
+  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: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  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 &731835872
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 731835868}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &871621090
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 871621091}
+  - component: {fileID: 871621094}
+  - component: {fileID: 871621093}
+  - component: {fileID: 871621092}
+  m_Layer: 0
+  m_Name: Cube (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &871621091
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 871621090}
+  m_LocalRotation: {x: 0, y: 0.5, z: 0, w: 0.8660254}
+  m_LocalPosition: {x: -1.421, y: -2.45, z: 0.60002637}
+  m_LocalScale: {x: 1.0647893, y: 0.1, z: 0.1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1724059286}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 60, z: 0}
+--- !u!65 &871621092
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 871621090}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &871621093
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 871621090}
+  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: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  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 &871621094
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 871621090}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &979740876
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 979740877}
+  - component: {fileID: 979740880}
+  - component: {fileID: 979740879}
+  - component: {fileID: 979740878}
+  m_Layer: 0
+  m_Name: Cube (3)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &979740877
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 979740876}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -2.0666451, y: -2.8709998, z: 0.60002637}
+  m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1724059286}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &979740878
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 979740876}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &979740879
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 979740876}
+  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: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  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 &979740880
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 979740876}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1304086864
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1304086865}
+  - component: {fileID: 1304086868}
+  - component: {fileID: 1304086867}
+  - component: {fileID: 1304086866}
+  m_Layer: 0
+  m_Name: Cube (2)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1304086865
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1304086864}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -2.0666451, y: -2.25, z: 0.08282387}
+  m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1724059286}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &1304086866
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1304086864}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1304086867
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1304086864}
+  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: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  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 &1304086868
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1304086864}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1724059283
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1724059286}
+  - component: {fileID: 1724059285}
+  - component: {fileID: 1724059284}
+  m_Layer: 0
+  m_Name: GameObject
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1724059284
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1724059283}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3aaad7b79ebd7f344a22da10933f224e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!65 &1724059285
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1724059283}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!4 &1724059286
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1724059283}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -5.01, y: 0.88, z: 2.1}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 1868499534}
+  - {fileID: 871621091}
+  - {fileID: 1304086865}
+  - {fileID: 979740877}
+  - {fileID: 731835869}
+  m_Father: {fileID: 0}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1868499533
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1868499534}
+  - component: {fileID: 1868499537}
+  - component: {fileID: 1868499536}
+  - component: {fileID: 1868499535}
+  m_Layer: 0
+  m_Name: Cube
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1868499534
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1868499533}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -4.6289997, y: -2.66, z: 0.60002637}
+  m_LocalScale: {x: 0.69928, y: 0.1, z: 0.1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1724059286}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!65 &1868499535
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1868499533}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1868499536
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1868499533}
+  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: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  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 &1868499537
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1868499533}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1923230328
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1923230331}
+  - component: {fileID: 1923230330}
+  - component: {fileID: 1923230329}
+  m_Layer: 0
+  m_Name: Main Camera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!81 &1923230329
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1923230328}
+  m_Enabled: 1
+--- !u!20 &1923230330
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1923230328}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  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 &1923230331
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1923230328}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 1, z: -10}
+  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}

+ 7 - 0
Assets/Scenes/Test.unity.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b7addf1b96638d34a9727365b0575c23
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 264 - 0
Assets/Scripts/GetAllBounds.cs

@@ -0,0 +1,264 @@
+
+using UnityEngine;
+/// <summary>
+///  获取某一物体的实际Bounds  参数
+///  
+///  
+/// </summary>
+public class GetAllBounds
+{
+   public static Bounds GetRendererBounds( GameObject obj)
+    {
+        Renderer[] renderers = obj.GetComponentsInChildren<Renderer>();
+       
+        Bounds bounds = new Bounds(Vector3.zero, Vector3.zero);
+        if (renderers.Length < 1)
+            return bounds;
+        bounds = new Bounds(renderers[0].transform.position, Vector3.zero);
+        float maxX = renderers[0].transform.position.x + renderers[0].bounds.size.x / 2.0f;
+        float minX = renderers[0].transform.position.x - renderers[0].bounds.size.x / 2.0f;
+        float maxY = renderers[0].transform.position.y + renderers[0].bounds.size.y / 2.0f;
+        float minY = renderers[0].transform.position.y - renderers[0].bounds.size.y / 2.0f;
+        float maxZ = renderers[0].transform.position.z + renderers[0].bounds.size.z / 2.0f;
+        float minZ = renderers[0].transform.position.z - renderers[0].bounds.size.z / 2.0f;
+
+        foreach (Renderer renderer in renderers)
+        {
+            bounds.Encapsulate(renderer.bounds);
+
+            if (maxX < renderer.transform.position.x + renderer.bounds.size.x / 2.0f)
+                maxX = renderer.transform.position.x + renderer.bounds.size.x / 2.0f;
+            if (minX > renderer.transform.position.x - renderer.bounds.size.x / 2.0f)
+                minX = renderer.transform.position.x - renderer.bounds.size.x / 2.0f;
+
+            if (maxY < renderer.transform.position.y + renderer.bounds.size.y / 2.0f)
+                maxY = renderer.transform.position.y + renderer.bounds.size.y / 2.0f;
+            if (minY > renderer.transform.position.y - renderer.bounds.size.y / 2.0f)
+                minY = renderer.transform.position.y - renderer.bounds.size.y / 2.0f;
+
+            if (maxZ < renderer.transform.position.z + renderer.bounds.size.z / 2.0f)
+                maxZ = renderer.transform.position.z + renderer.bounds.size.z / 2.0f;
+            if (minZ > renderer.transform.position.z - renderer.bounds.size.z / 2.0f)
+                minZ = renderer.transform.position.z - renderer.bounds.size.z / 2.0f;
+        }
+        bounds.center = new Vector3(maxX - (maxX - minX) / 2.0f, maxY - (maxY - minY) / 2.0f, maxZ - (maxZ - minZ) / 2.0f);
+        return bounds;
+    }
+
+    public static Bounds GetMeshFiletBounds(GameObject obj)
+    {
+        MeshFilter[] meshFilters = obj.GetComponentsInChildren<MeshFilter>();
+        Bounds bounds = new Bounds(Vector3.zero, Vector3.zero);
+        if (meshFilters.Length < 1)
+            return bounds;
+        bounds = new Bounds(meshFilters[0].transform.position, Vector3.zero);
+        Bounds meshBounds = GetMeshBounds(meshFilters[0].gameObject, meshFilters[0].mesh);
+        float maxX = meshFilters[0].transform.position.x + meshBounds.size.x / 2.0f;
+        float minX = meshFilters[0].transform.position.x - meshBounds.size.x / 2.0f;
+        float maxY = meshFilters[0].transform.position.y + meshBounds.size.y / 2.0f;
+        float minY = meshFilters[0].transform.position.y - meshBounds.size.y / 2.0f;
+        float maxZ = meshFilters[0].transform.position.z + meshBounds.size.z / 2.0f;
+        float minZ = meshFilters[0].transform.position.z - meshBounds.size.z / 2.0f;
+
+        foreach (MeshFilter meshFilter in meshFilters)
+        {
+            meshBounds = GetMeshBounds(meshFilter.gameObject, meshFilter.mesh);
+            bounds.Encapsulate(meshBounds);
+
+            if (maxX < meshFilter.transform.position.x + meshBounds.size.x / 2.0f)
+                maxX = meshFilter.transform.position.x + meshBounds.size.x / 2.0f;
+            if (minX > meshFilter.transform.position.x - meshBounds.size.x / 2.0f)
+                minX = meshFilter.transform.position.x - meshBounds.size.x / 2.0f;
+
+            if (maxY < meshFilter.transform.position.y + meshBounds.size.y / 2.0f)
+                maxY = meshFilter.transform.position.y + meshBounds.size.y / 2.0f;
+            if (minY > meshFilter.transform.position.y - meshBounds.size.y / 2.0f)
+                minY = meshFilter.transform.position.y - meshBounds.size.y / 2.0f;
+
+            if (maxZ < meshFilter.transform.position.z + meshBounds.size.z / 2.0f)
+                maxZ = meshFilter.transform.position.z + meshBounds.size.z / 2.0f;
+            if (minZ > meshFilter.transform.position.z - meshBounds.size.z / 2.0f)
+                minZ = meshFilter.transform.position.z - meshBounds.size.z / 2.0f;
+        }
+        bounds.center = new Vector3(maxX - (maxX - minX) / 2.0f, maxY - (maxY - minY) / 2.0f, maxZ - (maxZ - minZ) / 2.0f);
+        return bounds;
+    }
+
+    public static Bounds GetSkinnedMeshBounds(GameObject obj)
+    {
+        SkinnedMeshRenderer[] skinnedMeshRenderers = obj.GetComponentsInChildren<SkinnedMeshRenderer>();
+        Bounds bounds = new Bounds(Vector3.zero, Vector3.zero);
+        if (skinnedMeshRenderers.Length < 1)
+            return bounds;
+        Mesh mesh = new Mesh();
+        skinnedMeshRenderers[0].BakeMesh(mesh);
+        bounds = new Bounds(skinnedMeshRenderers[0].transform.position, Vector3.zero);
+        Bounds meshBounds = GetMeshBounds(skinnedMeshRenderers[0].gameObject, mesh);
+        float maxX = skinnedMeshRenderers[0].transform.position.x + meshBounds.size.x / 2.0f;
+        float minX = skinnedMeshRenderers[0].transform.position.x - meshBounds.size.x / 2.0f;
+        float maxY = skinnedMeshRenderers[0].transform.position.y + meshBounds.size.y / 2.0f;
+        float minY = skinnedMeshRenderers[0].transform.position.y - meshBounds.size.y / 2.0f;
+        float maxZ = skinnedMeshRenderers[0].transform.position.z + meshBounds.size.z / 2.0f;
+        float minZ = skinnedMeshRenderers[0].transform.position.z - meshBounds.size.z / 2.0f;
+
+        foreach (SkinnedMeshRenderer skinnedRenderer in skinnedMeshRenderers)
+        {
+            skinnedRenderer.BakeMesh(mesh);
+            meshBounds = GetMeshBounds(skinnedRenderer.gameObject, mesh);
+            bounds.Encapsulate(meshBounds);
+
+            if (maxX < skinnedRenderer.transform.position.x + meshBounds.size.x / 2.0f)
+                maxX = skinnedRenderer.transform.position.x + meshBounds.size.x / 2.0f;
+            if (minX > skinnedRenderer.transform.position.x - meshBounds.size.x / 2.0f)
+                minX = skinnedRenderer.transform.position.x - meshBounds.size.x / 2.0f;
+
+            if (maxY < skinnedRenderer.transform.position.y + meshBounds.size.y / 2.0f)
+                maxY = skinnedRenderer.transform.position.y + meshBounds.size.y / 2.0f;
+            if (minY > skinnedRenderer.transform.position.y - meshBounds.size.y / 2.0f)
+                minY = skinnedRenderer.transform.position.y - meshBounds.size.y / 2.0f;
+
+            if (maxZ < skinnedRenderer.transform.position.z + meshBounds.size.z / 2.0f)
+                maxZ = skinnedRenderer.transform.position.z + meshBounds.size.z / 2.0f;
+            if (minZ > skinnedRenderer.transform.position.z - meshBounds.size.z / 2.0f)
+                minZ = skinnedRenderer.transform.position.z - meshBounds.size.z / 2.0f;
+        }
+        bounds.center = new Vector3(maxX - (maxX - minX) / 2.0f, maxY - (maxY - minY) / 2.0f, maxZ - (maxZ - minZ) / 2.0f);
+        return bounds;
+    }
+
+    public static Bounds GetAllObjectBounds(GameObject obj)
+    {
+        Renderer[] renderers = obj.GetComponentsInChildren<Renderer>();
+        MeshFilter[] meshFilters = obj.GetComponentsInChildren<MeshFilter>();
+        Bounds meshBounds = new Bounds(Vector3.zero,Vector3.zero);
+        SkinnedMeshRenderer[] skinnedMeshRenderers = obj.GetComponentsInChildren<SkinnedMeshRenderer>();
+        Mesh mesh = new Mesh();
+
+        Bounds bounds = new Bounds(Vector3.zero, Vector3.zero);
+        float maxX;
+        float minX;
+        float maxY;
+        float minY;
+        float maxZ;
+        float minZ;
+        if (renderers.Length>0)
+        {
+            bounds = new Bounds(renderers[0].transform.position, Vector3.zero);
+            maxX = renderers[0].transform.position.x + renderers[0].bounds.size.x / 2.0f;
+            minX = renderers[0].transform.position.x - renderers[0].bounds.size.x / 2.0f;
+            maxY = renderers[0].transform.position.y + renderers[0].bounds.size.y / 2.0f;
+            minY = renderers[0].transform.position.y - renderers[0].bounds.size.y / 2.0f;
+            maxZ = renderers[0].transform.position.z + renderers[0].bounds.size.z / 2.0f;
+            minZ = renderers[0].transform.position.z - renderers[0].bounds.size.z / 2.0f;
+        }
+        else if( meshFilters.Length>0)
+        {
+            bounds = new Bounds(meshFilters[0].transform.position, Vector3.zero);
+            meshBounds = GetMeshBounds(meshFilters[0].gameObject, meshFilters[0].mesh);
+            maxX = meshFilters[0].transform.position.x + meshBounds.size.x / 2.0f;
+            minX = meshFilters[0].transform.position.x - meshBounds.size.x / 2.0f;
+            maxY = meshFilters[0].transform.position.y + meshBounds.size.y / 2.0f;
+            minY = meshFilters[0].transform.position.y - meshBounds.size.y / 2.0f;
+            maxZ = meshFilters[0].transform.position.z + meshBounds.size.z / 2.0f;
+            minZ = meshFilters[0].transform.position.z - meshBounds.size.z / 2.0f;
+        }
+        else if( skinnedMeshRenderers.Length>0)
+        {
+            skinnedMeshRenderers[0].BakeMesh(mesh);
+            meshBounds = GetMeshBounds(skinnedMeshRenderers[0].gameObject, mesh);
+            maxX = skinnedMeshRenderers[0].transform.position.x + meshBounds.size.x / 2.0f;
+            minX = skinnedMeshRenderers[0].transform.position.x - meshBounds.size.x / 2.0f;
+            maxY = skinnedMeshRenderers[0].transform.position.y + meshBounds.size.y / 2.0f;
+            minY = skinnedMeshRenderers[0].transform.position.y - meshBounds.size.y / 2.0f;
+            maxZ = skinnedMeshRenderers[0].transform.position.z + meshBounds.size.z / 2.0f;
+            minZ = skinnedMeshRenderers[0].transform.position.z - meshBounds.size.z / 2.0f;
+        }
+        else
+        {
+            return bounds;
+        }
+      
+
+        foreach (Renderer renderer in renderers)
+        {
+            bounds.Encapsulate(renderer.bounds);
+
+            if (maxX < renderer.transform.position.x + renderer.bounds.size.x / 2.0f)
+                maxX = renderer.transform.position.x + renderer.bounds.size.x / 2.0f;
+            if (minX > renderer.transform.position.x - renderer.bounds.size.x / 2.0f)
+                minX = renderer.transform.position.x - renderer.bounds.size.x / 2.0f;
+
+            if (maxY < renderer.transform.position.y + renderer.bounds.size.y / 2.0f)
+                maxY = renderer.transform.position.y + renderer.bounds.size.y / 2.0f;
+            if (minY > renderer.transform.position.y - renderer.bounds.size.y / 2.0f)
+                minY = renderer.transform.position.y - renderer.bounds.size.y / 2.0f;
+
+            if (maxZ < renderer.transform.position.z + renderer.bounds.size.z / 2.0f)
+                maxZ = renderer.transform.position.z + renderer.bounds.size.z / 2.0f;
+            if (minZ > renderer.transform.position.z - renderer.bounds.size.z / 2.0f)
+                minZ = renderer.transform.position.z - renderer.bounds.size.z / 2.0f;
+        }
+
+        foreach (MeshFilter meshFilter in meshFilters)
+        {
+            meshBounds = GetMeshBounds(meshFilter.gameObject, meshFilter.mesh);
+            bounds.Encapsulate(meshBounds);
+
+            if (maxX < meshFilter.transform.position.x + meshBounds.size.x / 2.0f)
+                maxX = meshFilter.transform.position.x + meshBounds.size.x / 2.0f;
+            if (minX > meshFilter.transform.position.x - meshBounds.size.x / 2.0f)
+                minX = meshFilter.transform.position.x - meshBounds.size.x / 2.0f;
+
+            if (maxY < meshFilter.transform.position.y + meshBounds.size.y / 2.0f)
+                maxY = meshFilter.transform.position.y + meshBounds.size.y / 2.0f;
+            if (minY > meshFilter.transform.position.y - meshBounds.size.y / 2.0f)
+                minY = meshFilter.transform.position.y - meshBounds.size.y / 2.0f;
+
+            if (maxZ < meshFilter.transform.position.z + meshBounds.size.z / 2.0f)
+                maxZ = meshFilter.transform.position.z + meshBounds.size.z / 2.0f;
+            if (minZ > meshFilter.transform.position.z - meshBounds.size.z / 2.0f)
+                minZ = meshFilter.transform.position.z - meshBounds.size.z / 2.0f;
+        }
+
+        foreach (SkinnedMeshRenderer skinnedRenderer in skinnedMeshRenderers)
+        {
+            skinnedRenderer.BakeMesh(mesh);
+            meshBounds = GetMeshBounds(skinnedRenderer.gameObject, mesh);
+            bounds.Encapsulate(meshBounds);
+
+            if (maxX < skinnedRenderer.transform.position.x + meshBounds.size.x / 2.0f)
+                maxX = skinnedRenderer.transform.position.x + meshBounds.size.x / 2.0f;
+            if (minX > skinnedRenderer.transform.position.x - meshBounds.size.x / 2.0f)
+                minX = skinnedRenderer.transform.position.x - meshBounds.size.x / 2.0f;
+
+            if (maxY < skinnedRenderer.transform.position.y + meshBounds.size.y / 2.0f)
+                maxY = skinnedRenderer.transform.position.y + meshBounds.size.y / 2.0f;
+            if (minY > skinnedRenderer.transform.position.y - meshBounds.size.y / 2.0f)
+                minY = skinnedRenderer.transform.position.y - meshBounds.size.y / 2.0f;
+
+            if (maxZ < skinnedRenderer.transform.position.z + meshBounds.size.z / 2.0f)
+                maxZ = skinnedRenderer.transform.position.z + meshBounds.size.z / 2.0f;
+            if (minZ > skinnedRenderer.transform.position.z - meshBounds.size.z / 2.0f)
+                minZ = skinnedRenderer.transform.position.z - meshBounds.size.z / 2.0f;
+        }
+
+        bounds.center = new Vector3(maxX - (maxX - minX) / 2.0f, maxY - (maxY - minY) / 2.0f, maxZ - (maxZ - minZ) / 2.0f);
+        return bounds;
+    }
+
+    private static Bounds GetMeshBounds(GameObject gameObject, Mesh mesh)
+    {
+        Bounds bounds = new Bounds();
+        Vector3[] vertices = mesh.vertices;
+        if (vertices.Length != 0)
+        {
+            bounds = new Bounds(gameObject.transform.TransformPoint(vertices[0]), Vector3.zero);
+            for (int index = 1; index < vertices.Length; ++index)
+                bounds.Encapsulate(gameObject.transform.TransformPoint(vertices[index]));
+        }
+
+        return bounds;
+    }
+
+  
+}

+ 11 - 0
Assets/Scripts/GetAllBounds.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 412c5a3806c788c48b0113766c47256d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 18 - 0
Assets/Scripts/TestBox.cs

@@ -0,0 +1,18 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class TestBox : MonoBehaviour
+{
+    private void Start()
+    {
+     Bounds bounds =  GetAllBounds.GetRendererBounds(gameObject);
+        GameObject obj = new GameObject("Test");
+        obj.transform.position = bounds.center;
+        obj.AddComponent<BoxCollider>().size = bounds.size;
+       // GetComponent<BoxCollider>().center = bounds.center - transform.position;
+        GetComponent<BoxCollider>().size = bounds.size;
+
+    }
+
+}

+ 11 - 0
Assets/Scripts/TestBox.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3aaad7b79ebd7f344a22da10933f224e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: