116 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections.Generic;
 | |
| using UnityEngine.SceneManagement;
 | |
| 
 | |
| namespace FishNet.Managing.Scened
 | |
| {
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Data about which scenes to unload.
 | |
|     /// </summary>    
 | |
|     public class SceneUnloadData
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// When specified this scene will be set as the active scene after unloading occurs.
 | |
|         /// </summary>
 | |
|         public SceneLookupData PreferredActiveScene = null;
 | |
|         /// <summary>
 | |
|         /// SceneLookupData for each scene to load.
 | |
|         /// </summary>
 | |
|         public SceneLookupData[] SceneLookupDatas = new SceneLookupData[0];
 | |
|         /// <summary>
 | |
|         /// Parameters which may be set and will be included in load callbacks.
 | |
|         /// </summary>
 | |
|         public UnloadParams Params = new UnloadParams();
 | |
|         /// <summary>
 | |
|         /// Additional options to use for loaded scenes.
 | |
|         /// </summary>
 | |
|         public UnloadOptions Options = new UnloadOptions();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         public SceneUnloadData() { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="scene">Scene to unload.</param>
 | |
|         public SceneUnloadData(Scene scene) : this(new Scene[] { scene }) { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneName">Scene to unload by name.</param>
 | |
|         public SceneUnloadData(string sceneName) : this(new string[] { sceneName }) { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneHandle">Scene to unload by handle.</param>
 | |
|         public SceneUnloadData(int sceneHandle) : this(new int[] { sceneHandle }) { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="scenes">Scenes to unload.</param>
 | |
|         public SceneUnloadData(List<Scene> scenes) : this(scenes.ToArray()) { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneNames">Scenes to unload by names.</param>
 | |
|         public SceneUnloadData(List<string> sceneNames) : this(sceneNames.ToArray()) { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneHandles">Scenes to unload by handles.</param>
 | |
|         public SceneUnloadData(List<int> sceneHandles) : this(sceneHandles.ToArray()) { }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="scenes">Scenes to unload.</param>
 | |
|         public SceneUnloadData(Scene[] scenes)
 | |
|         {
 | |
|             SceneLookupDatas = SceneLookupData.CreateData(scenes);
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneNames">Scenes to unload by names.</param>
 | |
|         public SceneUnloadData(string[] sceneNames)
 | |
|         {
 | |
|             SceneLookupDatas = SceneLookupData.CreateData(sceneNames);
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneHandles">Scenes to unload by handles.</param>
 | |
|         public SceneUnloadData(int[] sceneHandles)
 | |
|         {
 | |
|             SceneLookupDatas = SceneLookupData.CreateData(sceneHandles);
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sceneLookupDatas">Scenes to unload by SceneLookupDatas.</param>
 | |
|         public SceneUnloadData(SceneLookupData[] sceneLookupDatas)
 | |
|         {
 | |
|             SceneLookupDatas = sceneLookupDatas;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Returns if any data is invalid, such as null entries.
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         internal bool DataInvalid()
 | |
|         {
 | |
|             //Null values.
 | |
|             if (Params == null || SceneLookupDatas == null ||
 | |
|                 Options == null)
 | |
|                 return true;
 | |
|             //No lookups.
 | |
|             if (SceneLookupDatas.Length == 0)
 | |
|                 return true;
 | |
| 
 | |
|             return false;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
| } |