c# - (统一)销毁当前场景中的游戏对象并在加载当前场景后使其永久销毁?
问题描述
如何永久销毁游戏对象?也就是说,如果我在当前场景中销毁它,我希望游戏对象只存在一次,然后当我重新加载同一个场景时,我希望它被禁用/销毁。我如何实现这一目标?
编辑:或者下面的脚本只能使用 bool 变量运行一次?
void Update()
{
if(Input.GetKeyDown(KeyCode.A)
{
GameObject go = GameObject.Find("Cloner");
Destroy(go);
SceneManager.LoadScene("Home");
}
}
解决方案
我通过在函数中使用 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");
}
}
推荐阅读
- javascript - Google Maps setTimeout() 不适用于 AJAX 调用
- apache-spark - 无法从 Presto EMR 访问 Glue 表
- jenkins - 将角色从 Keycloak 客户端角色映射到 Jenkins
- javascript - 在访问对象数组时遇到问题
- javascript - 收到此错误 EIO:创建反应应用程序时出现 i/o 错误
- python - 烧瓶网络套接字未连接
- c - 将不变的代码放在单独的内存部分,以减少 OTA 更新大小
- javascript - TypeError:无法读取未定义的属性“s_path”(React Native)
- node.js - 使用 docker-compose up 启动交互式 node.js CLI 应用程序
- javascript - 如何取消 QDate 选择?