首页 > 解决方案 > (统一)销毁当前场景中的游戏对象并在加载当前场景后使其永久销毁?

问题描述

如何永久销毁游戏对象?也就是说,如果我在当前场景中销毁它,我希望游戏对象只存在一次,然后当我重新加载同一个场景时,我希望它被禁用/销毁。我如何实现这一目标?

编辑:或者下面的脚本只能使用 bool 变量运行一次?

void Update()
{
  if(Input.GetKeyDown(KeyCode.A)
  {
    GameObject go = GameObject.Find("Cloner");
    Destroy(go);
    SceneManager.LoadScene("Home");
  }
}

标签: c#unity3d

解决方案


我通过在函数中使用 DontDestroyOnLoad() 来做到这一点

无效唤醒()

static bool created = false;
public bool Loading = true;

void Awake()
{
  if(!created)
  {
    DontDestroyOnLoad(this.gameObject);
    created = true;
  }
  else
  {
  Destroy(this.gameObject);
  }
}

void Update()
{
  if(Input.GetKeyDown(KeyCode.A) && LoadingOnce == true)
  {
    GameObject go = GameObject.Find("Cloner");
    Destroy(go);
    LoadingOnce = false;
    SceneManager.LoadScene("Home");
  }
}




推荐阅读