Ссылка вперед по сравнению с предописанием

Не видя ваш код / ​​реальную проблему, трудно дать ответ, который выходит за рамки, а не очень общий:

Когда вы хотите использовать какую-то функцию ожидания в Unity, вы должны использовать сопрограммы ] используя, например, WaitForSeconds , WaitUntil , WaitWhile и другие.

private IEnumerator DoSomething()
{
    // doing something

    // waits 5 seconds
    yield return new WaitForSeconds(5);

    // do something else
}

Вы запускаете это из другого метода (внутри скрипта MonoBehaviour), используя

StartCoroutine(DoSomething());

Конечно, также можно просто подождать в методе Update MonoBehaviours, например. что-то вроде

private float timer;
private bool activateSleep;

private void Update()
{
    if(activateSleep)
    {
        timer += Time.deltaTime;

        if(timer <= 0)
        {
            activateSleep = false;
        }
        else
        {
            // return so the rest of Update is not done
            return;
        }
    }

    // Otherwise do what you would usually do
}

public void ActivateSleep(float forSeconds)
{
    timer = forSeconds;
    activateSleep = true;
}

, но вы уже видите, как «красиво» это получается ...

12
задан mslot 30 March 2009 в 09:29
поделиться

2 ответа

Из Википедии:

Предописание

Объявление переменной или функции, которые еще не определяются. Их defnition виден позже.

Ссылка вперед

Подобный Предописанию, но где переменная или функция кажутся первыми, определение также на месте.

6
ответ дан 2 December 2019 в 03:49
поделиться

предописания используются для разрешения однопроходной компиляции языка (C, Паскаль).

если ссылки вперед позволяются без предописания (Java, C#), компилятор с двумя передачами требуется.

3
ответ дан 2 December 2019 в 03:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: