Unity删除文件时卡死于Application.UpdateScene无限hold on等待

使用版本Unity 2022 LTS

复现步骤:

场景中包含了subScene,并且subScene中拥有gameObject以后

对项目内的文件进行删除会触发unity重编译

这时编译读条就会卡死与标题所属状态(只有删除时会)

无论等多久都不会结束,开debug介入调试,暂停后发现是brust 编译卡住了,处于无限等待状态。

以上状况使用新建的空模板也会发生,不限URP或HDRP。

解决方案:

1、不需要使用Brust的话,直接在标题栏Jobs->Brust 取消 Enable compilation。这样可以取消brust编译

2、需要使用brust的话,在标题栏Jobs->Brust 取消synchronous compilation(同步编译),这个是用于brust代码同步编译的,如果项目中有brust代码无法编译或者编译出问题了,可能会触发上述的卡死,取消勾选后brust默认异步编译。在有需要同步编译的代码调用brust compile时设置同步编译的属性为true即可。

因为没法定位到问题根源,估计得问题出在unity自身的包上,在bug修复前建议先按解决方案处理。有更好的方案或者补充欢迎评论,谢谢w

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中,可以使用`Application.persistentDataPath`路径来访问应用程序的持久化数据路径。这个路径是一个特定于平台的路径,可以用于在应用程序运行保存和读取数据。 下面是一个示例代码,演示了如何将数据以JSON格式写入到文件中: ```csharp using UnityEngine; using System.IO; public class JsonFileWriter : MonoBehaviour { private string filePath; private void Start() { // 设置要写入的文件路径 filePath = Path.Combine(Application.persistentDataPath, "data.json"); // 创建一个示例的数据对象 DataObject data = new DataObject(); data.name = "John"; data.age = 25; // 将数据转换为JSON格式的字符串 string json = JsonUtility.ToJson(data); // 调用写入文件的方法 WriteToFile(json); } private void WriteToFile(string content) { // 使用StreamWriter打开文件,如果文件不存在则会创建新文件 using (StreamWriter writer = new StreamWriter(filePath)) { // 写入内容到文件 writer.WriteLine(content); } Debug.Log("文件写入完成!"); } } // 示例数据类 [System.Serializable] public class DataObject { public string name; public int age; } ``` 在上述示例中,首先通过`Path.Combine`方法将`Application.persistentDataPath`和文件名拼接成完整的文件路径。然后,创建一个示例的数据对象,并将其转换为JSON格式的字符串。最后,调用`WriteToFile`方法将JSON字符串写入到文件中。 请注意,Unity的`JsonUtility`类提供了一些用于序列化和反序列化JSON的方法,方便地在C#对象和JSON之间进行转换。 通过以上代码,您可以将数据以JSON格式写入到Unity应用程序的持久化数据路径中的文件中。在实际使用中,您可以根据需要进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值