using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityScene = UnityEngine.SceneManagement.Scene;
namespace FishNet.Managing.Scened
{
public abstract class SceneProcessorBase : MonoBehaviour
{
#region Protected.
///
/// SceneManager for this processor.
///
protected SceneManager SceneManager;
#endregion
///
/// Initializes this script for use.
///
/// SceneManager which will be utilizing this class.
public virtual void Initialize(SceneManager manager)
{
SceneManager = manager;
}
///
/// Called when scene loading has begun.
///
public virtual void LoadStart(LoadQueueData queueData) { }
///
/// Called when scene loading has ended.
///
public virtual void LoadEnd(LoadQueueData queueData) { }
///
/// Called when scene unloading has begun within a load operation.
///
public virtual void UnloadStart(LoadQueueData queueData) { }
///
/// Called when scene unloading has ended within a load operation.
///
public virtual void UnloadEnd(LoadQueueData queueData) { }
///
/// Called when scene unloading has begun within an unload operation.
///
public virtual void UnloadStart(UnloadQueueData queueData) { }
///
/// Called when scene unloading has ended within an unload operation.
///
public virtual void UnloadEnd(UnloadQueueData queueData) { }
///
/// Begin loading a scene using an async method.
///
/// Scene name to load.
public abstract void BeginLoadAsync(string sceneName, LoadSceneParameters parameters);
///
/// Begin unloading a scene using an async method.
///
/// Scene name to unload.
public abstract void BeginUnloadAsync(Scene scene);
///
/// Returns if a scene load or unload percent is done.
///
///
public abstract bool IsPercentComplete();
///
/// Returns the progress on the current scene load or unload.
///
///
public abstract float GetPercentComplete();
///
/// Adds a scene to loaded scenes.
///
/// Scene loaded.
public virtual void AddLoadedScene(Scene scene) { }
///
/// Returns scenes which were loaded during a load operation.
///
public abstract List GetLoadedScenes();
///
/// Activates scenes which were loaded.
///
public abstract void ActivateLoadedScenes();
///
/// Returns if all asynchronized tasks are considered IsDone.
///
///
public abstract IEnumerator AsyncsIsDone();
}
}