diff --git a/Assets/Scenes/BobberTest.unity b/Assets/Scenes/BobberTest.unity index 377e2c1dc..190dd263e 100644 --- a/Assets/Scenes/BobberTest.unity +++ b/Assets/Scenes/BobberTest.unity @@ -714,7 +714,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!64 &668361901 MeshCollider: m_ObjectHideFlags: 0 @@ -839,6 +839,51 @@ Transform: m_Children: [] m_Father: {fileID: 1676957643} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!1 &820800908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 820800910} + - component: {fileID: 820800909} + m_Layer: 0 + m_Name: WaterProvider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &820800909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 820800908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06d107cece7c4cbb9825557923be567f, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::BuoyancyWaterProvider + waterLevel: 0 +--- !u!4 &820800910 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 820800908} + serializedVersion: 2 + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &844322797 GameObject: m_ObjectHideFlags: 0 @@ -1005,7 +1050,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 2147483647 - m_IsActive: 1 + m_IsActive: 0 --- !u!154 &909052970 TerrainCollider: m_ObjectHideFlags: 0 @@ -2970,7 +3015,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4753644045374711} - - component: {fileID: 136773376048481711} m_Layer: 0 m_Name: _body m_TagString: Untagged @@ -3005,7 +3049,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4250003575048753} - - component: {fileID: 136450086866505322} m_Layer: 0 m_Name: _stick m_TagString: Untagged @@ -3200,52 +3243,37 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1938556731102199} m_Mesh: {fileID: 4300000, guid: 77d4b5d6e9e84794383ac9531cb04cae, type: 2} ---- !u!136 &136450086866505322 -CapsuleCollider: +--- !u!4 &41383484053585886 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1956873481719066} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 + m_GameObject: {fileID: 6280423383106253057} serializedVersion: 2 - m_Radius: 0.001 - m_Height: 0.06766828 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!136 &136773376048481711 -CapsuleCollider: + 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: 584816677121546027} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!1 &167656693566734254 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1893892402371954} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.0034 - m_Height: 0.04 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9066712976035742038} + m_Layer: 0 + m_Name: _topConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!114 &269011904976577378 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3276,6 +3304,21 @@ MonoBehaviour: RefIds: - rid: -2 type: {class: , ns: , asm: } +--- !u!4 &269017554130809855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8188637675592362683} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0415, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 584816677121546027} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!114 &309487077947173374 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3293,6 +3336,71 @@ MonoBehaviour: topConnector: {fileID: 4466248854207531} bottomConnector: {fileID: 4064788320456926} waterline: {fileID: 4902566405131541} +--- !u!4 &389927712696538647 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8129510738604895356} + serializedVersion: 2 + m_LocalRotation: {x: 0.4698567, y: 0, z: 0, w: 0.8827427} + m_LocalPosition: {x: 1, y: 1.08, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 584816677121546027} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 56.05, y: 0, z: 0} +--- !u!23 &398636765974200556 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6280423383106253057} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7881e4598f2626c4a8ffb3e956070a4b, type: 2} + - {fileID: 2100000, guid: 940b6068f71807340a836245c4bbcb7e, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &510414306652611078 Transform: m_ObjectHideFlags: 0 @@ -3308,6 +3416,42 @@ Transform: m_Children: [] m_Father: {fileID: 7195797433903099932} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &530731981639178553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9204150256481453776} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.033460047, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 584816677121546027} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &584816677121546027 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4021168644610805053} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.04, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 41383484053585886} + - {fileID: 9066712976035742038} + - {fileID: 5901816832231670898} + - {fileID: 869141368029001109} + - {fileID: 269017554130809855} + - {fileID: 530731981639178553} + m_Father: {fileID: 389927712696538647} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!223 &629080170150445082 Canvas: m_ObjectHideFlags: 0 @@ -3401,6 +3545,21 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!4 &869141368029001109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2834281524933038866} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0295, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 584816677121546027} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1 &1065788238234039155 GameObject: m_ObjectHideFlags: 0 @@ -3513,10 +3672,25 @@ RectTransform: m_Father: {fileID: 2256579932936496278} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 0.2, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!4 &1159196036679945669 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8040762699284656957} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.055, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7338767763573152696} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!4 &1291580890895649287 Transform: m_ObjectHideFlags: 0 @@ -3549,6 +3723,22 @@ Transform: - {fileID: 1345161124} m_Father: {fileID: 3347216226615520232} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1332661049252743747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7681078425349166506} + m_Layer: 0 + m_Name: _stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!114 &1471384148769986650 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3652,6 +3842,49 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 0 +--- !u!54 &1840670279898142899 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095571565886628079} + serializedVersion: 5 + m_Mass: 0.1 + m_LinearDamping: 0.1 + m_AngularDamping: 0.1 + m_CenterOfMass: {x: 0, y: 0.03, z: 0} + m_InertiaTensor: {x: 0.001, y: 0.001, z: 0.001} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 0 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 0 + m_CollisionDetection: 1 +--- !u!1 &2046542269883901480 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7961972470609608556} + m_Layer: 0 + m_Name: _waterline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1001 &2066873170891308496 PrefabInstance: m_ObjectHideFlags: 0 @@ -3735,6 +3968,56 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &2095571565886628079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7542518911993633412} + - component: {fileID: 1840670279898142899} + - component: {fileID: 2343505271588303845} + - component: {fileID: 7542518911993633413} + m_Layer: 16 + m_Name: Float (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!33 &2096859472366292387 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4246241372715793810} + m_Mesh: {fileID: 4300000, guid: 77d4b5d6e9e84794383ac9531cb04cae, type: 2} +--- !u!136 &2238779523277448163 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9204150256481453776} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 0 + serializedVersion: 2 + m_Radius: 0.001 + m_Height: 0.06766828 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} --- !u!224 &2256579932936496278 RectTransform: m_ObjectHideFlags: 0 @@ -3763,6 +4046,29 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6260237052217873599} m_CullTransparentMesh: 1 +--- !u!136 &2343505271588303845 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095571565886628079} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.004 + m_Height: 0.025 + m_Direction: 1 + m_Center: {x: 0, y: 0.04, z: 0} --- !u!114 &2358608343594615569 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3795,6 +4101,22 @@ Transform: m_Children: [] m_Father: {fileID: 3347216226615520232} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2466777408151505905 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4333116976202729697} + m_Layer: 0 + m_Name: _bottomConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!114 &2531380344179187550 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4154,7 +4476,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!1 &2575899344989503316 GameObject: m_ObjectHideFlags: 0 @@ -4252,6 +4574,39 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2834281524933038866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 869141368029001109} + m_Layer: 0 + m_Name: _body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2958907248619857825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6488326274017591726} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3e885da772834bb289c2368be2f6eb5b, type: 3} + m_Name: + m_EditorClassIdentifier: + body: {fileID: 7046702632142338310} + stick: {fileID: 7681078425349166506} + topConnector: {fileID: 1159196036679945669} + bottomConnector: {fileID: 4333116976202729697} + waterline: {fileID: 7961972470609608556} --- !u!1 &3062767698477047043 GameObject: m_ObjectHideFlags: 0 @@ -4827,6 +5182,24 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c26fe2b4fef6c484089497b549dd6b04, type: 3} +--- !u!1 &4021168644610805053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 584816677121546027} + - component: {fileID: 4959874663812492082} + - component: {fileID: 4959874663812492083} + m_Layer: 0 + m_Name: bob_25002 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &4066733549998169382 GameObject: m_ObjectHideFlags: 0 @@ -4859,8 +5232,8 @@ RectTransform: m_Children: [] m_Father: {fileID: 4262266657851529727} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMin: {x: 0.2, y: 0} + m_AnchorMax: {x: 0.2, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 20, y: 0} m_Pivot: {x: 0.5, y: 0.5} @@ -4881,6 +5254,24 @@ MonoBehaviour: _Material: {fileID: 0} _BelowSurfaceMaterial: {fileID: 0} _VolumeMaterial: {fileID: 0} +--- !u!1 &4246241372715793810 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7878523915952501581} + - component: {fileID: 2096859472366292387} + - component: {fileID: 7515693914261408895} + m_Layer: 0 + m_Name: _mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!224 &4262266657851529727 RectTransform: m_ObjectHideFlags: 0 @@ -4909,6 +5300,21 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8737220161078195139} m_CullTransparentMesh: 1 +--- !u!4 &4333116976202729697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2466777408151505905} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.00002, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7338767763573152696} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!222 &4334316862751883177 CanvasRenderer: m_ObjectHideFlags: 0 @@ -5045,6 +5451,30 @@ Transform: - {fileID: 3430072966807144692} m_Father: {fileID: 5388330205210097294} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4772159711372274701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8129510738604895356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f273ba33ebe49cd8b31b92db8288a90, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Buoyancy + _water: {fileID: 2531380344179187550} + includeDeformation: 1 + sphereRadiusApproximation: 0.1 + waveForceMultiplier: 0.01 + currentSpeedMultiplier: 0.01 + dragMultiplier: 1 + defaultRigidbodyDrag: 5 + underwaterRigidbodyAngularDrag: 5 + overwaterRigidbodyAngularDrag: 1 + surfaceTensionDamping: 10 + applyForceWithRandomOffset: 0 + drawDebug: 1 --- !u!1001 &4903999546382904164 PrefabInstance: m_ObjectHideFlags: 0 @@ -5102,6 +5532,46 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5e01cffb9e8324147affb8e08fd5ed13, type: 3} +--- !u!114 &4959874663812492082 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4021168644610805053} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3e885da772834bb289c2368be2f6eb5b, type: 3} + m_Name: + m_EditorClassIdentifier: + body: {fileID: 869141368029001109} + stick: {fileID: 530731981639178553} + topConnector: {fileID: 9066712976035742038} + bottomConnector: {fileID: 5901816832231670898} + waterline: {fileID: 269017554130809855} +--- !u!136 &4959874663812492083 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4021168644610805053} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.003 + m_Height: 0.04 + m_Direction: 1 + m_Center: {x: 0, y: 0.05, z: 0} --- !u!224 &5096569463460343103 RectTransform: m_ObjectHideFlags: 0 @@ -5187,6 +5657,22 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &5372866695071686529 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7046702632142338310} + m_Layer: 0 + m_Name: _body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!114 &5379033684082313598 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5382,6 +5868,22 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &5764296597173438306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5901816832231670898} + m_Layer: 0 + m_Name: _bottomConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!33 &5777952278598528620 MeshFilter: m_ObjectHideFlags: 0 @@ -5432,6 +5934,21 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1065788238234039155} m_CullTransparentMesh: 1 +--- !u!4 &5901816832231670898 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5764296597173438306} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.00002, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 584816677121546027} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!114 &6135364979465448005 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5498,6 +6015,24 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &6280423383106253057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 41383484053585886} + - component: {fileID: 8132567827201524016} + - component: {fileID: 398636765974200556} + m_Layer: 0 + m_Name: _mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &6374285101834327718 GameObject: m_ObjectHideFlags: 0 @@ -5588,6 +6123,23 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 25} m_Pivot: {x: 0.5, y: 0.25} +--- !u!1 &6488326274017591726 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7338767763573152696} + - component: {fileID: 2958907248619857825} + m_Layer: 0 + m_Name: bob_25002 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &6871473421737383571 GameObject: m_ObjectHideFlags: 0 @@ -5623,6 +6175,21 @@ MonoBehaviour: _IsLocal: 0 _Velocity: {x: -5, y: 0, z: 0} _AngularVelocity: {x: 0, y: 0, z: 0} +--- !u!4 &7046702632142338310 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5372866695071686529} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0295, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7338767763573152696} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1 &7126023296560485276 GameObject: m_ObjectHideFlags: 0 @@ -5663,6 +6230,27 @@ Transform: - {fileID: 1529912228} m_Father: {fileID: 5388330205210097294} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &7338767763573152696 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6488326274017591726} + serializedVersion: 2 + 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: + - {fileID: 7878523915952501581} + - {fileID: 1159196036679945669} + - {fileID: 4333116976202729697} + - {fileID: 7046702632142338310} + - {fileID: 7961972470609608556} + - {fileID: 7681078425349166506} + m_Father: {fileID: 7542518911993633412} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1001 &7347139586361227608 PrefabInstance: m_ObjectHideFlags: 0 @@ -5752,6 +6340,95 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6871473421737383571} m_CullTransparentMesh: 1 +--- !u!23 &7515693914261408895 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4246241372715793810} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7881e4598f2626c4a8ffb3e956070a4b, type: 2} + - {fileID: 2100000, guid: 940b6068f71807340a836245c4bbcb7e, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &7542518911993633412 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095571565886628079} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 1, y: 1.08, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7338767763573152696} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!114 &7542518911993633413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2095571565886628079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f273ba33ebe49cd8b31b92db8288a90, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Buoyancy + _water: {fileID: 2531380344179187550} + includeDeformation: 1 + sphereRadiusApproximation: 0.25 + waveForceMultiplier: 1 + currentSpeedMultiplier: 1 + dragMultiplier: 1 + defaultRigidbodyDrag: 0.1 + underwaterRigidbodyAngularDrag: 1 + overwaterRigidbodyAngularDrag: 0.05 + surfaceTensionDamping: 10 + applyForceWithRandomOffset: 0 + drawDebug: 0 --- !u!114 &7647511515837834160 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5766,79 +6443,67 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::NBF.LureController rBody: {fileID: 8093361435069273870} joint: {fileID: 8264839114692736908} ---- !u!1001 &7909769884836788113 -PrefabInstance: +--- !u!4 &7681078425349166506 +Transform: m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1332661049252743747} serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1840670280526439345, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_UseGravity - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2095571566598544365, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_Name - value: Float (4) - objectReference: {fileID: 0} - - target: {fileID: 2095571566598544365, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3458544836024540060, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: _water - value: - objectReference: {fileID: 2531380344179187550} - - target: {fileID: 3458544836024540060, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: drawDebug - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalPosition.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalPosition.y - value: 1.08 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalRotation.w - value: 0.8827427 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalRotation.x - value: 0.4698567 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 56.05 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7542518912372236678, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 68d702ab1637e634e9217435fac83d3c, type: 3} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.033460047, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7338767763573152696} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &7878523915952501581 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4246241372715793810} + serializedVersion: 2 + 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: 7338767763573152696} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!4 &7961972470609608556 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046542269883901480} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.0415, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7338767763573152696} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!1 &8040762699284656957 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1159196036679945669} + m_Layer: 0 + m_Name: _topConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!54 &8093361435069273870 Rigidbody: m_ObjectHideFlags: 0 @@ -5875,9 +6540,9 @@ Rigidbody: m_GameObject: {fileID: 8112599368562234729} serializedVersion: 5 m_Mass: 0.1 - m_LinearDamping: 5 + m_LinearDamping: 0.1 m_AngularDamping: 0.1 - m_CenterOfMass: {x: 0, y: 0, z: 0} + m_CenterOfMass: {x: 0, y: 0.03, z: 0} m_InertiaTensor: {x: 0.001, y: 0.001, z: 0.001} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} m_IncludeLayers: @@ -5886,13 +6551,13 @@ Rigidbody: m_ExcludeLayers: serializedVersion: 2 m_Bits: 0 - m_ImplicitCom: 1 - m_ImplicitTensor: 0 - m_UseGravity: 0 + m_ImplicitCom: 0 + m_ImplicitTensor: 1 + m_UseGravity: 1 m_IsKinematic: 0 - m_Interpolate: 0 + m_Interpolate: 1 m_Constraints: 0 - m_CollisionDetection: 2 + m_CollisionDetection: 1 --- !u!4 &8107363338062326325 Transform: m_ObjectHideFlags: 0 @@ -5916,14 +6581,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8112599368562234729} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: -1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4046714554611455} m_Father: {fileID: 8114378222086924161} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!224 &8110689384494340643 RectTransform: m_ObjectHideFlags: 0 @@ -5991,6 +6656,7 @@ GameObject: m_Component: - component: {fileID: 8107394097429219735} - component: {fileID: 8094040829892155629} + - component: {fileID: 8264424693587136968} - component: {fileID: 8264424693587136966} - component: {fileID: 6135364979465448005} - component: {fileID: 8264424693587136967} @@ -6120,6 +6786,32 @@ Transform: m_Children: [] m_Father: {fileID: 8114378222086924161} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8129510738604895356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 389927712696538647} + - component: {fileID: 8380770180143436832} + - component: {fileID: 4772159711372274701} + m_Layer: 16 + m_Name: Float (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!33 &8132567827201524016 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6280423383106253057} + m_Mesh: {fileID: 4300000, guid: 77d4b5d6e9e84794383ac9531cb04cae, type: 2} --- !u!114 &8143692206562876326 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6359,6 +7051,22 @@ SphereCollider: serializedVersion: 3 m_Radius: 0.003 m_Center: {x: 0, y: -0.0015, z: 0} +--- !u!1 &8188637675592362683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 269017554130809855} + m_Layer: 0 + m_Name: _waterline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!224 &8263689906767965056 RectTransform: m_ObjectHideFlags: 0 @@ -6496,18 +7204,41 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6f273ba33ebe49cd8b31b92db8288a90, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::Buoyancy - _water: {fileID: 0} + _water: {fileID: 2531380344179187550} includeDeformation: 1 - sphereRadiusApproximation: 0.1 - waveForceMultiplier: 0.01 - currentSpeedMultiplier: 0.01 + sphereRadiusApproximation: 0.25 + waveForceMultiplier: 1 + currentSpeedMultiplier: 1 dragMultiplier: 1 - defaultRigidbodyDrag: 5 - underwaterRigidbodyAngularDrag: 5 - overwaterRigidbodyAngularDrag: 1 + defaultRigidbodyDrag: 0.1 + underwaterRigidbodyAngularDrag: 1 + overwaterRigidbodyAngularDrag: 0.05 surfaceTensionDamping: 10 applyForceWithRandomOffset: 0 drawDebug: 1 +--- !u!136 &8264424693587136968 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8112599368562234729} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.004 + m_Height: 0.025 + m_Direction: 1 + m_Center: {x: 0, y: 0.04, z: 0} --- !u!153 &8264839114692736908 ConfigurableJoint: m_ObjectHideFlags: 0 @@ -6610,6 +7341,33 @@ ConfigurableJoint: m_EnablePreprocessing: 0 m_MassScale: 1 m_ConnectedMassScale: 1 +--- !u!54 &8380770180143436832 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8129510738604895356} + serializedVersion: 5 + m_Mass: 0.1 + m_LinearDamping: 5 + m_AngularDamping: 0.1 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 0.001, y: 0.001, z: 0.001} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 0 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 2 --- !u!120 &8514482975972367959 LineRenderer: serializedVersion: 2 @@ -6992,6 +7750,21 @@ LineRenderer: m_UseWorldSpace: 1 m_Loop: 0 m_ApplyActiveColorSpace: 1 +--- !u!4 &9066712976035742038 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167656693566734254} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.055, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 584816677121546027} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1 &9157164589531290079 GameObject: m_ObjectHideFlags: 0 @@ -7032,6 +7805,23 @@ MonoBehaviour: m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 m_PresetInfoIsWorld: 0 +--- !u!1 &9204150256481453776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 530731981639178553} + - component: {fileID: 2238779523277448163} + m_Layer: 0 + m_Name: _stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -7044,5 +7834,7 @@ SceneRoots: - {fileID: 909052972} - {fileID: 668361904} - {fileID: 154764977} - - {fileID: 7909769884836788113} + - {fileID: 389927712696538647} + - {fileID: 7542518911993633412} - {fileID: 5388330205210097294} + - {fileID: 820800910} diff --git a/Assets/Scripts/Test/BuoyancyBody.cs b/Assets/Scripts/Test/BuoyancyBody.cs index 7de55839a..990222bb3 100644 --- a/Assets/Scripts/Test/BuoyancyBody.cs +++ b/Assets/Scripts/Test/BuoyancyBody.cs @@ -2,17 +2,7 @@ using System.Collections.Generic; using UnityEngine; -public interface IWaterProvider -{ - /// 返回该世界坐标下的水面高度 - float GetWaterHeight(Vector3 worldPos); - /// 可选:水面法线(没有就返回 Vector3.up) - Vector3 GetWaterNormal(Vector3 worldPos); - - /// 可选:水流速度(没有就返回 Vector3.zero) - Vector3 GetWaterVelocity(Vector3 worldPos); -} /// /// 多点采样浮力:考虑形状(采样点分布)、重心(Rigidbody.centerOfMass)、扭矩(在点上施力)。 diff --git a/Assets/Scripts/Test/BuoyancyCapsuleSphere.cs b/Assets/Scripts/Test/BuoyancyCapsuleSphere.cs new file mode 100644 index 000000000..fb75698f1 --- /dev/null +++ b/Assets/Scripts/Test/BuoyancyCapsuleSphere.cs @@ -0,0 +1,224 @@ +using UnityEngine; + +public interface IWaterProvider +{ + float GetWaterHeight(Vector3 worldPos); + Vector3 GetWaterNormal(Vector3 worldPos); + Vector3 GetWaterVelocity(Vector3 worldPos); +} + +/// +/// 稳定优先的浮力(只支持 CapsuleCollider / SphereCollider) +/// - 竖直方向:目标吃水深度 + PD 控制(稳定,不抖、不弹飞) +/// - 姿态:Righting Torque 扶正(受 Rigidbody.centerOfMass 影响) +/// - 入水比例:带平滑(避免水面附近开关抖动) +/// +[DisallowMultipleComponent] +[RequireComponent(typeof(Rigidbody))] +public class BuoyancyCapsuleSphere : MonoBehaviour +{ + [Header("Collider (choose one)")] + public CapsuleCollider capsule; + public SphereCollider sphere; + + [Header("Water")] + public MonoBehaviour waterProviderBehaviour; // 可选 + private IWaterProvider waterProvider; + + [Tooltip("没有 provider 时的水面高度")] + public float waterLevel = 0f; + + [Header("Density -> Draft")] + [Tooltip("水密度 kg/m^3(淡水约1000)")] + public float waterDensity = 1000f; + + [Tooltip("物体等效密度 kg/m^3。越小越浮。浮漂可 80~400 之间调")] + public float objectDensity = 250f; + + [Tooltip("额外浮力比例(手感调整)。1=按密度算")] + public float buoyancyScale = 1f; + + [Header("Vertical PD (Stability key)")] + [Tooltip("竖直弹簧强度(越大越“顶住”目标吃水)")] + public float verticalKp = 35f; + + [Tooltip("竖直阻尼(越大越不弹、不抖)")] + public float verticalKd = 12f; + + [Tooltip("最大向上加速度 m/s^2(防止从高处落下入水被顶飞)")] + public float maxUpAccel = 25f; + + [Tooltip("最大向下加速度 m/s^2(防止强行拉下去造成抖动)")] + public float maxDownAccel = 10f; + + [Header("Submergence smoothing")] + [Tooltip("入水比例变化速度(1/s)。越大越快响应,越小越稳")] + public float submergenceSpeed = 8f; + + [Tooltip("水面外的缓冲(m),让浮力更平滑接管")] + public float surfaceMargin = 0.01f; + + [Header("Righting (Rotation)")] + [Tooltip("扶正强度(把 transform.up 拉向水面法线/世界上)")] + public float rightingKp = 8f; + + [Tooltip("扶正阻尼(抑制旋转抖动)")] + public float rightingKd = 3f; + + [Header("Water drag (optional but helpful)")] + [Tooltip("入水时额外线阻尼(通过 rb.drag 混合)")] + public float extraLinearDragInWater = 2.5f; + + [Tooltip("入水时额外角阻尼(通过 rb.angularDrag 混合)")] + public float extraAngularDragInWater = 2.0f; + + [Header("Center of Mass")] + [Tooltip("本地重心偏移:例如 (0,-0.02,0) 让底部更重、更容易站漂")] + public Vector3 centerOfMassOffset = Vector3.zero; + + private Rigidbody rb; + private float baseDrag, baseAngularDrag; + + // 关键:入水比例必须有“记忆”(滤波),否则水面边界必抖 + private float subFiltered = 0f; + + void Reset() + { + rb = GetComponent(); + rb.useGravity = true; + rb.interpolation = RigidbodyInterpolation.Interpolate; + rb.collisionDetectionMode = CollisionDetectionMode.Continuous; + + capsule = GetComponent(); + sphere = GetComponent(); + } + + void Awake() + { + rb = GetComponent(); + rb.centerOfMass = centerOfMassOffset; + + baseDrag = rb.linearDamping; + baseAngularDrag = rb.angularDamping; + + waterProvider = waterProviderBehaviour as IWaterProvider; + + // 只允许一个 + if (capsule != null && sphere != null) + sphere = null; + } + + void OnValidate() + { + objectDensity = Mathf.Max(1e-3f, objectDensity); + waterDensity = Mathf.Max(1e-3f, waterDensity); + submergenceSpeed = Mathf.Max(0.1f, submergenceSpeed); + surfaceMargin = Mathf.Max(0f, surfaceMargin); + maxUpAccel = Mathf.Max(0f, maxUpAccel); + maxDownAccel = Mathf.Max(0f, maxDownAccel); + } + + void FixedUpdate() + { + if (!capsule && !sphere) return; + + waterProvider = waterProviderBehaviour as IWaterProvider; + + // 取“浮体中心点”作为控制点(稳定,不戳点) + Vector3 centerWorld; + float shapeHeight; // 近似“高度”(sphere=直径,capsule=高度) + GetCenterAndHeight(out centerWorld, out shapeHeight); + + // 水面信息 + float waterH = (waterProvider != null) ? waterProvider.GetWaterHeight(centerWorld) : waterLevel; + Vector3 waterN = (waterProvider != null) ? waterProvider.GetWaterNormal(centerWorld) : Vector3.up; + if (waterN.sqrMagnitude < 1e-6f) waterN = Vector3.up; + waterN.Normalize(); + + // 当前中心“浸没深度”(>0 表示中心在水下) + float centerDepth = waterH - centerWorld.y; + + // 近似入水比例:centerDepth = -H/2 -> 0; centerDepth = +H/2 -> 1 + float rawSub = Mathf.Clamp01((centerDepth + (shapeHeight * 0.5f) + surfaceMargin) / (shapeHeight + 2f * surfaceMargin)); + + // 入水比例滤波(非常关键) + float dt = Time.fixedDeltaTime; + subFiltered = Mathf.MoveTowards(subFiltered, rawSub, submergenceSpeed * dt); + + // 混合拖拽(让水中更稳) + rb.linearDamping = Mathf.Lerp(baseDrag, baseDrag + extraLinearDragInWater, subFiltered); + rb.angularDamping = Mathf.Lerp(baseAngularDrag, baseAngularDrag + extraAngularDragInWater, subFiltered); + + if (subFiltered <= 1e-4f) + return; // 基本没入水,不做任何浮力/扶正 + + // 目标吃水比例:理想静态平衡 ≈ objectDensity / waterDensity(<1 才会浮) + float desiredSub = Mathf.Clamp01((objectDensity / waterDensity) * buoyancyScale); + + // 把 desiredSub 转成目标中心深度 + // desiredSub=0 -> centerDepthTarget = -H/2(完全出水) + // desiredSub=1 -> centerDepthTarget = +H/2(完全入水) + float centerDepthTarget = desiredSub * shapeHeight - shapeHeight * 0.5f; + + // 竖直 PD:只沿“世界上/重力反方向”控制,最稳 + Vector3 up = (-Physics.gravity).sqrMagnitude > 1e-6f ? (-Physics.gravity).normalized : Vector3.up; + float vUp = Vector3.Dot(rb.linearVelocity, up); + + float error = centerDepth - centerDepthTarget; // 深了为正 -> 需要向上推 + float accelUp = (-verticalKp * error) - (verticalKd * vUp); + + // 限制上下加速度,避免顶飞或强拉抖动 + accelUp = Mathf.Clamp(accelUp, -maxDownAccel, maxUpAccel); + + // 随入水比例渐入(避免水面边界突然接管) + accelUp *= subFiltered; + + // 施加竖直加速度(Acceleration 不受质量影响,更稳定) + rb.AddForce(up * accelUp, ForceMode.Acceleration); + + // 扶正力矩:把物体 up 拉向 waterN(平静水就是 Vector3.up) + // 注意:这个扶正与重心偏移一起工作,会形成“站漂/躺漂”的稳定姿态 + Vector3 currentUp = transform.up; + Vector3 axis = Vector3.Cross(currentUp, waterN); + + // 小角度近似:axis 的大小约等于 sin(theta) + // 扶正加速度型扭矩(同样用 Acceleration,减少质量/惯量差带来的抖动) + Vector3 angVel = rb.angularVelocity; + Vector3 torqueAccel = axis * rightingKp - angVel * rightingKd; + + torqueAccel *= subFiltered; + + rb.AddTorque(torqueAccel, ForceMode.Acceleration); + } + + private void GetCenterAndHeight(out Vector3 centerWorld, out float heightWorld) + { + if (sphere) + { + // sphere:center + 半径*缩放(近似取最大缩放) + Transform t = sphere.transform; + centerWorld = t.TransformPoint(sphere.center); + + Vector3 s = t.lossyScale; + float r = sphere.radius * Mathf.Max(Mathf.Abs(s.x), Mathf.Abs(s.y), Mathf.Abs(s.z)); + heightWorld = Mathf.Max(1e-6f, r * 2f); + return; + } + + // capsule + Transform ct = capsule.transform; + centerWorld = ct.TransformPoint(capsule.center); + + Vector3 ls = ct.lossyScale; + float sx = Mathf.Abs(ls.x), sy = Mathf.Abs(ls.y), sz = Mathf.Abs(ls.z); + + float heightScale = capsule.direction switch + { + 0 => sx, + 1 => sy, + _ => sz, + }; + + heightWorld = Mathf.Max(1e-6f, capsule.height * heightScale); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Test/BuoyancyCapsuleSphere.cs.meta b/Assets/Scripts/Test/BuoyancyCapsuleSphere.cs.meta new file mode 100644 index 000000000..b45fa287e --- /dev/null +++ b/Assets/Scripts/Test/BuoyancyCapsuleSphere.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: bad586cd447d4271b97ce1cf1c81897a +timeCreated: 1772460028 \ No newline at end of file diff --git a/Assets/Scripts/Test/CapsuleBuoyancy.cs b/Assets/Scripts/Test/CapsuleBuoyancy.cs new file mode 100644 index 000000000..3fe7fdb32 --- /dev/null +++ b/Assets/Scripts/Test/CapsuleBuoyancy.cs @@ -0,0 +1,95 @@ +using UnityEngine; + +[RequireComponent(typeof(Rigidbody))] +[RequireComponent(typeof(CapsuleCollider))] +public class CapsuleBuoyancy : MonoBehaviour +{ + [Header("Water Settings")] + public float waterHeight = 0f; // 水面高度 + public float waterDensity = 1000f; // 水密度 + + [Header("Buoyancy Settings")] + public int samplePoints = 8; // 采样点数量 + public float buoyancyMultiplier = 1.0f; // 浮力强度调节 + public float waterDrag = 1.5f; // 水阻力 + public float waterAngularDrag = 1.5f; // 水角阻力 + + private Rigidbody rb; + private CapsuleCollider capsule; + + private float capsuleVolume; + private float gravity; + + void Start() + { + rb = GetComponent(); + capsule = GetComponent(); + + gravity = Physics.gravity.magnitude; + + CalculateCapsuleVolume(); + } + + void FixedUpdate() + { + ApplyBuoyancy(); + } + + void CalculateCapsuleVolume() + { + float radius = capsule.radius * Mathf.Max(transform.localScale.x, transform.localScale.z); + float height = Mathf.Max(0, capsule.height * transform.localScale.y - 2f * radius); + + float cylinderVolume = Mathf.PI * radius * radius * height; + float sphereVolume = (4f / 3f) * Mathf.PI * radius * radius * radius; + + capsuleVolume = cylinderVolume + sphereVolume; + } + + void ApplyBuoyancy() + { + float submergedRatioTotal = 0f; + + for (int i = 0; i < samplePoints; i++) + { + float t = (float)i / (samplePoints - 1); + Vector3 localPoint = Vector3.up * Mathf.Lerp( + -capsule.height * 0.5f + capsule.radius, + capsule.height * 0.5f - capsule.radius, + t); + + Vector3 worldPoint = transform.TransformPoint(localPoint); + + float depth = waterHeight - worldPoint.y; + + if (depth > 0f) + { + float normalizedDepth = Mathf.Clamp01(depth / (capsule.height / samplePoints)); + submergedRatioTotal += normalizedDepth; + + float forceMagnitude = + waterDensity * + gravity * + (capsuleVolume / samplePoints) * + normalizedDepth * + buoyancyMultiplier; + + Vector3 buoyancyForce = Vector3.up * forceMagnitude; + + rb.AddForceAtPosition(buoyancyForce, worldPoint, ForceMode.Force); + } + } + + // 如果在水中,加阻力 + if (submergedRatioTotal > 0f) + { + rb.linearDamping = waterDrag; + rb.angularDamping = waterAngularDrag; + } + else + { + rb.linearDamping = 0f; + rb.angularDamping = 0.05f; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Test/CapsuleBuoyancy.cs.meta b/Assets/Scripts/Test/CapsuleBuoyancy.cs.meta new file mode 100644 index 000000000..08709b72f --- /dev/null +++ b/Assets/Scripts/Test/CapsuleBuoyancy.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3137aa469d6440af8cdeaa03a4c272d1 +timeCreated: 1772464119 \ No newline at end of file