From fedef338c1c2972114d9fd9b5fb7e45de357a561 Mon Sep 17 00:00:00 2001 From: BobSong <605277374@qq.com> Date: Fri, 27 Feb 2026 00:40:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=AE=E6=BC=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/AssetCaches.asset | 4 +- Assets/New Terrain 12.asset | Bin 0 -> 557364 bytes Assets/New Terrain 12.asset.meta | 8 + .../Line/fishing line float set.prefab | 27 + .../expressfishing/bob_25004/bob_25004.prefab | 104 +- Assets/Scenes/BobberTest.unity | 1055 +++++++++++++++-- Assets/Scripts/Fishing/BobberController.cs | 15 +- Assets/Scripts/Test/Buoyancy.cs | 209 ++++ Assets/Scripts/Test/Buoyancy.cs.meta | 2 + Fishing2.sln.DotSettings.user | 1 + UserSettings/EditorUserSettings.asset | 18 +- 11 files changed, 1268 insertions(+), 175 deletions(-) create mode 100644 Assets/New Terrain 12.asset create mode 100644 Assets/New Terrain 12.asset.meta create mode 100644 Assets/Scripts/Test/Buoyancy.cs create mode 100644 Assets/Scripts/Test/Buoyancy.cs.meta diff --git a/Assets/AssetCaches.asset b/Assets/AssetCaches.asset index 179c02736..1892d828f 100644 --- a/Assets/AssetCaches.asset +++ b/Assets/AssetCaches.asset @@ -41538,8 +41538,8 @@ MonoBehaviour: Dependencies: [] Tags: - Name: main/plyaer.bundle - Hash: e4ec05a4b781eddaae2f07fc44c008f4 - Size: 378599896 + Hash: 0765d7b38fb20176d24357d15a00b8f2 + Size: 378600019 Assets: - Path: Assets/ResRaw/Prefabs/Line/fishing line float set.prefab Address: Plyaer/fishing line float set diff --git a/Assets/New Terrain 12.asset b/Assets/New Terrain 12.asset new file mode 100644 index 0000000000000000000000000000000000000000..b57d809e6637d20ae903c3fb2d8998a12471ebf2 GIT binary patch literal 557364 zcmeI)TZ|;vSqJdy*%>>DA#n%>~(h6-Zi_)#=FMhy6K%M&kXLl z(9^r#HIQ_I3507%2qBImvPd8V0wEqEctJ=Ip@85Ckl=xUP$XVJdEo(svV31%X1k`Q z$3ncJ-;w%s)%jPQbLv;O9?N!7?3GvVEfsg%UoF4neQ&PY?$~Lwx7>U0z4yH7o}>3a zb+q{6jT<)xgGgS;^u~>Uc;}OUc=z2;|J$d3>$$&v;V({p^pnwgbg?LMlPup>6w}z{ zMzu1n>Z%&V7QcC)GAI^1$Nv@4-aS8y#m`4u z9)BKR-YDICsdN2(WtC5(uFIfU>Rf+!MDzaR&-s5U+H?M|$$T1BQwBwM{$CaCht2=B znYTMv%Zt_dY3KjCUf!MmS6BHo>bmTo|DDmifBt#@{eHCP_474V9#vD?^Z%Jx&wM#P zv-4YuwZD(He~nKb|JP*p5MDNpSivlVpd0D zLg|zJzoFOvQgwa3BDTr=>wEbvo$KrF%scnjt)1)Z8}^MqC~hr273aUbzrL}T*WvyTTKOS%T&zIlq z{Br-<_sd&)`*-_~_gt_4>v3!=(P>`)Z|(KJRAfGC@^7D$UvBd6n3KP^$-nb}Jm>$x zCV$|7{CeacY4Y!ylmA+iKR74$Su z9gyew|BWX9{sZ#-eep+;=lkmiGM~=AAG`0*AI!Y-{_4Izf2itzcK^lVv(a}xzw_Oi zztv{nuX+7_KF0sM*e0Lf@2>KE3)ZE*zdzT^e;Cb!qM!eBlV6&X|4Wmv^z!=o`uQeb zt@7FV*ZCKkyquH&cauN0FJFk`%j<9HNPT~-?aTA{^6#75ntXj<-tK>UlW*+H_wOIh zJ>NY4cQ*S!-OKCu_g#_a`5$FIjjAd8-{1K=dvL5xbFA+9-^%=ET;=yi-+BJ?xAk@} zuixLtW1BqxJH5R7e*KXupGIAmJpS3g-^S6r|NWi!&tuVlzF&8%yxuqK_WAcjljm=Y z?)+-;Ap~|2|5eJpQY_y!-q6T9r?uu1n5; z_V}NT=Go)V-_Os++@EXa|D%~t>wU9se?Nby$$u={4!QsH@2JD>|MygV&fY(Z#d7oe zHExmOy}i8leZCogn)xB)zc2GcoMaKU?umA4& zKh?_@iZgNUe>cX@>*A-Y{-bJ2dw%|^ncoMa{V<=O$@~zXpUu4Jo}cS6eqMihfBal8 zuYLZh89)ElJ#746$o!D;f3es9V)cG&$Nx|-uix+g5##6leyPf%YD)U#^KBu*%s(8T z?)|k;yIARQYn$b!p%K?fd1IqxqosfBSy<=$yQLzx+xsA5?!IzADDg=f}q~ zpGMV`n1AQ*!(WZ|!Lc^Yxpe>e%f~an8CUsT(Rcg&c)pj{&!5*vd-{B$%BNA+C7(~T z&yN?PdG`5np&XBg8(SxalVNf0++_T~$<>X?_W0!0Nx8MVvAy+Rv3c>4jZt~}L@b;e zPS#_g+V0%Ad}?^<^w#cVxV2I~SggkC<)1)#ZG^zHQ3zP zdU9iRvR-TsuQm%CTc^s6we?9hHA`FD8@uKCvRp0drJZp(TrJkON9Bcbck=jfb>s4G zAje6WTr1Yg;b^jc?fCX+dt8i*wc=7SELO*DL%FqDj?Zqdmc`}W@?1N!v*qr3HZ?KD^m*T^bf~`0JCnx@y{u zfV>*RXXks4^;mnWaq9CTI%;mqdga0DsnR^4rZ4^X<|$Ku{n`4> z_f9AHU#`47wtsv1%yRQ2SU#Hn(C46%KREKCmmh@y0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&U_A*-M0RjXF5FkK+009C72oNAZfB*pk1PII#`0ba?2{aQRK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U_&*8^7K)<&-vIpALq+lG K6Gf5VMe#pvj+(px literal 0 HcmV?d00001 diff --git a/Assets/New Terrain 12.asset.meta b/Assets/New Terrain 12.asset.meta new file mode 100644 index 000000000..b1aff5472 --- /dev/null +++ b/Assets/New Terrain 12.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e465e80fb4cc6eb468c18e24b9c28c2a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 15600000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ResRaw/Prefabs/Line/fishing line float set.prefab b/Assets/ResRaw/Prefabs/Line/fishing line float set.prefab index a3e70573e..967536959 100644 --- a/Assets/ResRaw/Prefabs/Line/fishing line float set.prefab +++ b/Assets/ResRaw/Prefabs/Line/fishing line float set.prefab @@ -70,6 +70,7 @@ MonoBehaviour: groundCastDistance: 2.5 groundSampleStep: 3 groundInterpolate: 1 + groundUpdateEvery: 1 renderSubdivisionsIdle: 6 renderSubdivisionsMoving: 2 movingSpeedThreshold: 2 @@ -453,6 +454,7 @@ GameObject: - component: {fileID: 54298866000586118} - component: {fileID: 153691655494134957} - component: {fileID: 2717383850592950062} + - component: {fileID: 3104700584461846010} m_Layer: 16 m_Name: Float m_TagString: Untagged @@ -618,6 +620,30 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::NBF.BobberController _rbody: {fileID: 54298866000586118} joint: {fileID: 153691655494134957} + _buoyancy: {fileID: 3104700584461846010} +--- !u!114 &3104700584461846010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858052053854210} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd1aa9f0de8b435448c6893ecc60d021, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Buoyancy + 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!1 &1933124697579601 GameObject: m_ObjectHideFlags: 0 @@ -688,6 +714,7 @@ MonoBehaviour: groundCastDistance: 2.5 groundSampleStep: 3 groundInterpolate: 1 + groundUpdateEvery: 1 renderSubdivisionsIdle: 6 renderSubdivisionsMoving: 2 movingSpeedThreshold: 2 diff --git a/Assets/ResRaw/gfx/bobbers/expressfishing/bob_25004/bob_25004.prefab b/Assets/ResRaw/gfx/bobbers/expressfishing/bob_25004/bob_25004.prefab index 57d22ff11..b73cced78 100644 --- a/Assets/ResRaw/gfx/bobbers/expressfishing/bob_25004/bob_25004.prefab +++ b/Assets/ResRaw/gfx/bobbers/expressfishing/bob_25004/bob_25004.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 4943038628811238} - component: {fileID: 4160997794325361152} - - component: {fileID: -1878270173486354861} + - component: {fileID: 642471695031276768} m_Layer: 0 m_Name: bob_25004 m_TagString: Untagged @@ -31,12 +31,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4033285271709525} - - {fileID: 4753668062539042} - - {fileID: 4391537656274936} - - {fileID: 4219322353105327} - - {fileID: 4083127709589988} - - {fileID: 4696959239802335} + - {fileID: 2628037665683154556} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!114 &4160997794325361152 @@ -56,8 +51,8 @@ MonoBehaviour: topConnector: {fileID: 4753668062539042} bottomConnector: {fileID: 4391537656274936} waterline: {fileID: 4083127709589988} ---- !u!65 &-1878270173486354861 -BoxCollider: +--- !u!136 &642471695031276768 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -74,9 +69,11 @@ BoxCollider: m_IsTrigger: 0 m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 0.005, y: 0.005, z: 0.005} - m_Center: {x: 0, y: -0.01, z: 0} + serializedVersion: 2 + m_Radius: 0.002 + m_Height: 0.03 + m_Direction: 1 + m_Center: {x: 0, y: 0.01, z: 0} --- !u!1 &1236424003946422 GameObject: m_ObjectHideFlags: 0 @@ -86,7 +83,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4219322353105327} - - component: {fileID: 136815202583894138} m_Layer: 0 m_Name: _body m_TagString: Untagged @@ -102,36 +98,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1236424003946422} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.028749999, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 4943038628811238} + m_Father: {fileID: 2628037665683154556} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} ---- !u!136 &136815202583894138 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1236424003946422} - 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.002 - m_Height: 0.035 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1256211692469512 GameObject: m_ObjectHideFlags: 0 @@ -162,7 +135,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 4943038628811238} + m_Father: {fileID: 2628037665683154556} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!136 &136849029598565726 CapsuleCollider: @@ -211,12 +184,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1342355430950628} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.00627, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 4943038628811238} + m_Father: {fileID: 2628037665683154556} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1 &1364623190328362 GameObject: @@ -242,12 +215,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1364623190328362} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.0375, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 4943038628811238} + m_Father: {fileID: 2628037665683154556} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1 &1435124216471202 GameObject: @@ -273,12 +246,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1435124216471202} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.05351, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 4943038628811238} + m_Father: {fileID: 2628037665683154556} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!1 &1792318500355349 GameObject: @@ -306,12 +279,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1792318500355349} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 4943038628811238} + m_Father: {fileID: 2628037665683154556} m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} --- !u!33 &33680541704296896 MeshFilter: @@ -369,3 +342,40 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1696436611728297872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2628037665683154556} + m_Layer: 0 + m_Name: bob + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2628037665683154556 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696436611728297872} + 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: 4033285271709525} + - {fileID: 4753668062539042} + - {fileID: 4391537656274936} + - {fileID: 4219322353105327} + - {fileID: 4083127709589988} + - {fileID: 4696959239802335} + m_Father: {fileID: 4943038628811238} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scenes/BobberTest.unity b/Assets/Scenes/BobberTest.unity index 98168cbad..8af3c111d 100644 --- a/Assets/Scenes/BobberTest.unity +++ b/Assets/Scenes/BobberTest.unity @@ -119,11 +119,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!4 &28933281 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - m_PrefabInstance: {fileID: 1591368047} - m_PrefabAsset: {fileID: 0} --- !u!1 &203844586 GameObject: m_ObjectHideFlags: 0 @@ -256,6 +251,508 @@ Transform: m_CorrespondingSourceObject: {fileID: 4916128310923789, guid: c04ce4d92e8236f4d92e9dded282fe4f, type: 3} m_PrefabInstance: {fileID: 1384521324} m_PrefabAsset: {fileID: 0} +--- !u!1 &209664164 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 209664165} + m_Layer: 0 + m_Name: _topConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &209664165 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 209664164} + 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: 917993274} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!1 &223862663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 223862664} + m_Layer: 0 + m_Name: _waterline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &223862664 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 223862663} + 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: 917993274} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!1 &332592724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 332592725} + m_Layer: 0 + m_Name: _bottomConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &332592725 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 332592724} + 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: 917993274} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!1 &364994164 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 364994165} + - component: {fileID: 364994166} + m_Layer: 0 + m_Name: _stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &364994165 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 364994164} + 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: 917993274} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!136 &364994166 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 364994164} + 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.001 + m_Height: 0.06766828 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &844322797 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 844322798} + - component: {fileID: 844322802} + - component: {fileID: 844322801} + - component: {fileID: 844322800} + - component: {fileID: 844322799} + m_Layer: 16 + m_Name: Float (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &844322798 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844322797} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.0229, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 917993274} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &844322799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844322797} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd1aa9f0de8b435448c6893ecc60d021, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Buoyancy + waterLevel: 0 + waterAvailable: 1 + includeDeformation: 1 + sphereRadiusApproximation: 0.1 + waveForceMultiplier: 0.01 + currentSpeedMultiplier: 0.01 + dragMultiplier: 1 + defaultRigidbodyDrag: 5 + underwaterRigidbodyAngularDrag: 5 + overwaterRigidbodyAngularDrag: 1 + surfaceTensionDamping: 10 + applyForceWithRandomOffset: 0 + waterHeightOffset: 0 + drawDebug: 0 +--- !u!114 &844322800 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844322797} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e9411b5edc6466a8014c59e3821bbaa, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::NBF.BobberController + _rbody: {fileID: 844322802} + joint: {fileID: 844322801} + _buoyancy: {fileID: 0} +--- !u!153 &844322801 +ConfigurableJoint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844322797} + serializedVersion: 4 + m_ConnectedBody: {fileID: 0} + m_ConnectedArticulationBody: {fileID: 0} + m_Anchor: {x: 0, y: -0.01, z: 0} + m_Axis: {x: 0, y: 0, z: 0} + m_AutoConfigureConnectedAnchor: 0 + m_ConnectedAnchor: {x: 0, y: 0, z: 0} + m_SecondaryAxis: {x: 0, y: 0, z: 0} + m_XMotion: 1 + m_YMotion: 1 + m_ZMotion: 1 + m_AngularXMotion: 2 + m_AngularYMotion: 2 + m_AngularZMotion: 2 + m_LinearLimitSpring: + spring: 0 + damper: 0 + m_LinearLimit: + limit: 0.5 + bounciness: 0 + contactDistance: 0 + m_AngularXLimitSpring: + spring: 0 + damper: 0 + m_LowAngularXLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_HighAngularXLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_AngularYZLimitSpring: + spring: 0 + damper: 0 + m_AngularYLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_AngularZLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_TargetPosition: {x: 0, y: 0, z: 0} + m_TargetVelocity: {x: 0, y: 0, z: 0} + m_XDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_YDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_ZDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_TargetRotation: {x: 0, y: 0, z: 0, w: 1} + m_TargetAngularVelocity: {x: 0, y: 0, z: 0} + m_RotationDriveMode: 0 + m_AngularXDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_AngularYZDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_SlerpDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_ProjectionMode: 1 + m_ProjectionDistance: 0 + m_ProjectionAngle: 0 + m_ConfiguredInWorldSpace: 0 + m_SwapBodies: 0 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 0 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!54 &844322802 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 844322797} + 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!1 &909052969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 909052972} + - component: {fileID: 909052971} + - component: {fileID: 909052970} + m_Layer: 0 + m_Name: Terrain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!154 &909052970 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909052969} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_TerrainData: {fileID: 15600000, guid: e465e80fb4cc6eb468c18e24b9c28c2a, type: 2} + m_EnableTreeColliders: 1 +--- !u!218 &909052971 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909052969} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: e465e80fb4cc6eb468c18e24b9c28c2a, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_IgnoreQualitySettings: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ReceiveGI: 1 + m_ScaleInLightmap: 0.0256 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 + m_EnableHeightmapRayTracing: 1 + m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 +--- !u!4 &909052972 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 909052969} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -11.98, y: 0, z: -4.68} + 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 &917993273 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 917993274} + - component: {fileID: 917993275} + m_Layer: 0 + m_Name: bob_25002 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &917993274 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917993273} + 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: 1072129356} + - {fileID: 209664165} + - {fileID: 332592725} + - {fileID: 2000669907} + - {fileID: 223862664} + - {fileID: 364994165} + m_Father: {fileID: 844322798} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!114 &917993275 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917993273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3e885da772834bb289c2368be2f6eb5b, type: 3} + m_Name: + m_EditorClassIdentifier: + body: {fileID: 2000669907} + stick: {fileID: 364994165} + topConnector: {fileID: 209664165} + bottomConnector: {fileID: 332592725} + waterline: {fileID: 223862664} --- !u!1 &961739749 GameObject: m_ObjectHideFlags: 0 @@ -393,6 +890,96 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1072129355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1072129356} + - component: {fileID: 1072129358} + - component: {fileID: 1072129357} + m_Layer: 0 + m_Name: _mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1072129356 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072129355} + 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: 917993274} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!23 &1072129357 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072129355} + 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!33 &1072129358 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072129355} + m_Mesh: {fileID: 4300000, guid: 77d4b5d6e9e84794383ac9531cb04cae, type: 2} --- !u!1001 &1384521324 PrefabInstance: m_ObjectHideFlags: 0 @@ -471,7 +1058,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!54 &1518432885 Rigidbody: m_ObjectHideFlags: 0 @@ -605,8 +1192,8 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::Test.BobberTest rb: {fileID: 1518432885} line: {fileID: 8144283643417267672} - lineLength: 1 - floatLength: 0.5 + lineLength: 2 + floatLength: 1 --- !u!114 &1518432891 MonoBehaviour: m_ObjectHideFlags: 0 @@ -620,64 +1207,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Assembly-CSharp::FlatWaterHeightProvider waterY: 0 ---- !u!1001 &1591368047 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 8107394097429219735} - m_Modifications: - - target: {fileID: 1818732215012226, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_Name - value: bob_25002 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4046715926785936, guid: da82677cd9d390e4e81995edcb703557, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: -0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: da82677cd9d390e4e81995edcb703557, type: 3} ---- !u!1 &1683191724 +--- !u!1 &2000669906 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -685,24 +1215,37 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1683191728} - - component: {fileID: 1683191727} - - component: {fileID: 1683191726} - - component: {fileID: 1683191725} + - component: {fileID: 2000669907} + - component: {fileID: 2000669908} m_Layer: 0 - m_Name: Plane + m_Name: _body m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!64 &1683191725 -MeshCollider: +--- !u!4 &2000669907 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1683191724} + m_GameObject: {fileID: 2000669906} + 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: 917993274} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!136 &2000669908 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000669906} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -713,25 +1256,254 @@ MeshCollider: m_LayerOverridePriority: 0 m_IsTrigger: 0 m_ProvidesContacts: 0 - m_Enabled: 0 - serializedVersion: 5 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1683191726 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.0034 + m_Height: 0.04 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1586000250375033 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4902566405131541} + m_Layer: 0 + m_Name: _waterline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1717916658299341 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4064788320456926} + m_Layer: 0 + m_Name: _bottomConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1818733047993069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4046714554611455} + - component: {fileID: 309487077947173374} + 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 &1842072592751592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4466248854207531} + m_Layer: 0 + m_Name: _topConnector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1893892402371954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4753644045374711} + - component: {fileID: 136773376048481711} + m_Layer: 0 + m_Name: _body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1938556731102199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4863718031169708} + - component: {fileID: 33403240645940059} + - component: {fileID: 23228966932422775} + m_Layer: 0 + m_Name: _mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1956873481719066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4250003575048753} + - component: {fileID: 136450086866505322} + m_Layer: 0 + m_Name: _stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4046714554611455 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818733047993069} + 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: 4863718031169708} + - {fileID: 4466248854207531} + - {fileID: 4064788320456926} + - {fileID: 4753644045374711} + - {fileID: 4902566405131541} + - {fileID: 4250003575048753} + m_Father: {fileID: 8107394097429219735} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!4 &4064788320456926 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1717916658299341} + 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: 4046714554611455} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!4 &4250003575048753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956873481719066} + 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: 4046714554611455} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4466248854207531 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1842072592751592} + 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: 4046714554611455} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!4 &4753644045374711 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1893892402371954} + 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: 4046714554611455} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!4 &4863718031169708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1938556731102199} + 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: 4046714554611455} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!4 &4902566405131541 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1586000250375033} + 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: 4046714554611455} + m_LocalEulerAnglesHint: {x: 0, y: -0, z: -0} +--- !u!23 &23228966932422775 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1683191724} + m_GameObject: {fileID: 1938556731102199} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_StaticShadowCaster: 0 m_MotionVectors: 1 - m_LightProbeUsage: 1 + m_LightProbeUsage: 0 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 @@ -743,7 +1515,8 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + - {fileID: 2100000, guid: 7881e4598f2626c4a8ffb3e956070a4b, type: 2} + - {fileID: 2100000, guid: 940b6068f71807340a836245c4bbcb7e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -755,7 +1528,7 @@ MeshRenderer: m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 - m_StitchLightmapSeams: 1 + m_StitchLightmapSeams: 0 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 @@ -766,29 +1539,77 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1683191727 +--- !u!33 &33403240645940059 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1683191724} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1683191728 -Transform: + m_GameObject: {fileID: 1938556731102199} + m_Mesh: {fileID: 4300000, guid: 77d4b5d6e9e84794383ac9531cb04cae, type: 2} +--- !u!136 &136450086866505322 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1683191724} + 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 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} + m_Radius: 0.001 + m_Height: 0.06766828 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!136 &136773376048481711 +CapsuleCollider: + 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} +--- !u!114 &309487077947173374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818733047993069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3e885da772834bb289c2368be2f6eb5b, type: 3} + m_Name: + m_EditorClassIdentifier: + body: {fileID: 4753644045374711} + stick: {fileID: 4250003575048753} + topConnector: {fileID: 4466248854207531} + bottomConnector: {fileID: 4064788320456926} + waterline: {fileID: 4902566405131541} --- !u!65 &2709071706889968141 BoxCollider: m_ObjectHideFlags: 0 @@ -1238,6 +2059,7 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::NBF.BobberController _rbody: {fileID: 8094040829892155629} joint: {fileID: 8264424693587136966} + _buoyancy: {fileID: 0} --- !u!114 &7647511515837834160 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1288,7 +2110,7 @@ Rigidbody: m_GameObject: {fileID: 8112599368562234729} serializedVersion: 5 m_Mass: 0.1 - m_LinearDamping: 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} @@ -1301,7 +2123,7 @@ Rigidbody: m_Bits: 0 m_ImplicitCom: 1 m_ImplicitTensor: 0 - m_UseGravity: 1 + m_UseGravity: 0 m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 0 @@ -1334,7 +2156,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 28933281} + - {fileID: 4046714554611455} m_Father: {fileID: 8114378222086924161} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8111135382106896842 @@ -1447,7 +2269,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &8114378222086924161 Transform: m_ObjectHideFlags: 0 @@ -1864,21 +2686,23 @@ MonoBehaviour: m_GameObject: {fileID: 8112599368562234729} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0d2d3d7643d84524b8841fcf62193a04, type: 3} + m_Script: {fileID: 11500000, guid: dd1aa9f0de8b435448c6893ecc60d021, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::BobberBuoyancy + m_EditorClassIdentifier: Assembly-CSharp::Buoyancy waterLevel: 0 - waterFlow: {x: 0, y: 0, z: 0} - bobberHeight: 0.18 - maxBuoyancy: 12 - buoyancyMultiplier: 1 - waterDrag: 0.7 - waterAngularDrag: 0.4 - verticalDamping: 4 - uprightStrength: 8 - uprightDamping: 1.2 - layDownThreshold: 0.15 - layDownUprightMultiplier: 0.2 + waterAvailable: 1 + includeDeformation: 1 + sphereRadiusApproximation: 0.1 + waveForceMultiplier: 0.01 + currentSpeedMultiplier: 0.01 + dragMultiplier: 1 + defaultRigidbodyDrag: 5 + underwaterRigidbodyAngularDrag: 5 + overwaterRigidbodyAngularDrag: 1 + surfaceTensionDamping: 10 + applyForceWithRandomOffset: 0 + waterHeightOffset: 0 + drawDebug: 0 --- !u!153 &8264839114692736908 ConfigurableJoint: m_ObjectHideFlags: 0 @@ -2208,6 +3032,7 @@ SceneRoots: - {fileID: 961739753} - {fileID: 203844589} - {fileID: 3065509872725565573} + - {fileID: 844322798} - {fileID: 8114378222086924161} - {fileID: 1518432889} - - {fileID: 1683191728} + - {fileID: 909052972} diff --git a/Assets/Scripts/Fishing/BobberController.cs b/Assets/Scripts/Fishing/BobberController.cs index 94d96e6c8..f693c5902 100644 --- a/Assets/Scripts/Fishing/BobberController.cs +++ b/Assets/Scripts/Fishing/BobberController.cs @@ -7,7 +7,7 @@ namespace NBF [SerializeField] private Rigidbody _rbody; [SerializeField] private ConfigurableJoint joint; - + [SerializeField] private Buoyancy _buoyancy; public Rigidbody rbody => _rbody; public void SetJoint(Rigidbody rb) @@ -15,7 +15,7 @@ namespace NBF joint = joint == null ? GetComponent() : joint; joint.connectedBody = rb; } - + public void SetJointDistance(float limit) { joint.linearLimit = new SoftJointLimit @@ -23,5 +23,16 @@ namespace NBF limit = limit }; } + + public void SetDetectCollisionEnabled(bool en) + { + _rbody.detectCollisions = en; + _buoyancy.EnablePhysics(en); + } + + public void SetVelocity(Vector3 velocity) + { + _rbody.linearVelocity = velocity; + } } } \ No newline at end of file diff --git a/Assets/Scripts/Test/Buoyancy.cs b/Assets/Scripts/Test/Buoyancy.cs new file mode 100644 index 000000000..ce797e0e1 --- /dev/null +++ b/Assets/Scripts/Test/Buoyancy.cs @@ -0,0 +1,209 @@ +using System; +using UnityEngine; + +[ExecuteInEditMode] +[RequireComponent(typeof(Rigidbody))] +public class Buoyancy : MonoBehaviour +{ + // ====== No water plugin dependency ====== + [Header("Water (No Plugin)")] + [Tooltip("Fallback flat water level (Y). Set this to match your scene water height for now.")] + public float waterLevel = 0f; + + [Tooltip("If false, buoyancy is disabled and rigidbody uses gravity.")] + public bool waterAvailable = true; + + // ====== Original fields (kept) ====== + public bool includeDeformation = true; + + [Tooltip("Approxative radius of object for buoyancy.")] + public float sphereRadiusApproximation = 0.25f; + + [Tooltip("Specifies the multiplier for the movement induced by other deformation (waves, swell... etc).")] + public float waveForceMultiplier = 1f; + + [Tooltip("Specifies the multiplier for the movement induced by the current of the water surface.")] + public float currentSpeedMultiplier = 1f; + + [Tooltip("Specifies the multiplier for the drag forces induced by the viscosity of the mediums.")] + public float dragMultiplier = 1f; + + public float defaultRigidbodyDrag = 0.1f; + + public float underwaterRigidbodyAngularDrag = 1f; + + public float overwaterRigidbodyAngularDrag = 0.05f; + + [Tooltip("Specifies the value for surface tension. A high value will stop the object bouncing faster on water.")] + public float surfaceTensionDamping = 10f; + + [Tooltip("When enabled, the net force is applied with a random offset to create an angular velocity.")] + public bool applyForceWithRandomOffset; + + // 原脚本里这个是 HDRP 的“自定义网格水面高度偏移”,这里保留字段但不再依赖水插件 + [Tooltip("Optional extra offset added to sampled water height. Useful if your water mesh pivot isn't at surface level.")] + public float waterHeightOffset = 0f; + + public bool drawDebug; + + private Vector3 currentDirection; + private Vector3 A; + private Vector3 B; + private Vector3 C; + private Vector3 waterPosition; + private Vector3 normal; + private Vector3 deformationDirection; + + private Rigidbody rigidbodyComponent; + + private float h; + private float hNormalized; + + private bool _isEnabled = true; + + private void Start() + { + rigidbodyComponent = GetComponent(); + rigidbodyComponent.useGravity = false; + rigidbodyComponent.linearDamping = defaultRigidbodyDrag; + } + + public void EnablePhysics(bool set) + { + _isEnabled = set; + } + + private void FixedUpdate() + { + // ✅ 关键:没有水 / 禁用时,回到“用Unity重力” + if (!_isEnabled || !waterAvailable) + { + h = (hNormalized = 0f); + rigidbodyComponent.useGravity = true; + return; + } + + rigidbodyComponent.useGravity = false; + + FetchWaterSurfaceData(transform.position, out waterPosition, out normal, out currentDirection); + + deformationDirection = Vector3.ProjectOnPlane(normal, Vector3.up); + + h = Mathf.Clamp( + waterPosition.y - (transform.position.y - sphereRadiusApproximation), + 0f, + 2f * sphereRadiusApproximation + ); + + hNormalized = h * 1f / (2f * sphereRadiusApproximation); + + float num = MathF.PI * h * h / 3f * (3f * sphereRadiusApproximation - h); + + rigidbodyComponent.angularDamping = Mathf.Lerp(overwaterRigidbodyAngularDrag, underwaterRigidbodyAngularDrag, hNormalized); + + // === 以下保持原脚本单位/写法(尽量贴近原行为) === + Vector3 b = rigidbodyComponent.mass * Physics.gravity; + Vector3 vector = Vector3.Lerp(Physics.gravity, b, hNormalized); + + float num2 = 997f; + float num3 = 0.001293f; + float num4 = 1.81E-05f; + float num5 = 0.001f; + float num6 = 0.47f; + + Vector3 vector2 = (0f - num2) * num * Physics.gravity; + + Vector3 a = MathF.PI * 6f * sphereRadiusApproximation * num4 * -rigidbodyComponent.linearVelocity; + Vector3 b2 = MathF.PI * 6f * sphereRadiusApproximation * num5 * -rigidbodyComponent.linearVelocity; + Vector3 vector3 = Vector3.Lerp(a, b2, hNormalized) * dragMultiplier; + + float num7 = Mathf.Lerp( + b: Mathf.Sqrt(2f * rigidbodyComponent.mass * (0f - Physics.gravity.y) / + (num2 * MathF.PI * Mathf.Pow(sphereRadiusApproximation, 2f) * num6)), + a: Mathf.Sqrt(2f * rigidbodyComponent.mass * (0f - Physics.gravity.y) / + (num3 * MathF.PI * Mathf.Pow(sphereRadiusApproximation, 2f) * num6)), + t: hNormalized + ); + + Vector3 force = vector + vector2 + vector3; + + Vector3 vector4 = applyForceWithRandomOffset + ? (new Vector3( + UnityEngine.Random.Range(-1f, 1f), + UnityEngine.Random.Range(-1f, 1f), + UnityEngine.Random.Range(-1f, 1f) + ) * sphereRadiusApproximation / 5f) + : Vector3.zero; + + rigidbodyComponent.AddForceAtPosition(force, transform.position + vector4, ForceMode.Acceleration); + + if (hNormalized > 0f && hNormalized < 1f) + { + Vector3 force2 = -(Vector3.Dot(rigidbodyComponent.linearVelocity, Physics.gravity.normalized) + * Physics.gravity.normalized) * surfaceTensionDamping; + + rigidbodyComponent.AddForce(force2, ForceMode.Acceleration); + + if (includeDeformation) + { + rigidbodyComponent.AddForce(deformationDirection * waveForceMultiplier, ForceMode.Acceleration); + rigidbodyComponent.AddForce(currentDirection * currentSpeedMultiplier, ForceMode.Acceleration); + } + } + + if (rigidbodyComponent.linearVelocity.magnitude > num7) + { + rigidbodyComponent.linearVelocity = rigidbodyComponent.linearVelocity.normalized * num7; + } + } + + private Vector3 FetchWaterSurfaceData(Vector3 point, out Vector3 positionWS, out Vector3 normalWS, out Vector3 currentDirectionWS) + { + // ✅ 插件无关:统一从 GetWaterInfo 拿数据 + GetWaterInfo(point, out float waterHeight, out normalWS, out currentDirectionWS); + + positionWS = new Vector3(point.x, waterHeight + waterHeightOffset, point.z); + + if (normalWS == Vector3.zero) normalWS = Vector3.up; + + return positionWS; + } + + /// + /// Water provider (no plugin dependency). + /// 默认:水平水面,高度 = waterLevel + /// 以后接 Crest5:你只要改这个函数即可。 + /// + protected virtual void GetWaterInfo(Vector3 worldPoint, out float waterHeight, out Vector3 waterNormal, out Vector3 waterCurrentDir) + { + waterHeight = waterLevel; // 默认水面高度(可在Inspector里调对齐) + waterNormal = Vector3.up; // 默认法线 + waterCurrentDir = Vector3.zero; // 默认水流方向 + } + + public Vector3 GetCurrentWaterPosition() => waterPosition; + + public float GetNormalizedHeightOfSphereBelowSurface() => hNormalized; + + private void OnDrawGizmosSelected() + { + if (!drawDebug) return; + + Gizmos.color = Color.magenta; + Gizmos.DrawLine(transform.position, transform.position + normal); + + Gizmos.color = Color.green; + Gizmos.DrawLine(transform.position, transform.position + deformationDirection * 10f); + + Gizmos.color = Color.red; + Gizmos.DrawLine(transform.position, transform.position + currentDirection); + + Gizmos.color = Color.yellow; + Gizmos.DrawSphere(transform.position, sphereRadiusApproximation); + + Gizmos.color = Color.blue; + Gizmos.DrawSphere(A, sphereRadiusApproximation / 10f); + Gizmos.DrawSphere(B, sphereRadiusApproximation / 10f); + Gizmos.DrawSphere(C, sphereRadiusApproximation / 10f); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Test/Buoyancy.cs.meta b/Assets/Scripts/Test/Buoyancy.cs.meta new file mode 100644 index 000000000..e6646fccf --- /dev/null +++ b/Assets/Scripts/Test/Buoyancy.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: dd1aa9f0de8b435448c6893ecc60d021 \ No newline at end of file diff --git a/Fishing2.sln.DotSettings.user b/Fishing2.sln.DotSettings.user index 7e156499c..38f4c86c8 100644 --- a/Fishing2.sln.DotSettings.user +++ b/Fishing2.sln.DotSettings.user @@ -25,6 +25,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 9985aaf8a..f0d8fbce1 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -9,31 +9,31 @@ EditorUserSettings: value: 18134705175a055722080a3115371d4a0d55006876786860616b0471b8b07a68ffab74f9ee2a3a30300cea1a11320d0beb1a0c25f7060f494b4cc80018eb09361fc211cb1f862d19c51d19dcc413d6ade0d8ddfcddf9f4d9d29195fcfde6ebeae6f0a9c9afa6f8c5b89ff7a1aacececac4eba4d7c9d28bda flags: 0 RecentlyUsedSceneGuid-0: - value: 07060c5454040c0a545b547240700a441216417e7f2e7268752c4966b4b0663d + value: 5403560050570a5a08085523137709114e15492e7c7f74677e2f4c61b0b3633e flags: 0 RecentlyUsedSceneGuid-1: - value: 5309035757065a0a54575f7216265c4444151d28792e72627d2f1935bbb8673a + value: 0700575604020d0a5c0a0a2643770d45134f487e74782031287d1f65b7b4623b flags: 0 RecentlyUsedSceneGuid-2: - value: 5505015f5c515a085f5b092149760f441716407a787d7564287b1b36e7e1366e + value: 535552075c510a595b5f557040770e484e164d792d7d75657d791e62b4e4366b flags: 0 RecentlyUsedSceneGuid-3: - value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661 + value: 550350030051080c080c0d21437759124716197b792977697a2b4936e6e26c3d flags: 0 RecentlyUsedSceneGuid-4: - value: 005704520005080c5959542646205b4447154d2e7b7d7e34787f1e6ab0b56c3a + value: 0104025352005d0f0e0d0d2741775c12401519287c297167282a1935b1b13269 flags: 0 RecentlyUsedSceneGuid-5: - value: 53525155015459595c5d5e7315700744174e1a7f7a797e627f2b4b6abab3326f + value: 5409035450035e0e0c5d5a7a13770a40454e4f722f7f24347e2d1f30b0b76360 flags: 0 RecentlyUsedSceneGuid-6: - value: 5a09065056055c0e595d0a20447b0b4415164e2b297c75682f7c1866b0b3656c + value: 07060c5454040c0a545b547240700a441216417e7f2e7268752c4966b4b0663d flags: 0 RecentlyUsedSceneGuid-7: - value: 0750065f5d57580c5c0b5d7741275e44464e1d297b7e77342e784a64b3e13539 + value: 5309035757065a0a54575f7216265c4444151d28792e72627d2f1935bbb8673a flags: 0 RecentlyUsedSceneGuid-8: - value: 01085257040c5f0e0c0d5f27457b0f444e4e192c7b2d7e6428794d67e3b36668 + value: 5505015f5c515a085f5b092149760f441716407a787d7564287b1b36e7e1366e flags: 0 RecentlyUsedSceneGuid-9: value: 0054045155060d5a5c575f7045270d44474f4e7c7f7924637e2a1832b1b5636d