修复浮漂和线

This commit is contained in:
2026-05-06 21:11:55 +08:00
parent 8dfd7a44fb
commit ebefd7b0c4
5 changed files with 215 additions and 79 deletions

View File

@@ -214,7 +214,7 @@ GameObject:
- component: {fileID: 4026445325167852} - component: {fileID: 4026445325167852}
- component: {fileID: 54679398375713381} - component: {fileID: 54679398375713381}
- component: {fileID: 135844594273256032} - component: {fileID: 135844594273256032}
- component: {fileID: 4840064090904105689} - component: {fileID: 2951454344396477079}
- component: {fileID: 2305106969988397276} - component: {fileID: 2305106969988397276}
- component: {fileID: 6377942246174119720} - component: {fileID: 6377942246174119720}
m_Layer: 7 m_Layer: 7
@@ -287,8 +287,8 @@ SphereCollider:
serializedVersion: 3 serializedVersion: 3
m_Radius: 0.003 m_Radius: 0.003
m_Center: {x: 0, y: -0.0015, z: 0} m_Center: {x: 0, y: -0.0015, z: 0}
--- !u!145 &4840064090904105689 --- !u!153 &2951454344396477079
SpringJoint: ConfigurableJoint:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -298,16 +298,94 @@ SpringJoint:
m_ConnectedBody: {fileID: 54298866000586118} m_ConnectedBody: {fileID: 54298866000586118}
m_ConnectedArticulationBody: {fileID: 0} m_ConnectedArticulationBody: {fileID: 0}
m_Anchor: {x: 0, y: 0, z: 0} m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 1, y: 0, z: 0}
m_AutoConfigureConnectedAnchor: 1 m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 0, y: 0, z: 0} m_ConnectedAnchor: {x: 0, y: 0, z: 0}
m_Spring: 10000 m_SecondaryAxis: {x: 0, y: 1, z: 0}
m_Damper: 1 m_XMotion: 1
m_MinDistance: 0 m_YMotion: 1
m_MaxDistance: 0 m_ZMotion: 1
m_Tolerance: 0.025 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_BreakForce: Infinity
m_BreakTorque: Infinity m_BreakTorque: Infinity
m_EnableCollision: 1 m_EnableCollision: 0
m_EnablePreprocessing: 1 m_EnablePreprocessing: 1
m_MassScale: 1 m_MassScale: 1
m_ConnectedMassScale: 1 m_ConnectedMassScale: 1
@@ -412,7 +490,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 4530253318796540} - component: {fileID: 4530253318796540}
- component: {fileID: 54298866000586118} - component: {fileID: 54298866000586118}
- component: {fileID: 4027588950793546390} - component: {fileID: 4367274852511404246}
- component: {fileID: 8491405271793597799} - component: {fileID: 8491405271793597799}
m_Layer: 16 m_Layer: 16
m_Name: Float m_Name: Float
@@ -463,8 +541,8 @@ Rigidbody:
m_Interpolate: 0 m_Interpolate: 0
m_Constraints: 0 m_Constraints: 0
m_CollisionDetection: 2 m_CollisionDetection: 2
--- !u!145 &4027588950793546390 --- !u!153 &4367274852511404246
SpringJoint: ConfigurableJoint:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -474,16 +552,94 @@ SpringJoint:
m_ConnectedBody: {fileID: 5597807613657979793} m_ConnectedBody: {fileID: 5597807613657979793}
m_ConnectedArticulationBody: {fileID: 0} m_ConnectedArticulationBody: {fileID: 0}
m_Anchor: {x: 0, y: 0, z: 0} m_Anchor: {x: 0, y: 0, z: 0}
m_AutoConfigureConnectedAnchor: 1 m_Axis: {x: 1, y: 0, z: 0}
m_ConnectedAnchor: {x: 0, y: 0, z: 0} m_AutoConfigureConnectedAnchor: 0
m_Spring: 10000 m_ConnectedAnchor: {x: 0, y: -0.01, z: 0}
m_Damper: 1 m_SecondaryAxis: {x: 0, y: 1, z: 0}
m_MinDistance: 0 m_XMotion: 1
m_MaxDistance: 0 m_YMotion: 1
m_Tolerance: 0.025 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_BreakForce: Infinity
m_BreakTorque: Infinity m_BreakTorque: Infinity
m_EnableCollision: 1 m_EnableCollision: 0
m_EnablePreprocessing: 1 m_EnablePreprocessing: 1
m_MassScale: 1 m_MassScale: 1
m_ConnectedMassScale: 1 m_ConnectedMassScale: 1

View File

