Esempio n. 1
0
    internal IEnumerator UseHatchCor(Hatch enter)
    {
        HatchList.Instance.Use(true);

        isBusy = true;
        mover.UseHatch(true);

        sr.sprite            = HatchSprite;
        transform.localScale = Vector3.one * HatchSizeKoef;

        sr.color = HatchColor;

        var targetHatch = HatchList.Instance.GetRandomHatch(enter);
        var targetPos   = targetHatch.transform.position;
        var startPos    = enter.transform.position;
        var dir         = startPos - targetPos;
        var time        = dir.magnitude / (mover.MaxSpeed * HatchList.Instance.SpeedKoefInHatch);

        // для направления значка в решетке
        mover.rb.velocity = dir;

        var elapsedTime = 0f;

        while (elapsedTime < time)
        {
            transform.position = Vector3.Lerp(startPos, targetPos, (elapsedTime / time));
            elapsedTime       += Time.deltaTime;
            yield return(null);
        }

        sr.sprite            = defaultSprite;
        transform.localScale = defaultScale;
        sr.color             = defaultColor;

        targetHatch.Break();

        isBusy = false;
        mover.UseHatch(false);

        HatchList.Instance.Use(false);
    }