Files
TaiWan/Assets/Roaming/Scripts/ClearSceneData.cs

70 lines
1.5 KiB
C#
Raw Normal View History

2025-10-31 15:20:38 +08:00
using System;
using UnityEngine;
using System.Collections;
using System.Runtime.CompilerServices;
using Object = UnityEngine.Object;
using UnityEngine.SceneManagement;
public class ClearSceneData : MonoBehaviour
{
//<2F><EFBFBD><ECB2BD><EFBFBD><EFBFBD>
private AsyncOperation async;
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private static string nextSceneName;
void Awake()
{
Object[] objAry = Resources.FindObjectsOfTypeAll<Material>();
for (int i = 0; i < objAry.Length; ++i)
{
objAry[i] = null;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
Object[] objAry2 = Resources.FindObjectsOfTypeAll<Texture>();
for (int i = 0; i < objAry2.Length; ++i)
{
objAry2[i] = null;
}
//ж<><D0B6>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Դ
Resources.UnloadUnusedAssets();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GC.Collect();
GC.WaitForPendingFinalizers();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>̣߳<DFB3>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>ոö<D5B8><C3B6><EFBFBD>Ϊֹ
GC.Collect();
}
void Start()
{
StartCoroutine("AsyncLoadScene", nextSceneName);
}
///
/// <20><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>л<EFBFBD><D0BB><EFBFBD>ClearScene<6E><65><EFBFBD>˽ű<CBBD><C5B1>ǹ<EFBFBD><C7B9><EFBFBD>ClearScene<6E><65><EFBFBD><EFBFBD><EFBFBD>µģ<C2B5><C4A3>ͻ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
///
///
public static void LoadScene(string _nextSceneName)
{
nextSceneName = _nextSceneName;
SceneManager.LoadScene("LoadScene");
}
///
/// <20><EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///
IEnumerator AsyncLoadScene(string sceneName)
{
async = SceneManager.LoadSceneAsync(sceneName);
yield return async;
}
void OnDestroy()
{
async = null;
}
}