notebook实装功能,galgame继续,一些bug修复

This commit is contained in:
2026-03-06 02:08:43 +08:00
parent 9011fa022e
commit 1f4077cf21
468 changed files with 50175 additions and 11402 deletions
@@ -13,6 +13,7 @@ public class HoldNoteController : MonoBehaviour
private bool useAbsolutePositioning = false;
private Vector3 spawnPosition;
private float baseSpawnYOffset = 0f; // can be negative to offset upward for delayed segments
private float visualOffset = 0f; // additional Y offset for visual compensation
private void Update()
{
@@ -44,6 +45,7 @@ public class HoldNoteController : MonoBehaviour
activationTime = hitTime - travelTime;
isMoving = false;
useAbsolutePositioning = false;
visualOffset = 0f;
}
/// <summary>
@@ -54,6 +56,7 @@ public class HoldNoteController : MonoBehaviour
activationTime = Time.time + segmentDelay;
isMoving = false;
useAbsolutePositioning = false;
visualOffset = 0f;
}
public void SetSpeed(float newSpeed)
@@ -66,11 +69,12 @@ public class HoldNoteController : MonoBehaviour
/// spawnPoint should be the original spawn point for the lane.
/// baseSpawnYOffset is applied to keep delayed segments offset upward (can be negative).
/// </summary>
public void ConfigureAbsolutePositioning(Vector3 spawnPoint, float newActivationTime, float spawnYOffset)
public void ConfigureAbsolutePositioning(Vector3 spawnPoint, float newActivationTime, float spawnYOffset, float newVisualOffset = 0f)
{
spawnPosition = spawnPoint;
activationTime = newActivationTime;
baseSpawnYOffset = spawnYOffset;
visualOffset = newVisualOffset;
useAbsolutePositioning = true;
isMoving = true;
@@ -81,6 +85,7 @@ public class HoldNoteController : MonoBehaviour
public void StopMovement()
{
isMoving = false;
visualOffset = 0f;
}
private void OnTriggerEnter2D(Collider2D collision)
@@ -109,6 +114,7 @@ public class HoldNoteController : MonoBehaviour
public bool UsesAbsolutePositioning => useAbsolutePositioning;
public float BaseSpawnYOffset => baseSpawnYOffset;
public Vector3 SpawnPosition => spawnPosition;
public float VisualOffset => visualOffset;
private void ApplyAbsolutePosition(float time)
{
@@ -116,7 +122,8 @@ public class HoldNoteController : MonoBehaviour
float travelDistance = speed * elapsed;
Vector3 newPos = spawnPosition;
newPos.y -= (baseSpawnYOffset + travelDistance);
// Apply visual offset (positive moves the note down its path earlier)
newPos.y -= (baseSpawnYOffset + travelDistance + visualOffset);
transform.position = newPos;
}
}