В настоящее время я пытаюсь использовать два разных алгоритма AR (ARCore и EasyAR).В настоящее время ARCore поддерживает только небольшой список устройств, поэтому мы хотим, чтобы EasyAR вступал во владение, когда ARCore недостаточно.
Проблема в том, что EasyAR требует OpenGL ES2, а ARCore требует OpenGL ES3.Я написал код, который проверяет наличие ARCore на устройстве, а затем переходит к сцене, которая использует соответствующую технологию.Я также реализовал Unity PlayerSettings.SetGraphicsAPIs () , но это не работает при развертывании, только в редакторе Unity.Теперь я ищу альтернативу, которая действительно работает.
Код должен работать на Android и IOS.
public IEnumerator CheckCompatibility()
{
AsyncTask<ApkAvailabilityStatus> checkTask = Session.CheckApkAvailability();
CustomYieldInstruction customYield = checkTask.WaitForCompletion();
yield return customYield;
ApkAvailabilityStatus result = checkTask.Result;
switch (result)
{
case ApkAvailabilityStatus.SupportedApkTooOld:
_ShowAndroidToastMessage("Supported apk too old");
break;
case ApkAvailabilityStatus.SupportedInstalled:
_ShowAndroidToastMessage("Supported and installed");
GraphicsDeviceType[] easyAPI = { GraphicsDeviceType.OpenGLES2, GraphicsDeviceType.Vulkan };
SceneManager.LoadScene("ARCoreImageTracker");
break;
case ApkAvailabilityStatus.SupportedNotInstalled:
_ShowAndroidToastMessage("Supported, not installed, requesting installation");
Session.RequestApkInstallation(false);
break;
case ApkAvailabilityStatus.UnknownChecking:
_ShowAndroidToastMessage("Unknown Checking");
break;
case ApkAvailabilityStatus.UnknownError:
_ShowAndroidToastMessage("Unknown Error");
break;
case ApkAvailabilityStatus.UnknownTimedOut:
_ShowAndroidToastMessage("Unknown Timed out");
break;
case ApkAvailabilityStatus.UnsupportedDeviceNotCapable:
_ShowAndroidToastMessage("Unsupported Device Not Capable");
GraphicsDeviceType[] coreAPI = { GraphicsDeviceType.OpenGLES2 };
PlayerSettings.SetGraphicsAPIs(BuildTarget.Android, coreAPI);
SceneManager.LoadScene("EasyARImageTracker");
break;
}
}
В настоящее время я получаю список ошибок, в которых говорится, что «Имя PlayerSettings не существует в текущем контексте» .Любые альтернативы, которые я мог бы попробовать?