记录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
其他阅读

使用表达式树来提高反射的性能

反射是C#中一种常用的技术,反射提供了动态创建和访问对象的基础,但是反射在带来了极强的灵活性的同时,也带了极大的性能损耗,本文就介绍通过表达式树来提高反射过程中的性能。

查看原文

IIS 设置跨域问题

之前说过nginx设置跨域,今天记录以下IIS设置跨域

查看原文

记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

查看原文

Angular中开发一个代码库

Angular 的复杂项目中,我们可以对其拆分出不同功能模块进行开发,但是对于大型项目,或者我们直接考虑拆成库,将一部分的模块合起来组成一个库,方便复用,比如我们熟悉的各种设计组件库,就是一堆模块的合集。

查看原文

TypeScript中的数组操作

我们在编码时,总会用到数组/列表这种类型,用于在单个对象中存储多个内容。在 TypeScript 中,也已经内置了该类型,方便我们来使用。

查看原文