角色能力,存档
This commit is contained in:
@@ -34,10 +34,18 @@ namespace BaseGames.Camera
|
||||
{
|
||||
if (stage != CinemachineCore.Stage.Body) return;
|
||||
|
||||
var pos = state.RawPosition;
|
||||
if (LockX) pos.x = LockedX;
|
||||
if (LockY) pos.y = LockedY;
|
||||
state.RawPosition = pos;
|
||||
// 通过覆写 PositionCorrection 而非 RawPosition 来锁定轴向。
|
||||
// 最终相机位置 = RawPosition + PositionCorrection。
|
||||
// 只修改 PositionCorrection 可确保:
|
||||
// - 锁定轴:final = RawPos + (LockedVal - RawPos) = LockedVal,无论 Confiner 之前写入了什么修正量
|
||||
// - 非锁定轴:保留 CinemachineConfiner3D 已计算好的 PositionCorrection,限位正常生效
|
||||
// 若改为修改 RawPosition,在 Confiner 之后运行时会导致
|
||||
// final = LockedVal + ConfinementCorrection ≠ LockedVal,使 Confiner 修正量错误叠加。
|
||||
var rawPos = state.RawPosition;
|
||||
var correction = state.PositionCorrection;
|
||||
if (LockX) correction.x = LockedX - rawPos.x;
|
||||
if (LockY) correction.y = LockedY - rawPos.y;
|
||||
state.PositionCorrection = correction;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user