缺陷:两个场景中来回跳转时 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();
}
}
方法三: 在游戏开始时第一个场景中 直接设置好不需要销毁的物体 从此以后再也不跳转到第一个场景