using System.Threading.Tasks; using UnityEngine; namespace SC.XR.Unity { public interface IProgressIndicator { /// /// Used to determine whether it's appropriate to use this indicator. /// ProgressIndicatorState State { get; } /// /// Loading progress value from 0 (just started) to 1 (complete) /// float Progress { get; set; } /// /// Opens the progress indicator before loading begins. Method is async to allow for animation to begin before loading. /// Task OpenAsync(); /// /// Returns after progress indicator completes its opening or closing transition. /// Task AwaitTransitionAsync(); /// /// Closes the progress indicator after loading is finished. Method is async to allow for animation to complete. /// Task CloseAsync(); /// /// Set the progress value of the progress indicator. /// void SetProgress(float progress); } }