Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d Unity从磁盘或web加载字体_Unity3d_Dynamic_Fonts - Fatal编程技术网

Unity3d Unity从磁盘或web加载字体

Unity3d Unity从磁盘或web加载字体,unity3d,dynamic,fonts,Unity3d,Dynamic,Fonts,此字体需要动态更改,因此我无法将其放入参考资料中 我还没有找到任何资源或方法来实现这一点,都在谈论资源 编辑:我确实查看了AssetBundle,但它看起来有些过分,所以我想可能需要用户在他的机器上安装字体,但是font.CreateDynamicFontFromOSFont什么都不做。无论给定的输入是什么(甚至无效),它都将始终返回相同的“Arial”字体,并且视觉上没有任何变化 我可能会再次研究AssetBundles,但我不希望在目标计算机上安装Unity,如果我理解正确,没有运行Unit

此字体需要动态更改,因此我无法将其放入参考资料中

我还没有找到任何资源或方法来实现这一点,都在谈论资源

编辑:我确实查看了AssetBundle,但它看起来有些过分,所以我想可能需要用户在他的机器上安装字体,但是
font.CreateDynamicFontFromOSFont
什么都不做。无论给定的输入是什么(甚至无效),它都将始终返回相同的“Arial”字体,并且视觉上没有任何变化


我可能会再次研究AssetBundles,但我不希望在目标计算机上安装Unity,如果我理解正确,没有运行Unity,您无法构建assetbundle。

没有Unity API将标准字体从磁盘或web加载到Unity的字体中

如果使用
Font.CreateDynamicFontFromOSFont
,则必须在设备上安装该字体。这在Windows等平台上很容易做到,但在Android等设备上却非常难做到


推荐的方法是使用AssetBundles。您将需要Unity编辑器来创建AssetBundles,但不需要它在运行时加载AssetBundles。将字体放在AssetBundles中,然后构建它并将其托管在服务器上。使用
UnityWebRequest
API下载Assetbundle,然后从中提取字体。您始终可以在服务器上更新此资产绑定

如果您希望用户能够从任何来源加载字体,可以通过询问用户字体的位置、使用该字体并使用
UnityWebRequest
API将其发送/上载到服务器来自动生成部分。在服务器端,以无头模式运行Unity Editor,检索发送给它的字体并从中构建Assetbundle,然后将其发送回播放器并在客户端加载

因此,用于下载AssetBundle并用于其中的字体


除非您有非常昂贵的Unity源代码,否则没有其他方法可以做到这一点。通过这种方式,您不需要安装字体,也不会在移动设备上遇到问题。这篇文章展示了如何构建和加载,但你必须在无头模式下进行。

你几乎可以加载资源文件夹或资产包中的所有内容。你尝试过这样做吗?@buffalo94我需要动态(用户提供)它,这样它就不能放入资源中。我正在研究资产捆绑解决方案,但它似乎需要Unity来构建一个解决方案(用户不希望安装Unity)。理想情况下,他应该只提供字体文件,瞧,unity不会让您加载任意文件并将其用作字体,因为几乎所有unity资产都是在构建时序列化的time@buffalo94Unity支持流媒体音频和视频,我还设法下载了精灵(无论是否用于纹理),尽管这很棘手。让用户能够选择自己选择的字体似乎微不足道?我不希望它被优化,因为它没有包含在构建中。你适合视频、音频和纹理,但是你听说过unity支持从任意文件加载字体吗?我不这么认为!所以我怀疑这是可行的硬模式!确实,通过这种方式,您不需要用户安装Unity来自己制作捆绑包。我会让它啜饮一段时间,如果没有更好的方法,我会接受您的回答。没问题。我也希望有更好的方法,但我不这么认为。在对Unity进行了研究和试验之后,我们很难求助于此。如果有人能主持这样的服务,那也太好了。:)(假设它还不存在,并且假设Unity公开披露它是合法的,尽管我不明白为什么不这样做)我认为如果共享它,可能会违反Unity的服务条款,因为您是与编辑而不是构建进行操作的。当你在自己的游戏中使用它,而不是将它作为服务提供给他人时,它应该是好的。如果可以的话,人们还将提供类似的远程服务,让其他人使用专业版构建Unity项目,并删除Unity初始屏幕。