İlerleme göstergesi

İlerleme Göstergeleri

Örnek sahne

İlerleme göstergesini kullanma örnekleri sahnede ProgressIndicatorExamples bulunabilir. Bu sahne, SDK'ya dahil edilen ilerleme göstergesinin her bir önfazını gösteriyor. Ayrıca sahne yükleme gibi bazı yaygın zaman uyumsuz görevlerle birlikte ilerleme göstergelerinin nasıl kullanıcazı da gösterir.

İlerleme Göstergesi Örnekleri 1

Örnek: Açma, güncelleştirme & ilerleme göstergesini kapatma

İlerleme göstergeleri IProgressIndicator arabirimini uygulama. Bu arabirim kullanılarak bir GameObject nesnesinden GetComponent alınabilirsiniz.

[SerializedField]
private GameObject indicatorObject;
private IProgressIndicator indicator;

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

ve IProgressIndicator.OpenAsync()IProgressIndicator.CloseAsync() yöntemleri, Görevler'i IProgressIndicator.OpenAsync() Bu Görevleri zaman uyumsuz bir yöntemde beklenizi öneririz.

MRTK'nin varsayılan ilerleme göstergesi prefab'ları, bir görünüme yerleştiril hazır olduğunda devre dışı durumda olması gerekir. Yöntemlerine IProgressIndicator.OpenAsync() ilerleme göstergesi adı verili olduğunda gameobjects otomatik olarak etkinleştirilir ve devre dışı bırakılır. (Bu düzen IProgressIndicator arabiriminin bir gereksinimi değildir.)

Görüntülenen ilerlemesini güncelleştirmek Progress için göstergenin özelliğini 0-1 arasında bir değere ayarlayın. Görüntülenen Message iletiyi güncelleştirmek için özelliğini ayarlayın. Farklı uygulamalar bu içeriği farklı şekillerde görüntüler.

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();
}

Gösterge durumları

Hangi işlemlerin State geçerli olduğunu bir göstergenin özelliği belirler. Geçersiz yöntem çağrısı yapmak genellikle göstergenin hata bildirmesi ve herhangi bir işlemde yer almama durumuna neden olur.

Durum Geçerli İşlemler
ProgressIndicatorState.Opening AwaitTransitionAsync()
ProgressIndicatorState.Open CloseAsync()
ProgressIndicatorState.Closing AwaitTransitionAsync()
ProgressIndicatorState.Closed OpenAsync()

AwaitTransitionAsync() , bir gösterge kullanılmadan önce tam olarak açıldığından veya kapatılandan emin olmak için kullanılabilir.

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;
        }
    }