Skip to content

Commit 32f59fb

Browse files
committed
refactor: Move additive scene event to scene manager
1 parent 6377642 commit 32f59fb

File tree

6 files changed

+43
-140
lines changed

6 files changed

+43
-140
lines changed

Assets/JCSUnity/Prefabs/Events.meta

Lines changed: 0 additions & 8 deletions
This file was deleted.

Assets/JCSUnity/Prefabs/Events/JCS_AdditiveSceneLoadEvent.prefab

Lines changed: 0 additions & 47 deletions
This file was deleted.

Assets/JCSUnity/Prefabs/Events/JCS_AdditiveSceneLoadEvent.prefab.meta

Lines changed: 0 additions & 7 deletions
This file was deleted.

Assets/JCSUnity/Scripts/Events/System/JCS_AdditiveSceneLoadEvent.cs

Lines changed: 0 additions & 53 deletions
This file was deleted.

Assets/JCSUnity/Scripts/Events/System/JCS_AdditiveSceneLoadEvent.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.

Assets/JCSUnity/Scripts/Managers/JCS_SceneManager.cs

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ public class JCS_SceneManager : JCS_Manager<JCS_SceneManager>
6262
[SerializeField]
6363
private JCS_SwitchSceneType mSwitchSceneType = JCS_SwitchSceneType.BLACK_SCREEN;
6464

65+
[Header("Overlay")]
66+
67+
[Tooltip("A list of addictive scene to load.")]
68+
[Scene]
69+
private List<string> mOverlaySceneNames = null;
70+
71+
[Tooltip("Load scene asynchronously.")]
72+
[SerializeField]
73+
private bool mUseAsync = false;
74+
6575
[Separator("Runtime Variables (JCS_SceneManager)")]
6676

6777
[Header("- Screen")]
@@ -90,25 +100,30 @@ public class JCS_SceneManager : JCS_Manager<JCS_SceneManager>
90100

91101
/* Setter & Getter */
92102

93-
public JCS_SwitchSceneType switchSceneType { get { return this.mSwitchSceneType; } set { this.mSwitchSceneType = value; } }
94-
public JCS_DynamicScene GetDynamicScene() { return this.mDynamicScene; }
95-
public void SetDynamicScene(JCS_DynamicScene ds) { this.mDynamicScene = ds; }
96-
public void SetBlackScreen(JCS_BlackScreen bs) { this.mBlackScreen = bs; }
97-
public void SetBlackSlideScreen(JCS_BlackSlideScreen bs) { this.mBlackSlideScreen = bs; }
98-
public void SetWhiteScreen(JCS_WhiteScreen ws) { this.mWhiteScreen = ws; }
99-
public JCS_WhiteScreen GetWhiteScreen() { return this.mWhiteScreen; }
100-
public JCS_BlackScreen GetBlackScreen() { return this.mBlackScreen; }
103+
public JCS_SwitchSceneType switchSceneType { get { return mSwitchSceneType; } set { mSwitchSceneType = value; } }
104+
public List<string> overlaySceneNames { get { return mOverlaySceneNames; } set { mOverlaySceneNames = value; } }
105+
public bool useAsync { get { return mUseAsync; } set { mUseAsync = value; } }
101106

102-
public bool overrideSetting { get { return this.mOverrideSetting; } }
103-
public float sceneFadeInTime { get { return this.mSceneFadeInTime; } set { this.mSceneFadeInTime = value; } }
104-
public float sceneFadeOutTime { get { return this.mSceneFadeOutTime; } set { this.mSceneFadeOutTime = value; } }
107+
public JCS_DynamicScene GetDynamicScene() { return mDynamicScene; }
108+
public void SetDynamicScene(JCS_DynamicScene ds) { mDynamicScene = ds; }
109+
public void SetBlackScreen(JCS_BlackScreen bs) { mBlackScreen = bs; }
110+
public void SetBlackSlideScreen(JCS_BlackSlideScreen bs) { mBlackSlideScreen = bs; }
111+
public void SetWhiteScreen(JCS_WhiteScreen ws) { mWhiteScreen = ws; }
112+
public JCS_WhiteScreen GetWhiteScreen() { return mWhiteScreen; }
113+
public JCS_BlackScreen GetBlackScreen() { return mBlackScreen; }
114+
115+
public bool overrideSetting { get { return mOverrideSetting; } }
116+
public float sceneFadeInTime { get { return mSceneFadeInTime; } set { mSceneFadeInTime = value; } }
117+
public float sceneFadeOutTime { get { return mSceneFadeOutTime; } set { mSceneFadeOutTime = value; } }
105118

106119
/* Functions */
107120

108121
private void Awake()
109122
{
110123
RegisterInstance(this);
111124

125+
HandleAdditive();
126+
112127
switch (mSwitchSceneType)
113128
{
114129
case JCS_SwitchSceneType.BLACK_SCREEN:
@@ -130,7 +145,7 @@ private void Awake()
130145

131146
#if UNITY_EDITOR
132147
// add the tool in editor mode.
133-
this.gameObject.AddComponent<ReadSceneNames>();
148+
gameObject.AddComponent<ReadSceneNames>();
134149
#endif
135150
}
136151

@@ -174,7 +189,7 @@ private void Start()
174189
{
175190
// get the component.
176191
if (mFadeSound == null)
177-
mFadeSound = this.gameObject.AddComponent<JCS_FadeSound>();
192+
mFadeSound = gameObject.AddComponent<JCS_FadeSound>();
178193

179194
AudioSource bgmAS = JCS_BGMPlayer.instance.audioSource;
180195

@@ -210,6 +225,20 @@ private void Update()
210225
DoExitSwitchScene();
211226
}
212227

228+
/// <summary>
229+
/// Handle additive scene overlays.
230+
/// </summary>
231+
private void HandleAdditive()
232+
{
233+
foreach (string sceneName in mOverlaySceneNames)
234+
{
235+
if (mUseAsync)
236+
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
237+
else
238+
SceneManager.LoadScene(sceneName, LoadSceneMode.Additive);
239+
}
240+
}
241+
213242
#region Load Scene
214243

215244
/// <summary>
@@ -315,7 +344,7 @@ public void LoadScene(string sceneName, LoadSceneMode mode,
315344
{
316345
// get the component.
317346
if (mFadeSound == null)
318-
mFadeSound = this.gameObject.AddComponent<JCS_FadeSound>();
347+
mFadeSound = gameObject.AddComponent<JCS_FadeSound>();
319348

320349
AudioSource bgmAudioSource = JCS_BGMPlayer.instance.audioSource;
321350

0 commit comments

Comments
 (0)