line修改

This commit is contained in:
Bob.Song
2026-04-16 16:36:09 +08:00
parent 9681d7526f
commit f2803c9d74
11 changed files with 804 additions and 1072 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,7 @@
fileFormatVersion: 2
guid: ea6901d8aa7c41d41987d8ca92b02f6d
timeCreated: 1762387921
licenseType: Free
PrefabImporter:
externalObjects: {}
addedObjectFileIDs:
isPrefabVariant: 0
variantParentGUID: 00000000000000000000000000000000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -119,11 +119,6 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!4 &158887124 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4530253318796540, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_PrefabInstance: {fileID: 1005026350}
m_PrefabAsset: {fileID: 0}
--- !u!1 &203844586
GameObject:
m_ObjectHideFlags: 0
@@ -251,22 +246,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!114 &410242110 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114581403422500557, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_PrefabInstance: {fileID: 1005026350}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 98ba9d435a0e49c9bb527c34cc91894d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &462967993 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4026445325167852, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_PrefabInstance: {fileID: 1005026350}
m_PrefabAsset: {fileID: 0}
--- !u!1 &961739749
GameObject:
m_ObjectHideFlags: 0
@@ -404,154 +383,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1005026350
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1017528709445045, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_Name
value: Line1
objectReference: {fileID: 0}
- target: {fileID: 1017528709445045, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1035052809208993, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1387836627839849, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_Name
value: Line1
objectReference: {fileID: 0}
- target: {fileID: 1858052053854210, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1933124697579601, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_Name
value: Line2
objectReference: {fileID: 0}
- target: {fileID: 1933124697579601, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4283454774123242, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 54679398375713381, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_UseGravity
value: 1
objectReference: {fileID: 0}
- target: {fileID: 114581403422500557, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: startAnchor
value:
objectReference: {fileID: 1005026351}
- target: {fileID: 114581403422500557, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: constrainToWaterSurface
value: 0
objectReference: {fileID: 0}
- target: {fileID: 420085638995403055, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: Rope
value:
objectReference: {fileID: 410242110}
- target: {fileID: 420085638995403055, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: _rope
value:
objectReference: {fileID: 410242110}
- target: {fileID: 484878994603287356, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_Parameters.widthCurve.m_Curve.Array.data[0].value
value: 0.001
objectReference: {fileID: 0}
- target: {fileID: 991521994724602848, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_Parameters.widthCurve.m_Curve.Array.data[0].value
value: 0.001
objectReference: {fileID: 0}
- target: {fileID: 2317291906533305494, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3199098293373602285, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: Rope
value:
objectReference: {fileID: 1092033884}
- target: {fileID: 3199098293373602285, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: _rope
value:
objectReference: {fileID: 1092033884}
- target: {fileID: 7888891488031969805, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
propertyPath: anchorTransform
value:
objectReference: {fileID: 2055159199}
m_RemovedComponents: []
m_RemovedGameObjects:
- {fileID: 1943073364215513, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 4530253318796540, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
insertIndex: -1
addedObject: {fileID: 1250746686}
- targetCorrespondingSourceObject: {fileID: 4026445325167852, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
insertIndex: -1
addedObject: {fileID: 1968335315}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
--- !u!54 &1005026351 stripped
Rigidbody:
m_CorrespondingSourceObject: {fileID: 4189001003330736316, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_PrefabInstance: {fileID: 1005026350}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1092033884 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114504105083509877, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_PrefabInstance: {fileID: 1005026350}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 98ba9d435a0e49c9bb527c34cc91894d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1181671545
GameObject:
m_ObjectHideFlags: 0
@@ -677,7 +508,7 @@ Transform:
m_LocalScale: {x: 0.02, y: 0.02, z: 0.02}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 158887124}
m_Father: {fileID: 4530253928614098}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1250746687
BoxCollider:
@@ -757,17 +588,6 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1250746685}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &1699379894 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 7888891488031969805, guid: ea6901d8aa7c41d41987d8ca92b02f6d, type: 3}
m_PrefabInstance: {fileID: 1005026350}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 78dc478e56ff48849761861244c93535, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBF.FishingLineSolver
--- !u!1 &1968335314
GameObject:
m_ObjectHideFlags: 0
@@ -800,7 +620,7 @@ Transform:
m_LocalScale: {x: 0.02, y: 0.02, z: 0.02}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 462967993}
m_Father: {fileID: 4026445415780546}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1968335316
BoxCollider:
@@ -1033,13 +853,549 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5382d66f55f6463cb469c5094b0e7a6b, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBF.FishingLineTestController
solver: {fileID: 1699379894}
solver: {fileID: 7888891488109129251}
initialFirstSegmentLength: 1.2
minFirstSegmentLength: 0.1
maxFirstSegmentLength: 5
lineAdjustSpeed: 1
extendKey: 273
retractKey: 274
--- !u!1 &1035053713012879
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4026445415780546}
- component: {fileID: 54679399358797387}
- component: {fileID: 153611280143742665}
- component: {fileID: 135844594665913934}
- component: {fileID: 3199098294310598083}
m_Layer: 15
m_Name: Lure
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1387836520666951
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4283455506376388}
- component: {fileID: 7888891488109129251}
m_Layer: 0
m_Name: Line1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1858051426718764
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4530253928614098}
- component: {fileID: 54298865541355944}
- component: {fileID: 153691655873761411}
- component: {fileID: 420085638272326913}
m_Layer: 15
m_Name: Float
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &4026445415780546
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1035053713012879}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -1.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1968335315}
m_Father: {fileID: 4283455506376388}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4283455506376388
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387836520666951}
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: 796266975745807470}
- {fileID: 4530253928614098}
- {fileID: 4026445415780546}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4530253928614098
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1858051426718764}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1250746686}
m_Father: {fileID: 4283455506376388}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &54298865541355944
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1858051426718764}
serializedVersion: 5
m_Mass: 0.1
m_LinearDamping: 1
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: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 2
--- !u!54 &54679399358797387
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1035053713012879}
serializedVersion: 5
m_Mass: 0.01
m_LinearDamping: 1
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: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 2
--- !u!135 &135844594665913934
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1035053713012879}
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: 3
m_Radius: 0.003
m_Center: {x: 0, y: -0.0015, z: 0}
--- !u!153 &153611280143742665
ConfigurableJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1035053713012879}
serializedVersion: 4
m_ConnectedBody: {fileID: 54298865541355944}
m_ConnectedArticulationBody: {fileID: 0}
m_Anchor: {x: 0, y: 0, 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!153 &153691655873761411
ConfigurableJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1858051426718764}
serializedVersion: 4
m_ConnectedBody: {fileID: 4189001003421396114}
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!114 &420085638272326913
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1858051426718764}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f89affce787d4a1cbcd68bed409183d7, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBF.FishingLineNode
_solver: {fileID: 0}
nodeType: 1
body: {fileID: 54298865541355944}
Rope: {fileID: 0}
interaction: {fileID: 0}
_joint: {fileID: 153691655873761411}
segmentLengthToNext: 0.5
runtimeChainIndex: -1
features: []
motionFeatures: []
activeMotionFeature: {fileID: 0}
--- !u!4 &796266975745807470
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2317291906405060792}
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: 4283455506376388}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2317291906405060792
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 796266975745807470}
- component: {fileID: 4189001003421396114}
- component: {fileID: 6255081998473500704}
m_Layer: 0
m_Name: Start
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!114 &3199098294310598083
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1035053713012879}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f89affce787d4a1cbcd68bed409183d7, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBF.FishingLineNode
_solver: {fileID: 0}
nodeType: 3
body: {fileID: 54679399358797387}
Rope: {fileID: 0}
interaction: {fileID: 0}
_joint: {fileID: 153611280143742665}
segmentLengthToNext: 0.5
runtimeChainIndex: -1
features: []
motionFeatures: []
activeMotionFeature: {fileID: 0}
--- !u!54 &4189001003421396114
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2317291906405060792}
serializedVersion: 5
m_Mass: 1
m_LinearDamping: 0
m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
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: 0
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!114 &6255081998473500704
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2317291906405060792}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f89affce787d4a1cbcd68bed409183d7, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBF.FishingLineNode
_solver: {fileID: 0}
nodeType: 0
body: {fileID: 4189001003421396114}
Rope: {fileID: 0}
interaction: {fileID: 0}
_joint: {fileID: 0}
segmentLengthToNext: 0.5
runtimeChainIndex: -1
features: []
motionFeatures: []
activeMotionFeature: {fileID: 0}
--- !u!114 &7888891488109129251
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387836520666951}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 78dc478e56ff48849761861244c93535, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBF.FishingLineSolver
ConfigId: 0
LineType: 0
anchorTransform: {fileID: 2055159199}
logicalNodes:
- {fileID: 6255081998473500704}
- {fileID: 420085638272326913}
- {fileID: 3199098294310598083}
PinchController: {fileID: 0}
lengthLimitTolerance: 0.01
breakStretchThreshold: 0.05
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
@@ -1047,5 +1403,5 @@ SceneRoots:
- {fileID: 961739753}
- {fileID: 203844589}
- {fileID: 2055159199}
- {fileID: 1005026350}
- {fileID: 4283455506376388}
- {fileID: 1181671548}

