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

解决sqlite依赖无法打包单文件的问题

在一次WPF开发中,选用了sqlite作为内嵌数据库,使用 ystem.Data.SQLite 库来调用,在使用 Fody 进行单文件打包时,发现打包文成后会出现 x86 和 x64 两个特定的文件夹,分别对应着32位和64位的 SQLite.Interop.dll,本文介绍修改项目文件来实现将 sqlite 通信库一起打包成单文件的方法。

查看原文

Angular使用路由复用实现单页多窗(Tab)

我们在开发后台管理系统时,一个很重要的需求就是多窗口编辑,来回切换使用。一种思路是使用iframe来记录多个多页面展示,本文通过Angular路由复用来实现这一需求。

查看原文

asp.net core实现一个反向代理

本文将向你展示如何在C#和ASP.NET Core中实现一个反向代理功能。

查看原文

Visual Studio 2022激活密钥

Visual Studio 2022 Pro 激活密钥:

查看原文

Blazor文件上传解决方案

Blazor 是由 Asp.Net Core 团队推出的一个Web前端SPA解决方案,其中包括了使用 WebAssembly 的 Blazor Wasm 和使用 SignalR 进行实时交互的 Blazor server。本篇文章中使用的是 Blazor Wasm 方案来验证上传文件的操作。

查看原文