notebook实装功能,galgame继续,一些bug修复
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user