public IEnumerator MoveToSide(Vehicle3D vehicle, Vector3 targetSide) { float timeElapsed = 0f; float t = 0f; while (timeElapsed < moveDuration) { t = timeElapsed / moveDuration; t = t * t * t * (t * (6f * t - 15f) + 10f); vehicle.transform.position = (Vector3.Lerp(centerPivot.position, targetSide, t) + vehicle.GetComponent <AnchorGameObject>().currentAnchor); timeElapsed += Time.deltaTime; yield return(null); } vehicle.transform.position = targetSide; vehicle.StopMoving(); EnableVehicle(vehicle, false); }
public IEnumerator MoveFromSide(Vehicle3D vehicle, Vector3 initSide) { float timeElapsed = 0f; float t = 0f; vehicle.transform.position = initSide; yield return(null); EnableVehicle(vehicle, true); while (timeElapsed < moveDuration) { t = timeElapsed / moveDuration; t = t * t * t * (t * (6f * t - 15f) + 10f); vehicle.transform.position = Vector3.Lerp(initSide, centerPivot.position, t) + vehicle.GetComponent <AnchorGameObject>().currentAnchor; timeElapsed += Time.deltaTime; yield return(null); } vehicle.transform.position = centerPivot.position; EnableVehicle(vehicle, true); vehicle.StartMoving(); isPassingVehicle = false; }