void Update() { float totalDistance = Vector3.Distance(m_startPoint, m_endPoint); float remainingDistance = Vector3.Distance(transform.position, m_endPoint); float alpha = Mathf.Clamp((totalDistance - remainingDistance + m_sphereSpeed) / totalDistance, 0.0f, 1.0f); transform.position = Vector3.Lerp(m_startPoint, m_endPoint, alpha); transform.rotation = Quaternion.Euler(0.0f, transform.rotation.eulerAngles.y + 360 * Time.deltaTime, 0.0f); if (alpha == 1.0f) { m_posIndex++; if (m_posIndex < m_positions.Length) { m_startPoint = m_endPoint; m_endPoint = m_positions[m_posIndex]; } else { m_cubeGrid.ActivateCubeAt(m_colorKey, m_destinationCoord); m_turret.Reload(GameManager.instance.GetJewel); Destroy(gameObject); } } }