View File

@@ -14,7 +14,6 @@ namespace NBF
public LineType LineType;
[SerializeField] private bool isLureConnect;
[SerializeField] private RodLine rodLine;
/// <summary>
/// 主线

View File

@@ -14,13 +14,13 @@ namespace NBF
Tail
}
private FLine _solver;
[SerializeField] private FLine _solver;
[Header("Node")] [SerializeField] private NodeType nodeType = NodeType.Tail;
[SerializeField] public Rigidbody body;
[SerializeField] private Rope _rope;
public Rope Rope;
[SerializeField] private MonoBehaviour interaction;
private ConfigurableJoint _joint;
[SerializeField] private ConfigurableJoint _joint;
[Header("Segment To Next Logical Node")] [Min(0f)] [SerializeField]
private float segmentLengthToNext = 0.5f;
@@ -63,8 +63,8 @@ namespace NBF
private void Awake()
{
_solver = GetComponentInParent<FLine>();
_joint = GetComponent<ConfigurableJoint>();
if (!_solver) _solver = GetComponentInParent<FLine>();
if (!_joint) _joint = GetComponent<ConfigurableJoint>();
EnsureFeatureCache();
}
@@ -97,7 +97,7 @@ namespace NBF
if (!Mathf.Approximately(lenght, _joint.linearLimit.limit))
{
_joint.linearLimit = new SoftJointLimit() { limit = lenght };
_rope.SetTargetLength(lenght - 0.1f);
Rope.SetTargetLength(lenght - 0.1f);
}
}

