fix(camera-kit): 修复相机震动叠加导致无法回归原点
This commit is contained in:
@@ -29,6 +29,7 @@ namespace AibisDream.Framework
|
||||
private CameraEnum _curCameraEnum;
|
||||
private CamState _curInitState;
|
||||
private Camera _orthoMainCamera;
|
||||
private Tween _shakeTween;
|
||||
|
||||
private struct CamState
|
||||
{
|
||||
@@ -288,9 +289,23 @@ namespace AibisDream.Framework
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return curCamera.VirtualCameraGameObject.transform
|
||||
var transform = curCamera.VirtualCameraGameObject.transform;
|
||||
|
||||
// 停止并清理之前的震动,防止多个 tween 叠加导致无法回归原点
|
||||
if (_shakeTween != null && _shakeTween.IsActive())
|
||||
{
|
||||
_shakeTween.Kill();
|
||||
if (_camInitStateDict.TryGetValue(_curCameraEnum, out var camState))
|
||||
{
|
||||
transform.localPosition = camState.pos;
|
||||
}
|
||||
}
|
||||
|
||||
_shakeTween = transform
|
||||
.DOShakePosition(duration, strength, vibrate, 90, false, false)
|
||||
.WaitForCompletion();
|
||||
.OnComplete(() => _shakeTween = null);
|
||||
|
||||
yield return _shakeTween.WaitForCompletion();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -95,7 +95,7 @@ namespace AibisDream
|
||||
|
||||
public IEnumerator Enter()
|
||||
{
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Subway);
|
||||
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Subway, true);
|
||||
DialogUIManager.Instance.LoadBubbles(SubwayCenter.Instance.subwaySlots.CollectData());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user