Skip to main content

6 posts tagged with "Unity"

View All Tags

自定义Unity编译内容

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

与Unity Editor环境不同,在生成Unity Build时,Unity只会选择平台对应部分的代码构建,而跳过非本平台的部分。如,WindowsBuild只会包含Windows相关的内容,不会有Android的内容。那如果我想在LinuxBuild中包括Windows相关的API,该怎么办呢?

解决Unity XR中UI不可交互的问题

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

笔者这一周来都在学习如何在Unity XR场景中构筑一个可交互的UI,可是无论怎么搞UI都没有反应,控制器的光线根本就照不到UI上,更别提交互了。然而,就在刚刚,这个谜题被解开,原因非常难绷。

迁移到新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),将实践的过程简要整理成本文,希望可以对后来者有所帮助。

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检测。

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会好些,但是那会导致闪退

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方式在计算机间传输多媒体。