我正在尝试使应用根据平台设置一些资产。
第一步是根据操作系统选择字体,Android使用Roboto,iOS使用SanFrancisco。
简单地说,Unity无法在运行时导入字体,这与其他跨平台IDE相比是一个相当大的缺点,但我们不在这里评判。另一个解决方案是使用AssetBundle,但由于无法解释的原因,它对我来说无法工作...
此外,将基本资产(如字体)存储为除字体以外的其他内容并不被广泛接受。
因此,我的最终解决方案是这个丑陋的脚本:
我只是想找到一种改进的方法,因为长期来看这不是一个可行的解决方案。当我切换时,我甚至不能将宏置于参考资料中,因为它们会丢失。我考虑使用一些预先构建的脚本,你怎么做呢?
第一步是根据操作系统选择字体,Android使用Roboto,iOS使用SanFrancisco。
简单地说,Unity无法在运行时导入字体,这与其他跨平台IDE相比是一个相当大的缺点,但我们不在这里评判。另一个解决方案是使用AssetBundle,但由于无法解释的原因,它对我来说无法工作...
此外,将基本资产(如字体)存储为除字体以外的其他内容并不被广泛接受。
因此,我的最终解决方案是这个丑陋的脚本:
class FontFamily
{
[Header("Android")]
[SerializeField]
private Font regularAndroid = null;
[SerializeField]
private Font boldAndroid = null;
[SerializeField]
private Font italicAndroid = null;
[Header("iOS")]
[SerializeField]
private Font regularIOS = null;
[SerializeField]
private Font boldIOS = null;
[SerializeField]
private Font italicIOS = null;
public Font Regular
{
get
{
#if UNITY_ANDROID
return this.regularAndroid;
#elif UNITY_IOS
return this.regularIOS;
#endif
}
}
public Font Bold
{
get
{
#if UNITY_ANDROID
return this.boldAndroid;
#elif UNITY_IOS
return this.boldIOS;
#endif
}
}
public Font Italic
{
get
{
#if UNITY_ANDROID
return this.italicAndroid;
#elif UNITY_IOS
return this.italicIOS;
#endif
}
}
}
我只是想找到一种改进的方法,因为长期来看这不是一个可行的解决方案。当我切换时,我甚至不能将宏置于参考资料中,因为它们会丢失。我考虑使用一些预先构建的脚本,你怎么做呢?