11using Cysharp . Threading . Tasks ;
22using Insthync . AddressableAssetTools ;
33using UnityEngine ;
4+ #if ! DISABLE_ADDRESSABLES
45using UnityEngine . AddressableAssets ;
6+ #endif
57using UnityEngine . SceneManagement ;
68
79namespace LiteNetLibManager
810{
911 public class LiteNetLibAdditiveSceneLoader : MonoBehaviour
1012 {
1113 public SceneField [ ] scenes = new SceneField [ 0 ] ;
14+ #if ! DISABLE_ADDRESSABLES
1215 public AssetReferenceScene [ ] addressableScenes = new AssetReferenceScene [ 0 ] ;
16+ #endif
1317#if UNITY_SERVER || UNITY_EDITOR
1418 public SceneField [ ] serverOnlyScenes = new SceneField [ 0 ] ;
19+ #if ! DISABLE_ADDRESSABLES
1520 public AssetReferenceScene [ ] serverOnlyAddressableScenes = new AssetReferenceScene [ 0 ] ;
1621#endif
22+ #endif
1723#if ! UNITY_SERVER || UNITY_EDITOR
1824 public SceneField [ ] clientOnlyScenes = new SceneField [ 0 ] ;
25+ #if ! DISABLE_ADDRESSABLES
1926 public AssetReferenceScene [ ] clientOnlyAddressableScenes = new AssetReferenceScene [ 0 ] ;
2027#endif
28+ #endif
2129#if UNITY_EDITOR
2230 public SceneField [ ] editorOnlyScenes = new SceneField [ 0 ] ;
31+ #if ! DISABLE_ADDRESSABLES
2332 public AssetReferenceScene [ ] editorOnlyAddressableScenes = new AssetReferenceScene [ 0 ] ;
33+ #endif
2434#endif
2535
2636 public int GetTotalLoadCount ( )
2737 {
2838 int total = 0 ;
29- total += scenes . Length + addressableScenes . Length ;
39+ total += scenes . Length ;
40+ #if ! DISABLE_ADDRESSABLES
41+ total += addressableScenes . Length ;
42+ #endif
43+
3044#if UNITY_SERVER
31- total += serverOnlyScenes . Length + serverOnlyAddressableScenes . Length ;
45+ total += serverOnlyScenes . Length ;
46+ #if ! DISABLE_ADDRESSABLES
47+ total += serverOnlyAddressableScenes . Length ;
3248#endif
49+ #endif
50+
3351#if ! UNITY_SERVER
34- total += clientOnlyScenes . Length + clientOnlyAddressableScenes . Length ;
52+ total += clientOnlyScenes . Length ;
53+ #if ! DISABLE_ADDRESSABLES
54+ total += clientOnlyAddressableScenes . Length ;
3555#endif
56+ #endif
57+
3658#if UNITY_EDITOR
37- total += editorOnlyScenes . Length + editorOnlyAddressableScenes . Length ;
59+ total += editorOnlyScenes . Length ;
60+ #if ! DISABLE_ADDRESSABLES
61+ total += editorOnlyAddressableScenes . Length ;
62+ #endif
3863#endif
3964 return total ;
4065 }
4166
4267 public async UniTask LoadAll ( LiteNetLibGameManager manager , string sceneName , bool isOnline )
4368 {
4469 int loadCount = 0 ;
45- loadCount = await LoadAll ( manager , sceneName , isOnline , scenes , addressableScenes , loadCount ) ;
70+ loadCount = await LoadAll ( manager , sceneName , isOnline ,
71+ scenes ,
72+ #if ! DISABLE_ADDRESSABLES
73+ addressableScenes ,
74+ #endif
75+ loadCount) ;
4676#if UNITY_SERVER
47- loadCount = await LoadAll ( manager , sceneName , isOnline , serverOnlyScenes , serverOnlyAddressableScenes , loadCount ) ;
77+ loadCount = await LoadAll ( manager , sceneName , isOnline ,
78+ serverOnlyScenes ,
79+ #if ! DISABLE_ADDRESSABLES
80+ serverOnlyAddressableScenes ,
81+ #endif
82+ loadCount) ;
4883#endif
4984#if ! UNITY_SERVER
50- loadCount = await LoadAll ( manager , sceneName , isOnline , clientOnlyScenes , clientOnlyAddressableScenes , loadCount ) ;
85+ loadCount = await LoadAll ( manager , sceneName , isOnline ,
86+ clientOnlyScenes ,
87+ #if ! DISABLE_ADDRESSABLES
88+ clientOnlyAddressableScenes ,
89+ #endif
90+ loadCount) ;
5191#endif
5292#if UNITY_EDITOR
53- loadCount = await LoadAll ( manager , sceneName , isOnline , editorOnlyScenes , editorOnlyAddressableScenes , loadCount ) ;
93+ loadCount = await LoadAll ( manager , sceneName , isOnline ,
94+ editorOnlyScenes ,
95+ #if ! DISABLE_ADDRESSABLES
96+ editorOnlyAddressableScenes ,
97+ #endif
98+ loadCount) ;
5499#endif
55100 }
56101
57- public async UniTask < int > LoadAll ( LiteNetLibGameManager manager , string sceneName , bool isOnline , SceneField [ ] scenes , AssetReferenceScene [ ] addressableScenes , int loadCount )
102+ public async UniTask < int > LoadAll ( LiteNetLibGameManager manager , string sceneName , bool isOnline ,
103+ SceneField [ ] scenes ,
104+ #if ! DISABLE_ADDRESSABLES
105+ AssetReferenceScene [ ] addressableScenes ,
106+ #endif
107+ int loadCount )
58108 {
59109 // Load scene
60110 for ( int i = 0 ; i < scenes . Length ; ++ i )
@@ -76,6 +126,7 @@ public async UniTask<int> LoadAll(LiteNetLibGameManager manager, string sceneNam
76126 manager . LoadedAdditiveScenesCount ++ ;
77127 manager . Assets . onLoadAdditiveSceneProgress . Invoke ( manager . LoadedAdditiveScenesCount , manager . TotalAdditiveScensCount ) ;
78128 }
129+ #if ! DISABLE_ADDRESSABLES
79130 // Load from addressable
80131 for ( int i = 0 ; i < addressableScenes . Length ; ++ i )
81132 {
@@ -106,7 +157,8 @@ await AddressableAssetDownloadManager.Download(
106157 manager . LoadedAdditiveScenesCount ++ ;
107158 manager . Assets . onLoadAdditiveSceneProgress . Invoke ( manager . LoadedAdditiveScenesCount , manager . TotalAdditiveScensCount ) ;
108159 }
160+ #endif
109161 return loadCount ;
110162 }
111163 }
112- }
164+ }
0 commit comments