public IEnumerator MoveOneStepForwardCoroutine(PlayerSphereBehaviour atackBall) { // Debug.Log("MoveOneStepForwardCoroutine run"); while (true) { yield return(null); if (atackBall == null) //Якщо якимось чином куля знищена до break { EndOneStepCorProc(); yield break; } if ((Vector3.Distance(atackBall.gameObject.transform.position, transform.position) >= (radius * 1.95f) && !atackBall.isRotableBall)) { EndOneStepCorProc(); yield break; } } }
public void MoveOneStepForward(PlayerSphereBehaviour atackBall) //Coroutine запускається з метода, що б не створювати булеву змінну для виконання початкового коду тільки один раз { // Speed = 5.0f; MoveForwardBall(Speed > 4.0?10.0f:6.0f, 1, false); StartCoroutine(MoveOneStepForwardCoroutine(atackBall)); }