有什么方法可以在Unity中检查是否使用自定义全局定义导入了Google Mobile Games?
我找不到有关“自定义全局定义”工作方式的解释。
我希望它是这样的:
#if Admob
//Complete code here (Disabled when Google Play Games isn't imported
#endif
还是有另一个可以做到这一点?
答案 0 :(得分:2)
可以通过提供自己的方法添加到#define指令的内置选择中。打开“播放器设置”的“其他设置”面板,然后导航到“脚本定义符号”文本框。
如果未在此处定义,则应手动添加自定义定义,并使用;
将其与其他定义分开。然后,您应该可以像问题中指出的那样使用自定义定义。
您可能还想通过以下代码向Unity3D的编辑器添加额外的功能来自动执行自定义定义的设置和取消设置。这将在Unity的编辑器中创建一个菜单项,以便于访问。当您需要经常更改特定的自定义定义时,这非常有用。
此代码的想法并不属于我,它的来源来自this link。
例如对于自定义定义“ GOOGLE_MOBILE_GAMES”,您应该编写以下内容:
public class ToggleDefineSymbol : Editor
{
[MenuItem("Tools/Set GOOGLE_MOBILE_GAMES")]
public static void Set_GOOGLE_MOBILE_GAMES()
{
string symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(
BuildTargetGroup.Standalone);
if (!symbols.Contains("GOOGLE_MOBILE_GAMES"))
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(
BuildTargetGroup.Standalone, symbols + ";GOOGLE_MOBILE_GAMES");
}
}
[MenuItem("Tools/Unset GOOGLE_MOBILE_GAMES")]
public static void Unset_GOOGLE_MOBILE_GAMES()
{
string symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(
BuildTargetGroup.Standalone);
if (symbols.Contains("GOOGLE_MOBILE_GAMES"))
{
symbols = symbols.Replace(";GOOGLE_MOBILE_GAMES", "");
PlayerSettings.SetScriptingDefineSymbolsForGroup(
BuildTargetGroup.Standalone, symbols);
}
}
}
将此脚本放在Editor
文件夹中名为Assets
的文件夹中。
您可能还想根据需要更改BuildTargetGroup
参数。如果您需要此名称来进行进一步的自定义定义,只需复制上面的功能,然后用所需的任何自定义定义替换“ GOOGLE_MOBILE_GAMES”。