View File

@@ -37,8 +37,14 @@ namespace NBF
// });
}
private void Awake()
{
}
private void Start()
{
InitRenderer();
GetComponentsInChildren<Transform>(includeInactive: true).ToList().ForEach(delegate(Transform i)
{
i.gameObject.SetActive(true);
@@ -268,5 +274,33 @@ namespace NBF
}
#endregion
#region Renderer
private Transform _ropeRoot;
private void InitRenderer()
{
var root = new GameObject("RopeRoot");
_ropeRoot = root.transform;
_ropeRoot.SetParent(transform);
CreateRopes();
}
private void CreateRopes()
{
foreach (var node in LogicalNodes)
{
if (node.Type == FishingLineNode.NodeType.Start) continue;
var ropeObject = new GameObject($"rope_{node.Type}");
ropeObject.transform.SetParent(_ropeRoot);
var rope = ropeObject.AddComponent<Rope>();
node.Rope = rope;
rope.startAnchor = node.Joint.connectedBody;
rope.endAnchor = node.body;
}
}
#endregion
}
}

View File

@@ -14,19 +14,19 @@ public class Rope : MonoBehaviour
[Header("Physics (Dynamic Nodes, Fixed Segment Len)")] [SerializeField, Min(0.01f), Tooltip("物理每段固定长度(越小越细致越耗)")]
private float physicsSegmentLen = 0.15f;
[SerializeField, Range(2, 200)] private int minPhysicsNodes = 12;
[SerializeField, Range(2, 200)] private int minPhysicsNodes = 2;
[SerializeField, Range(2, 400), Tooltip("物理节点上限(仅用于性能保护;与“最大长度不限制”不是一回事)")]
private int maxPhysicsNodes = 120;
private int maxPhysicsNodes = 200;
[SerializeField] private float gravityStrength = 2.0f;
[SerializeField] private float gravityStrength = 6.0f;
[SerializeField, Range(0f, 1f)] private float velocityDampen = 0.95f;
[SerializeField, Range(0.0f, 1.0f), Tooltip("约束修正强度越大越硬。0.6~0.9 常用")]
private float stiffness = 0.8f;
[SerializeField, Range(1, 80), Tooltip("迭代次数。鱼线 10~30 通常够用")]
private int iterations = 20;
[SerializeField, Range(1, 80), Tooltip("迭代次数")]
private int iterations = 10;
[SerializeField, Range(0, 16), Tooltip("主求解后追加的硬长度约束次数。只负责把 poly 拉回到 rest total不改变可变长度逻辑")]
private int hardTightenIterations = 2;
@@ -46,7 +46,7 @@ public class Rope : MonoBehaviour
private float lengthSmoothTime = 0.15f;
[Tooltip("当长度在变化时额外把速度压掉一些防抖。0=不额外处理1=变化时几乎清速度(建议只在收线生效)")] [SerializeField, Range(0f, 1f)]
private float lengthChangeVelocityKill = 0.6f;
private float lengthChangeVelocityKill = 0.4f;
[Tooltip("允许的最小松弛余量(避免目标长度刚好等于锚点距离时抖动)")] [SerializeField, Min(0f)]
private float minSlack = 0.002f;
@@ -58,7 +58,7 @@ public class Rope : MonoBehaviour
private float nodeHysteresis = 0.05f;
[Header("Simple Ground/Water Constraint (Cheap)")] [SerializeField]
private bool constrainToGround = true;
private bool constrainToGround = false;
[SerializeField] private LayerMask groundMask = ~0;
[SerializeField, Min(0f)] private float groundRadius = 0.01f;
@@ -72,7 +72,7 @@ public class Rope : MonoBehaviour
private bool groundInterpolate = true;
[SerializeField, Range(1, 8), Tooltip("每隔多少次FixedUpdate更新一次地面约束")]
private int groundUpdateEvery = 2;
private int groundUpdateEvery = 1;
[SerializeField, Range(0, 8), Tooltip("地面约束后,再做几次长度约束,减少 poly 被地面抬长")]
private int groundPostConstraintIterations = 2;
@@ -80,7 +80,7 @@ public class Rope : MonoBehaviour
private int _groundFrameCounter;
[Header("Simple Water Float (Cheap)")] [SerializeField, Tooltip("绳子落到水面以下时,是否把节点约束回水面")]
private bool constrainToWaterSurface = true;
private bool constrainToWaterSurface = false;
[SerializeField, Tooltip("静态水面高度;如果你后面接波浪水面,可改成采样函数")]
private float waterLevelY = 0f;
@@ -135,7 +135,7 @@ public class Rope : MonoBehaviour
private float visibilityViewportPadding = 0.08f;
[Header("Air Drag (Stable)")] [SerializeField, Range(0f, 5f), Tooltip("空气阻力Y向指数衰减越大越不飘")]
private float airDrag = 0.9f;
private float airDrag = 0.2f;
[SerializeField, Range(0f, 2f), Tooltip("横向额外阻力XZ指数衰减越大越不左右飘")]
private float airDragXZ = 0.6f;

