与Unity Editor环境不同,在生成Unity Build时,Unity只会选择平台对应部分的代码构建,而跳过非本平台的部分。如,WindowsBuild只会包含Windows相关的内容,不会有Android的内容。那如果我想在LinuxBuild中包括Windows相关的API,该怎么办呢?
自定义Unity编译内容
· One min read
与Unity Editor环境不同,在生成Unity Build时,Unity只会选择平台对应部分的代码构建,而跳过非本平台的部分。如,WindowsBuild只会包含Windows相关的内容,不会有Android的内容。那如果我想在LinuxBuild中包括Windows相关的API,该怎么办呢?
笔者这一周来都在学习如何在Unity XR场景中构筑一个可交互的UI,可是无论怎么搞UI都没有反应,控制器的光线根本就照不到UI上,更别提交互了。然而,就在刚刚,这个谜题被解开,原因非常难绷。
Unity (new) Input System是Unity官方于2018年全新引入的一套跨平台、高易用性、高扩展性的新生代输入处理框架。关于如何在新项目中使用新输入系统,官方文档和大部分博客都给出了相当完善的解决方案,前任之述备矣。
然而,网络上却鲜有关于如何从旧的InputManager等组件快速迁移到Input System的相关技术文章。对于大部分的旧项目而言,迁移以便使用新特性,实现跨平台等功能非常重要。在这两天,我将一个较为大型的开源游戏OpenHogwarts/hogwarts: Hogwarts (Harry Potter) open sandbox game made in Unity迁移到Unity 2022和新输入系统(原始PR),将实践的过程简要整理成本文,希望可以对后来者有所帮助。
一般的,Unity程序可以用这样的代码进行退出:
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif
Application.Quit(0);
但是这个必须在主线程调用,或者说从void Update()
调用,否则是无效的。如果需要从别的线程退出,可以设置一个_runShutDown
变量,在其他线程修改,在Update检测。
是的,我是元p
我的目标是实现一个全分布式的Unity渲染系统,显然从底层入手是不可能的,因为我对图形学或者Unity一窍不通。好在Unity引入了WebRTC协议,可以以P2P方式在计算机间传输多媒体。