Пример #1
0
    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);
    }
Пример #2
0
    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;
    }