Ejemplo n.º 1
0
    /// <summary>
    /// Smooth interpolation of scale and camera position
    /// </summary>
    /// <param name="scale"></param>
    /// <returns></returns>
    IEnumerator changeScale(Vector3 scale)
    {
        var selectedGearAtStart = gearScript.selectedGear;
        //Camera
        var y     = (scale.x > scale.z) ? scale.x : scale.z;
        var speed = Mathf.Abs(Vector3.Magnitude(scale - transform.localScale));

        while (true)
        {
            var wantedPosition = new Vector3(0, Mathf.Clamp(y, 2, 100), 0);
            var position       = Camera.main.transform.position;
            Camera.main.transform.position = Vector3.MoveTowards(position, wantedPosition, Time.deltaTime * dimensionChangeSpeed * speed);

            //Scale
            transform.localScale = Vector3.MoveTowards(transform.localScale, scale, Time.deltaTime * dimensionChangeSpeed * speed);



            if (transform.localScale == scale)
            {
                break;
            }
            yield return(new WaitForEndOfFrame());
        }

        isChanging = false;
        gearScript.SelectGear(selectedGearAtStart);
        gearScript.showGearToPlace = false;

        coordScript.text = storedCoordinates;
        coordScript.PlaceGearsFromCoordinates(storedCoordinates);

        trashBin.Setup();
    }