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); }