Skip to main content

6 posts tagged with "Unity"

View All Tags

· One min read
Ferdinand Su

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

· 2 min read
Ferdinand Su

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

· 9 min read
Ferdinand Su

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

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

· One min read
Ferdinand Su

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

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

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

· 5 min read
Ferdinand Su

具有显示屏的完整机器

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

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

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