View File

@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 1330e7f73f804eea8ae09724f6bb1039
timeCreated: 1766759962

View File

@@ -1,55 +0,0 @@
// using Obi;
using UnityEngine;
public class RodLine : MonoBehaviour
{
// private ObiRope obiRope;
private LineRenderer lineRenderer;
private Transform[] points;
public void GenerateLineRendererRope(Transform[] points, float thickness)
{
if (points.Length < 2)
{
Debug.LogError("LineRenderer requires at least two points.");
return;
}
this.points = points;
if (lineRenderer == null)
{
lineRenderer = base.gameObject.GetComponent<LineRenderer>();
if (lineRenderer == null)
{
lineRenderer = base.gameObject.AddComponent<LineRenderer>();
}
}
lineRenderer.positionCount = points.Length;
lineRenderer.startWidth = thickness;
lineRenderer.endWidth = thickness;
for (int i = 0; i < points.Length; i++)
{
lineRenderer.SetPosition(i, points[i].position);
}
}
private void LateUpdate()
{
if (lineRenderer == null)
{
return;
}
for (var i = 0; i < points.Length; i++)
{
var point = points[i];
if (point)
{
lineRenderer.SetPosition(i, point.position);
}
}
}
}

View File

@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5625b86b9e4b4482b82d83b962d0c873
timeCreated: 1766759973