Skip to main content

迁移到新Unity Input System: 最佳实践

· 9 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

Unity (new) Input System是Unity官方于2018年全新引入的一套跨平台、高易用性、高扩展性的新生代输入处理框架。关于如何在新项目中使用新输入系统,官方文档和大部分博客都给出了相当完善的解决方案,前任之述备矣。

然而,网络上却鲜有关于如何从旧的InputManager等组件快速迁移到Input System的相关技术文章。对于大部分的旧项目而言,迁移以便使用新特性,实现跨平台等功能非常重要。在这两天,我将一个较为大型的开源游戏OpenHogwarts/hogwarts: Hogwarts (Harry Potter) open sandbox game made in Unity迁移到Unity 2022和新输入系统(原始PR),将实践的过程简要整理成本文,希望可以对后来者有所帮助。

打造可扩展跨平台的科研工具链

· 13 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

在填补了“绘图”这一软肋后,我完成了我跨平台科研工具链的最后一块拼图。这套工具链包含了三个软件:Zotero,Obsidian和Draw.io。唯一美中不足的Obsidian并非开源软件。在这篇博客中,我将简要分析我的配置和用法。

Unity程序无法正常退出问题的修复

· One min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

一般的,Unity程序可以用这样的代码进行退出:

#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif
Application.Quit(0);

但是这个必须在主线程调用,或者说从void Update()调用,否则是无效的。如果需要从别的线程退出,可以设置一个_runShutDown变量,在其他线程修改,在Update检测。

Onedrive自动下载问题解决

· One min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

在换了新电脑后,发现如果保留所有文件夹,Onedrive会自动下载所有文件,非常痛苦。所以使用attrib /D /S +U +O -P命令,试图组织其自动下载,未果。

自动下载仍在继续,但实际上下载下来的文件会被马上自动删除(释放空间),因此该命令有效,但是所有文件仍需被下载一遍。

这应该算一个bug,但是微软从未注意到它。

NVIDIA GPU+Linux+Unity:解决方案

· 5 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

具有显示屏的完整机器

根据网上的说法,运行以下几条指令即可:

nvidia-settings -a SyncToVBlank=0
nvidia-settings -a XVideoTextureSyncToVBlank=0
export __GL_SYNC_TO_VBLANK=0

可以把性能显著提升,但是仍然达不到同机器在win下的效果。有人说用Vulkan会好些,但是那会导致闪退

关于在linux下配置nVidia GPU的亿点点坑

· 3 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

花了一下午才完成配置:

> nvidia-smi                                                                                                                      一 16:17
Tue Mar 21 00:17:49 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.89.02 Driver Version: 525.89.02 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |
| 31% 36C P0 32W / 170W | 0MiB / 12288MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

Unity on Unity:使用WebRTC套娃两个Unity应用

· 14 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

是的,我是元p

准备

我的目标是实现一个全分布式的Unity渲染系统,显然从底层入手是不可能的,因为我对图形学或者Unity一窍不通。好在Unity引入了WebRTC协议,可以以P2P方式在计算机间传输多媒体。

使用WSA+ADB+Edge调试微信网页

· One min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

众所周知,因为一些奇怪的原因,有些页面只可以在微信的浏览器里打开,这为我们对其进行逆向工程造成了极大的困难。因此,本文将介绍一种只使用windows机器完成微信网页调试的解决方案。

LaTeX突然不显示部分符号

· One min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

loading lmodern after newtxmath leads to the same problems. So your guess was correct :)

症状:LaTeX\LaTeX里的加号、求和号等符号全部不显示