Voortgangsindicator

Voortgangsindicatoren

Voorbeeldscène

Voorbeelden van het gebruik van voortgangsindicatoren vindt u in de ProgressIndicatorExamples scène. In deze scène worden alle voortgangsindicator-prefabs in de SDK gedemonstreerd. Ook wordt gedemonstreerd hoe u voortgangsindicatoren gebruikt in combinatie met een aantal algemene asynchrone taken, zoals het laden van scène's.

Progress Indicator Examples 1

Voorbeeld: Openen, bijwerken & een voortgangsindicator sluiten

Voortgangsindicatoren implementeren de IProgressIndicator interface. Deze interface kan worden opgehaald uit een GameObject met behulp van GetComponent .

[SerializedField]
private GameObject indicatorObject;
private IProgressIndicator indicator;

private void Start()
{
    indicator = indicatorObject.GetComponent<IProgressIndicator>();
}

De IProgressIndicator.OpenAsync() methoden IProgressIndicator.CloseAsync() en retourneren Taken. We raden u aan om te wachten op deze taken in een asynsync-methode.

De standaardvoorwaarde voor voortgangsindicatoren van de MRTK moet inactief zijn wanneer deze in een scène wordt geplaatst. Wanneer hun methoden worden aangeroepen, worden de gameobjecten automatisch geactiveerd en IProgressIndicator.OpenAsync() gedeactiveerd door de voortgangsindicatoren. (Dit patroon is geen vereiste voor de IProgressIndicator-interface.)

Stel de eigenschap van de indicator Progress in op een waarde van 0-1 om de weergegeven voortgang bij te werken. Stel de eigenschap Message in om het weergegeven bericht bij te werken. In verschillende implementaties kan deze inhoud op verschillende manieren worden weergegeven.

private async void OpenProgressIndicator()
{
    await indicator.OpenAsync();

    float progress = 0;
    while (progress < 1)
    {
        progress += Time.deltaTime;
        indicator.Message = "Loading...";
        indicator.Progress = progress;
        await Task.Yield();
    }

    await indicator.CloseAsync();
}

Indicatorstatussen

De eigenschap van een State indicator bepaalt welke bewerkingen geldig zijn. Het aanroepen van een ongeldige methode zorgt er doorgaans voor dat de indicator een fout rapporteert en geen actie onderneemt.

Staat Geldige bewerkingen
ProgressIndicatorState.Opening AwaitTransitionAsync()
ProgressIndicatorState.Open CloseAsync()
ProgressIndicatorState.Closing AwaitTransitionAsync()
ProgressIndicatorState.Closed OpenAsync()

AwaitTransitionAsync() kan worden gebruikt om ervoor te zorgen dat een indicator volledig is geopend of gesloten voordat u deze gebruikt.

private async void ToggleIndicator(IProgressIndicator indicator)
{
    await indicator.AwaitTransitionAsync();

    switch (indicator.State)
    {
        case ProgressIndicatorState.Closed:
            await indicator.OpenAsync();
            break;

        case ProgressIndicatorState.Open:
            await indicator.CloseAsync();
            break;
        }
    }