@@ -19,7 +19,7 @@ namespace NBF
[SerializeField] private Rigidbody preRigidbody; [SerializeField] private Rigidbody preRigidbody;
private Rigidbody _rb; private Rigidbody _rb;
private SpringJoint _joint; private ConfigurableJoint _joint;
private FLine _parentCable; private FLine _parentCable;
private float _lenght; private float _lenght;
@@ -27,7 +27,7 @@ namespace NBF
public Rigidbody PreRigidbody => preRigidbody; public Rigidbody PreRigidbody => preRigidbody;
public Rigidbody Rigidbody => _rb; public Rigidbody Rigidbody => _rb;
public FLine ParentCable => _parentCable; public FLine ParentCable => _parentCable;
public SpringJoint Joint => _joint; public ConfigurableJoint Joint => _joint;
public float Lenght => _lenght; public float Lenght => _lenght;
@@ -37,7 +37,7 @@ namespace NBF
{ {
_rb = GetComponent<Rigidbody>(); _rb = GetComponent<Rigidbody>();
_parentCable = GetComponentInParent<FLine>(); _parentCable = GetComponentInParent<FLine>();
_joint = GetComponent<SpringJoint>(); _joint = GetComponent<ConfigurableJoint>();
} }
public void SetLenght(float lenght) public void SetLenght(float lenght)
@@ -45,7 +45,7 @@ namespace NBF
_lenght = lenght; _lenght = lenght;
if (_joint) if (_joint)
{ {
_joint.maxDistance = lenght; _joint.linearLimit = new SoftJointLimit() { limit = lenght };
} }
if (rope) if (rope)

View File

@@ -93,15 +93,15 @@ namespace NBF
} }
// public void OnUseItem(PlayerItemView item) public void OnUseItem(int configId)
// { {
// var itemType = item.Item.ConfigID.GetItemType(); var itemType = configId.GetItemType();
// if (itemType == ItemType.Rod) if (itemType == ItemType.Rod)
// { {
// _isRodLayerEnabled = true; _isRodLayerEnabled = true;
// // _IK.SetBipedLeftHandIK(enabled: false, reel.FingersIKAnchor); // _IK.SetBipedLeftHandIK(enabled: false, reel.FingersIKAnchor);
// } }
// } }
public void SetLayerWeight(string layer, float weight) public void SetLayerWeight(string layer, float weight)
@@ -153,14 +153,13 @@ namespace NBF
public void OnRodThrowStart() public void OnRodThrowStart()
{ {
Debug.LogError("OnRodThrowStart"); Debug.LogError("OnRodThrowStart");
// if (Player.State == PlayerState.Throw) if (Player.State == PlayerState.Throw)
// { {
// var playerStateView = Player.GetComponent<PlayerStateView>(); if (Player.CurrentStateView is PlayerStageViewThrow playerStateThrow)
// if (playerStateView.CurrentStateView is PlayerStageViewThrow playerStateThrow) {
// { playerStateThrow.OnRodThrowStart();
// playerStateThrow.OnRodThrowStart(); }
// } }
// }
} }
/// <summary> /// <summary>
@@ -169,14 +168,13 @@ namespace NBF
public void OnRodThrownEnd() public void OnRodThrownEnd()
{ {
Debug.LogError("OnRodThrownEnd"); Debug.LogError("OnRodThrownEnd");
// if (Player.State == PlayerState.Throw) if (Player.State == PlayerState.Throw)
// { {
// var playerStateView = Player.GetComponent<PlayerStateView>(); if (Player.CurrentStateView is PlayerStageViewThrow playerStateThrow)
// if (playerStateView.CurrentStateView is PlayerStageViewThrow playerStateThrow) {
// { playerStateThrow.OnRodThrownEnd();
// playerStateThrow.OnRodThrownEnd(); }
// } }
// }
} }
#endregion #endregion

View File

@@ -25,6 +25,8 @@ namespace NBF
new Dictionary<PlayerState, PlayerStageViewBase>(); new Dictionary<PlayerState, PlayerStageViewBase>();
private PlayerStageViewBase _currentStateView; private PlayerStageViewBase _currentStateView;
public PlayerStageViewBase CurrentStateView => _currentStateView;
private void InitState() private void InitState()
{ {

View File

@@ -87,38 +87,18 @@ namespace NBF
} }
var itemConfig = Game.Tables.TbItem.Get(configId); var itemConfig = Game.Tables.TbItem.Get(configId);
var Rod = itemConfig.InstantiateAndComponent<FRod>(Map.Instance.GearsNode, Vector3.zero, var rod = itemConfig.InstantiateAndComponent<FRod>(Map.Instance.GearsNode, Vector3.zero,
Quaternion.identity); Quaternion.identity);
await Rod.Init(this, configId, bindItems); await rod.Init(this, configId, bindItems);
HandItem = Rod; HandItem = rod;
// ModelAsset.PlayerAnimator.OnUseItem(itemView); ModelAsset.PlayerAnimator.OnUseItem(configId);
// if (currItem == null)
// { if (_currentStateView is PlayerStageViewIdle playerStageViewIdle)
// //收起物品 {
// await UnUseItem(prevItem); playerStageViewIdle.TakeLine();
// } }
// else
// {
// // 先收起旧的物品
// await UnUseItemConfirm(prevItem);
// var handItem = Player.HandItem;
// //拿起新物品
// var itemType = handItem.ConfigID.GetItemType();
// if (itemType == ItemType.Rod)
// {
// var itemView = handItem.GetOrAddComponent<PlayerItemView>();
// await itemView.InitShow(handItem);
// Unity.ModelAsset.PlayerAnimator.OnUseItem(itemView);
// }
// }
//
// var stateView = Player.GetComponent<PlayerStateView>();
// if (stateView != null && stateView.CurrentStateView is PlayerStageViewIdle playerStageViewIdle)
// {
// playerStageViewIdle.TakeLine();
// }
IsChangeItemIng = false; IsChangeItemIng = false;
} }