void LateUpdate() { topStackY = pool.FirstStack().transform.position.y; if (topStackY - startOffset < 0) { return; } else { topStackY -= startOffset; } Vector3 newPos = new Vector3(transform.position.x, originCamY + topStackY, transform.position.z); transform.position = Vector3.Lerp(transform.position, newPos, Time.deltaTime * 5f); }
void SpawnToptack() { prevStack = pool.FirstStack().transform; topStack = pool.ReuseStack().transform; topStack.localScale = prevStack.localScale; // 根据移动方向初始化位置 if (isMoveOnX) { topStack.position = new Vector3(-spawnOffset, prevStack.position.y + topStack.GetComponent <Stack>().SingleHeight(), prevStack.position.z); } else { topStack.position = new Vector3(prevStack.position.x, prevStack.position.y + topStack.GetComponent <Stack>().SingleHeight(), spawnOffset); } // 重置计时器 movingTimer = 0; }