/// <summary> /// Принять выпавшее число /// </summary> /// <param name="droppedNumber"></param> private void ApplyDroppedNumber(int droppedNumber) { _droppedBones++; _droppedNumber += droppedNumber; if (_droppedBones < _numberBones) { return; } _isBonesSleeping = true; OnDroppedNumber?.Invoke(_droppedNumber); OnUpdateBonesState?.Invoke(BonesState.Sleep); ResetData(); }
private IEnumerator ThrowBones() { yield return(new WaitUntil(() => _isGameFieldCleared == true)); _isGameFieldCleared = false; for (int i = 0; i < _numberBones; i++) { Vector3 spawnPosition = new Vector3(_spawnPoint.position.x + Random.Range(-1f, 1f), _spawnPoint.position.y, _spawnPoint.position.z); Bone bone = GetBoneFromPool(); bone.transform.position = spawnPosition; bone.transform.rotation = _spawnPoint.localRotation; bone.Init(_power, ApplyDroppedNumber, _targetDroppedValue); } OnUpdateBonesState?.Invoke(BonesState.Throw); OnThrowed?.Invoke(); }