Loading场景及持久化场景
Loading场景
每次切换场景时首先异步加载Loading,再通过Loding异步加载指定的场景
目录结构
UI组件情况
UI_Loding->UIInfo
UIScene_Loading->UILoading
分析
每次切换场景由Loading进行异步加载场景,并将加载的进度,返回给Slider,显示加载的进度
实现
这里没有用UIScene,因为场景够简单够单纯,用也可以,但是要去UIManager里面增加初始化UIScene显示的代码
public class UILoading : MonoBehaviour {
private Slider m_Progress;
AsyncOperation m_Async;
//为了开启协程,所以使用IEnumerator
IEnumerator Start()
{
m_Progress = UIHelper.FindChild<Slider>(transform, "Slider");
m_Async = SceneManager.LoadSceneAsync(UIHelper.LoadSceneName);
yield return m_Async;
}
void Update()
{
m_Progress.value = m_Async.progress;
}
}
持久化场景 GameMain
GameMain两个功能
持久化数据管理,不受场景的切换而销毁
管理场景切换
目录结构
组件情况
GameMain -> GameMain
PhotonManager ->PhotonManager
分析
持久化即使用DontDersoryOnLoad,该GameObject不因为切换场景而销毁。我们把经常使用的,又不易更改的,又费性能的放在里面。如我们的P