缺陷:兩個場景中來回跳轉時 DontDestroyOnLoad的物體會重複創建 而我們要求場景中只存在一個
解決辦法:
方法一 這個方法直接掛在到一個物體上就可以
public class DestornDemo : MonoBehaviour {
public static DestornDemo Instance=null ;
//--------方法一
private void Start()
{
if (Instance !=null)
{
Destroy(this);
return;
}
Instance = this;
DontDestroyOnLoad(this);
}
private void OnGUI()
{
if (GUILayout.Button("跳轉:1"))
{
SceneManager.LoadScene(1);
}
if (GUILayout.Button("跳轉:0"))
{
SceneManager.LoadScene(0);
}
}
}
阿斯頓發
方法二 此腳本不需要掛載 但是需要調用一下這個腳本中的方法
public class DestornDemo : MonoBehaviour {
public static DestornDemo Instance=null ;
static DestornDemo()
{
GameObject obj = new GameObject("show");
Instance = obj.AddComponent<DestornDemo>();
DontDestroyOnLoad(obj);
print("Chushihua");
}
public void Destroy()
{
print("SettingOver");
}
private void OnGUI()
{
if (GUILayout.Button("跳轉:1"))
{
SceneManager.LoadScene(1);
}
if (GUILayout.Button("跳轉:0"))
{
SceneManager.LoadScene(0);
}
}
}
在另一個腳本中調用
public class Destroy_2 : MonoBehaviour
{
void Start()
{
DestornDemo.Instance.Destroy();
}
}
方法三: 在遊戲開始時第一個場景中 直接設置好不需要銷燬的物體 從此以後再也不跳轉到第一個場景