예제 #1
0
 private void PrepareNewGame()
 {
     ChangeToPullArrowPhase();
     roundNumber = 1;
     for (int i = 0; i < roundScore.Length; i++)
     {
         roundScore[i] = 0;
     }
     LevelEvents.RaiseLevelEvent(LevelEvents.LevelEventType.ContinueToNextLevel);
 }
예제 #2
0
    private void SpawnObject()
    {
        if (currentObjectInstance != null)
        {
            Destroy(currentObjectInstance);
        }
        RaycastHit hitInfo = GetRandomSpawnHitRayPosition();

        currentObjectInstance = Instantiate(spawnObject, hitInfo.point, Quaternion.identity);
        currentObjectInstance.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform);
        SpawnTargetDistanceOverlayUI();
        LevelEvents.RaiseLevelEvent(LevelEvents.LevelEventType.SpawnTarget);
    }
예제 #3
0
    IEnumerator WaitForSecondsContinueToNextLevelEnumerator()
    {
        yield return(new WaitForSeconds(secondsBeforeContinueToNextLevel));

        roundNumber += 1; // go to next round
        if (roundNumber > 10)
        {
            LevelEvents.RaiseLevelEvent(LevelEvents.LevelEventType.GameOver);
        }
        else
        {
            ChangeToPullArrowPhase();
            LevelEvents.RaiseLevelEvent(LevelEvents.LevelEventType.ContinueToNextLevel);
        }
    }
예제 #4
0
 public void RetryGame()
 {
     ClearPrefabScoreList();
     gameOverScreen.SetActive(false);
     LevelEvents.RaiseLevelEvent(LevelEvents.LevelEventType.RetryGame);
 }
예제 #5
0
 public void AddScore(int addScore)
 {
     roundScore[roundNumber - 1] = addScore;
     LevelEvents.RaiseLevelEvent(LevelEvents.LevelEventType.AddScore);
 }