İlerleme göstergesi — MRTK2
Örnek sahne
İlerleme göstergelerinin nasıl kullanılacağına ilişkin örnekler sahnede bulunabilir ProgressIndicatorExamples
. Bu sahne, SDK'ya dahil edilen ilerleme göstergesi ön eklerinin her birini gösterir. Ayrıca, sahne yükleme gibi bazı yaygın zaman uyumsuz görevlerle birlikte ilerleme göstergelerinin nasıl kullanılacağını da gösterir.

Örnek: İlerleme göstergesini açma, güncelleştirme & kapatma
İlerleme göstergeleri arabirimini IProgressIndicator
uygular. Bu arabirim kullanılarak GetComponent
bir GameObject'ten alınabilir.
[SerializedField]
private GameObject indicatorObject;
private IProgressIndicator indicator;
private void Start()
{
indicator = indicatorObject.GetComponent<IProgressIndicator>();
}
IProgressIndicator.OpenAsync()
ve IProgressIndicator.CloseAsync()
yöntemleri Görevleri döndürür. Bu Görevleri zaman uyumsuz bir yöntemde beklemenizi öneririz.
MRTK'nın varsayılan ilerleme göstergesi ön ekleri bir sahneye yerleştirildiğinde devre dışı olmalıdır.
IProgressIndicator.OpenAsync()
Yöntemleri çağrıldığında ilerleme göstergeleri gameobject'lerini otomatik olarak etkinleştirir ve devre dışı bırakır. (Bu desen IProgressIndicator arabiriminin bir gereksinimi değildir.)
Görüntülenen ilerleme durumunu güncelleştirmek için göstergenin Progress
özelliğini 0-1 arası bir değere ayarlayın.
Message
Görüntülenen iletisini güncelleştirmek için özelliğini ayarlayın. Farklı uygulamalar bu içeriği farklı şekillerde görüntüleyebilir.
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 geçerli olduğunu bir göstergenin State
özelliği belirler. Geçersiz bir yöntemi çağırmak genellikle göstergenin hata bildirmesine ve hiçbir işlem gerçekleştirmesine neden olur.
Durum | Geçerli İşlemler |
---|---|
ProgressIndicatorState.Opening |
AwaitTransitionAsync() |
ProgressIndicatorState.Open |
CloseAsync() |
ProgressIndicatorState.Closing |
AwaitTransitionAsync() |
ProgressIndicatorState.Closed |
OpenAsync() |
AwaitTransitionAsync()
bir göstergeyi kullanmadan önce tamamen açıldığından veya kapatıldığına 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;
}
}