记录Unity中的坑

记录Unity中的坑

Unity虽然使用C#来进行开发,但是Unity所使用的运行时和.net的原生运行时却又差别,这导致在.net中的某些代码块在Unity中运行会出现错误。

Task

Unity中虽然支持 Task ,但如果在 Update 方法中使用了 Task,需要注意不能使用 Result 来进行同步获取,会导致Unity进程假死。

File

Unity 2020中可以指定项目版本为 .net standart 2.0,这可以让我们使用更高版本的C#进行开发,但是Unity的运行时却不一定保证能正确实现。

使用 File.Move 方法可以移动文件到一个新的地方,在 .net 中使用该方法,可以实现单文件程序自更新,这是因为Windows在运行时虽然不能删除文件,但是却可以移动文件,所以可以将旧文件移动或者重命名,然后写入新文件即可。

这一简单的行为在Unity 2020中不受支持,在移动程序所使用的文件时,会产生复制的效果,即源文件还留在原目录,但是新目录下也出现了源文件的拷贝。在Unity 2022中,指定项目版本为 .net standard 2.1 则没有这个问题。

发布时间:2024-05-13
其他阅读

GUID和UUID

GUID,英文全称为 Global Unique Identifier,意为全局唯一标识符,UUID,英文全称为 Universally Unique Identifier,意为通用唯一标识符,都具有唯一性,GUID也是微软对UUID是的实现。

查看原文

JSON是什么

在现代化 Web 应用开发中,广泛使用一种名为 JSON 的数据交换格式。JSON 是一种轻量级数据交换格式,在不同系统之间提供标准且高效的数据交换。

查看原文

记录一次Unity中的同步问题

在以前做的数字孪生应用中,使用的 socket 进行定制协议开发,服务和 Unity 客户端之间可以互相进行通信,在开发时代价太大,除了正常制定数据协议外,还需要针对粘包定制切包协议。在WEB化的过程中,准备把原有的数字孪生服务端进行迁移,使用全新的 asp.net core 进行开发,双方使用 signalR 进行数据交互。

查看原文

HTTP状态码

HTTP状态码为客户端提供了一种理解事务处理结果的边界方式。本文列出一些原因短语,所使用的是HTTP/1.1规范所定义的。

查看原文

什么是上帝对象

上帝对象(God Object)是面向对象编程(OOP)中一种特殊现象,在面向对象编程中,我们把逻辑和数据封装成一个个对象,每个对象各司其职,最终实现我们的业务,但是如果业务复杂的情况下,可能会出现一个对象封装太多的数据或者担任了太多的职责的情况,这样的对象我们称为上帝对象。

查看原文