LookAt调整

This commit is contained in:
SoulliesOfficial
2025-07-17 04:35:17 -04:00
parent 015a174afc
commit c52a2106db
20 changed files with 23892 additions and 15985 deletions

View File

@@ -93,29 +93,6 @@ namespace Ichni.RhythmGame
public partial class GameCamera
{
public void UpdateLookAt(LookAt lookAt) // 处理LookAt
{
if (
transformSubmodule.eulerAnglesOffsetLock &&
transformSubmodule.eulerAnglesDirtyMark)
{
Vector3 lookingDirection = (lookAt.lookAtObject.transform.position - transform.position).normalized;
Vector3 eulerAnglesOffse = Quaternion.LookRotation(lookingDirection).eulerAngles;
transformSubmodule.eulerAnglesOffset.Add(eulerAnglesOffse);
Vector3 offset = transformSubmodule.eulerAnglesOffset.Sum();
transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + offset;
// transform.LookAt(transformSubmodule.lookAt.lookAtObject.transform);
transform.localEulerAngles = transformSubmodule.currentEulerAngles;
transformSubmodule.eulerAnglesDirtyMark = false;
transformSubmodule.eulerAnglesOffset.Clear();
}
}
public void SetTransformObserver()
{
Observable.EveryLateUpdate().Subscribe(_ =>
@@ -129,22 +106,20 @@ namespace Ichni.RhythmGame
if (!transformSubmodule.eulerAnglesOffsetLock && transformSubmodule.eulerAnglesDirtyMark)
{
Vector3 offset = transformSubmodule.eulerAnglesOffset.Sum();
transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + offset;
transformSubmodule.currentEulerAngles = transformSubmodule.originalEulerAngles + transformSubmodule.eulerAnglesOffset;
transform.localEulerAngles = transformSubmodule.currentEulerAngles;
transformSubmodule.eulerAnglesDirtyMark = false;
willRefresh = true;
transformSubmodule.eulerAnglesOffset.Clear();
transformSubmodule.eulerAnglesOffset = Vector3.zero;
}
if (transformSubmodule.positionDirtyMark)
{
Vector3 offset = transformSubmodule.positionOffset.Sum();
transformSubmodule.currentPosition = transformSubmodule.originalPosition + offset;
transformSubmodule.currentPosition = transformSubmodule.originalPosition + transformSubmodule.positionOffset;
transform.localPosition = transformSubmodule.currentPosition;
transformSubmodule.positionDirtyMark = false;
willRefresh = true;
transformSubmodule.positionOffset.Clear();
transformSubmodule.positionOffset = Vector3.zero;
}
if (willRefresh)