Вызов игрового интерфейса закончился не правильно? - PullRequest
0 голосов
/ 07 октября 2018

так что у меня есть сценарий Enemy Guard для невидимой игры, где ckecked, если игрок был замечен, чтобы показать состояние игры закончено.(игра поверх текста в пользовательском интерфейсе).

void Start()
{     
    if(player == null)
    {
        GameObject.FindGameObjectWithTag("Player");
    }
    viewAngle = spotlight.spotAngle;
    originalSpotlighyColour = spotlight.color;

    Vector3[] waypoints = new Vector3[pathHolder.childCount];
    for (int i = 0; i < waypoints.Length; i++)
    {
        waypoints [i] = pathHolder.GetChild (i).position;
        waypoints [i] = new Vector3 (waypoints [i].x, transform.position.y, waypoints [i].z);
    }

    StartCoroutine (FollowPath (waypoints));

}

void Update()
{
    if (CanSeePlayer())
    {
        playerVisibleTimer += Time.deltaTime;
       // spotlight.color = Color.red;
    } else
    {
        playerVisibleTimer -= Time.deltaTime;
       // spotlight.color = originalSpotlighyColour;
    }
    playerVisibleTimer = Mathf.Clamp(playerVisibleTimer, 0, timeToSpotPlayer);
    spotlight.color = Color.Lerp(originalSpotlighyColour, Color.red, playerVisibleTimer / timeToSpotPlayer);

    if(playerVisibleTimer>= timeToSpotPlayer)
    {
        if (OnGuardHasSpottedPlayer != null)
        {
            OnGuardHasSpottedPlayer();
            StopAllCoroutines();
            Seek();
            GameUI.gameIsOver = true;
        }
    }
}

Условие простое:

Если игрок виден, появляется изображение игры поверх, и игрок нажимает клавишу ПРОБЕЛ, чтобы перезапустить сцену.Но если изображение в пользовательском интерфейсе отображается только один раз, функция завершения игры больше не вызывается.Вызываются в первый раз, когда игрок теряет уровень, после этого вы можете войти в видение врага и ничего не произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...