备份,准备做双端
This commit is contained in:
@@ -17,6 +17,10 @@ public class HoldNoteController : MonoBehaviour
|
||||
private float _enterY, _exitY;
|
||||
private bool _thresholdsReady;
|
||||
|
||||
// 单条 Tiled 长音符 body 模式:本 controller 不再自行移动/几何判定,
|
||||
// 位置与尺寸完全由 HoldNote.UpdateBodyVisual 逐帧驱动(纯视觉,不参与判定)。
|
||||
private bool visualBodyMode = false;
|
||||
|
||||
// Absolute positioning for hold segments (keeps segments connected under frame spikes)
|
||||
private bool useAbsolutePositioning = false;
|
||||
private Vector3 spawnPosition;
|
||||
@@ -43,6 +47,9 @@ public class HoldNoteController : MonoBehaviour
|
||||
|
||||
public void ManualTick(float songTime, float deltaTime)
|
||||
{
|
||||
// body 模式:位置/尺寸由 HoldNote 驱动,controller 不移动、不做几何判定(纯视觉)。
|
||||
if (visualBodyMode) return;
|
||||
|
||||
if (useAbsolutePositioning)
|
||||
{
|
||||
if (isMoving) ApplyAbsolutePosition(songTime);
|
||||
@@ -150,6 +157,20 @@ public class HoldNoteController : MonoBehaviour
|
||||
visualOffset = 0f;
|
||||
}
|
||||
|
||||
// 单条 body 由 HoldNote 驱动,关闭 controller 自身的移动与几何判定。
|
||||
public void EnableVisualBodyMode()
|
||||
{
|
||||
visualBodyMode = true;
|
||||
useAbsolutePositioning = false;
|
||||
isMoving = false;
|
||||
}
|
||||
|
||||
// 池化复用时清掉 body 模式,让实例可回到普通段语义。
|
||||
public void DisableVisualBodyMode()
|
||||
{
|
||||
visualBodyMode = false;
|
||||
}
|
||||
|
||||
// 去物理判定:进入/离开判定区改由 UpdateJudgeZoneByGeometry 驱动,原 OnTrigger 回调移除。
|
||||
|
||||
// 池化复用时重置几何判定状态。
|
||||
@@ -157,6 +178,7 @@ public class HoldNoteController : MonoBehaviour
|
||||
{
|
||||
isInsideJudgeZone = false;
|
||||
_thresholdsReady = false;
|
||||
visualBodyMode = false;
|
||||
}
|
||||
|
||||
public bool IsInsideJudgArea()
|
||||
|
||||
Reference in New Issue
Block a user