Создает якорь из заданного результата теста попадания, который может быть использован для отслеживания точки в реальном мире с течением времени. Якоря автоматически регулируют свое положение, чтобы попытаться оставаться неподвижными в точке, обнаруженной в реальном мире, это позволяет разместить объект там, не дрейфуя слишком сильно. Возвращает идентификатор, который вы можете использовать для ссылки на этот якорь позже. Результат теста попадания не обязательно должен существовать после создания из него якоря, после этого вы можете безопасно очистить результаты теста попадания. Якорь будет сохраняться и использовать некоторые ресурсы отслеживания до тех пор, пока вы специально не удалите его с помощью ARDeleteAnchor или не уничтожите сеанс AR.
int agk::ARCreateAnchorFromHitTest( int index )
index - Индекс результата теста попадания для использования, начиная с индекса 1
Создает якорь из центра данной плоскости, который может быть использован для отслеживания точки в реальном мире с течением времени. Якоря автоматически корректируют свое положение, чтобы попытаться оставаться неподвижными в точке, обнаруженной в реальном мире, это позволяет разместить объект там, не дрейфуя слишком сильно. Возвращает идентификатор, который вы можете использовать для ссылки на этот якорь позже. Результат плоскости не обязательно должен существовать после создания из него якоря, после этого вы можете смело вызывать ARGetPlanesFinish. Якорь будет сохраняться и использовать некоторые ресурсы отслеживания до тех пор, пока вы специально не удалите его с помощью ARDeleteAnchor или не уничтожите сеанс AR.
int agk::ARCreateAnchorFromPlane( int index )
index - Индекс используемого самолета, начиная с индекса 1
Это необязательная команда, которая сбросит камеру на заданные значения AR. Это может быть полезно, если вы измените положение или поворот камеры, но затем захотите узнать значения AR для этих настроек. Вам не нужно вызывать эту команду, так как значения будут сброшены до значений AR при рендеринге или синхронизации в любом случае.
void agk::ARControlCamera()
Отправляет указанное изображение в приложение SnapChat на текущем устройстве вместе с дополнительным файлом стикера, подписью и URL-адресом. Затем пользователь может изменить изображение с помощью приложения SnapChat и решить, стоит ли делиться им с друзьями. Если у пользователя не установлено приложение SnapChat, то вместо него на странице приложения SnapChat будет открыт магазин приложений. Эта команда будет работать только на Android и iOS 10 или выше
void agk::ShareSnapChatImage( const char* imageFile, const char* stickerFile, const char* caption, const char* url )
imageFile - Путь к изображению, которым вы хотите поделиться
stickerFile - Путь к изображению стикера, чтобы добавить его к изображению, может быть пустой строкой
caption - Подпись, которую нужно добавить к изображению, может быть пустой строкой
url - URL-адрес, который нужно добавить к изображению, может быть пустой строкой
Настраивает устройство на использование облачных данных на совместимых платформах, в настоящее время эту функцию поддерживают только Android и iOS. Облачные данные можно использовать для совместного использования настроек на нескольких устройствах, работающих под управлением одного и того же приложения. Например, сохранение некоторых настроек приложения или прогресса на одном устройстве с помощью команд облачных данных сделает их доступными (через короткий промежуток времени) на всех других устройствах на той же платформе. Обратите внимание, что данные не пересекаются с платформами, поэтому данные, сохраненные на iOS, недоступны на Android, а данные, сохраненные на Android, недоступны на iOS. В iOS это использует iCloud Drive для хранения данных, поэтому пользователь должен войти в iCloud и включить iCloud Drive, вы можете определить, были ли они сделаны с помощью GetCloudDataAllowed. Вы также должны добавить iCloud в свой профиль подготовки, но вам не нужно создавать какие-либо контейнеры. Этот профиль подготовки необходимо использовать при экспорте приложения. На iOS вы ограничены 1 МБ памяти. На Android это использует Android Drive AppData, поэтому пользователь должен войти в систему с учетной записью Google на устройстве. Вы также должны добавить проект Google API для вашего приложения здесь https: console.developers.google.com и создайте идентификатор клиента OAuth в разделе учетные данные. Скажите ему, что запрос исходит от Android, дайте ему имя по вашему выбору и назовите имя пакета вашего приложения. Вам нужно будет дать ему SHA-1 fignerprint файла хранилища ключей, который вы будете использовать для подписи вашего APK, это делается для того, чтобы он мог проверить, что только APKS, подписанные вами, могут использовать сгенерированный идентификатор клиента OAuth. Программа keytool является частью Java Development Kit (JDK). После создания вам не нужно ничего делать с токеном OAuth, он будет использоваться автоматически при вызове команд облачных данных. На Android любые данные, которые вы храните, будут засчитываться в лимит хранения Google Диска пользователя, они не могут получить доступ к файлам, хранящимся в вашем приложении, но они могут очистить данные приложения в настройках своего диска. Широковещательные приложения будут использовать хранилище данных AGK Player и совместно использовать переменные во всех ваших широковещательных приложениях, поэтому будьте осторожны с перезаписью значений, если два ваших приложения имеют одно и то же имя переменной. Данные, которые вы храните в хранилище данных AGK Player, будут видны только вам и вашим устройствам. Эта команда должна быть вызвана перед любыми другими командами облачных данных, кроме GetCloudDataAllowed, которые могут быть вызваны в любое время. На Android вы должны спросить пользователя, хочет ли он хранить данные на своем диске, прежде чем вызывать setup, так как эта команда может попросить пользователя войти в свой аккаунт Google.
void agk::SetupCloudData( const char* reserved )
reserved - Зарезервировано, должно быть пустой строкой
Задает свойства для любых изображений наклеек, добавляемых в будущие вызовы ShareSnapChatImage. Параметры X и Y должны находиться в диапазоне от 0.0 до 1.0, например, в направлении X 1.0-это крайняя правая часть изображения, а 0.0-крайняя левая часть изображения.
void agk::SetSnapChatStickerSettings( float x, float y, int width, int height, float angle )
x - Положение X наклейки, по умолчанию 0,5
y - Положение наклейки Y, по умолчанию 0,5
width - Ширина наклейки, по умолчанию 250
height - Высота наклейки, по умолчанию 250
angle - Угол наклона наклейки, по умолчанию 0
Только для iOS. Сообщает AGK, какую группу приложений вы используете для обмена данными между приложениями. Например, group.com.mycompany.mygroup.myvariables создается на портале разработчиков Apple и должен быть добавлен к каждому идентификатору приложения, к которому вы хотите получить доступ к этим переменным. Вам нужно будет заново создать профиль подготовки для каждого приложения после добавления группы приложений к его идентификатору приложения.
void agk::SetSharedVariableAppGroup( const char* group )
group - Имя, используемое для идентификации этой переменной
Эта команда используется на Android для установки SenderID, используемого проектом Firebase. В настоящее время keyName должно быть установлено в SenderID (с учетом регистра), а KeyValue должно быть установлено в значение SenderID, которое можно найти в настройках проекта Firebase на вкладке Облачные сообщения.
void agk::SetPushNotificationKeys( const char* keyName, const char* keyValue )
keyName - Ключ к набору
keyValue - Ключевое значение
Создает локальное уведомление, которое появится в какой-то момент в будущем. Уведомления ссылаются на идентификатор и могут быть перезаписаны путем создания нового уведомления с тем же идентификатором, что и уведомление, которое вы хотите перезаписать. Если уведомление срабатывает во время работы приложения, то оно не появляется и бесшумно исчезает из списка запланированных уведомлений. Если приложение не открыто, то пользователю будет показано уведомление, и нажатие на него откроет ваше приложение. Если вы установите параметр deeplink, то этот URL-адрес будет отправлен в приложение при нажатии уведомления. URL-адрес можно получить с помощью команды GetURLSchemeText. Параметр datetime должен быть указан в unix time, который измеряется в секундах с 1 января 1970 года, вы можете использовать команду GetUnixTime для возврата текущей даты и времени, а затем изменить ее по мере необходимости. Если дата и время находятся в прошлом, то уведомление будет проигнорировано, оно не будет перезаписывать ни одно существующее уведомление. Идентификатор должен находиться в диапазоне от 1 до 100 включительно.
void agk::SetLocalNotification( int iID, int datetime, const char *szMessage )
void agk::SetLocalNotification( int iID, int datetime, const char *szMessage, const char *szDeepLink )
iID - Идентификатор, который будет использоваться для ссылки на это уведомление в будущем
datetime - Дата и время отображения этого уведомления в unix time
szMessage - Сообщение для отображения в уведомлении
szDeepLink - URL-адрес для отправки в приложение, если уведомление прослушивается
Устанавливает переменную облачных данных в заданное значение. Если несколько устройств записывают значение одновременно, то облачный провайдер выбирает одно из них и отправляет его всем устройствам. Имя переменной должно быть меньше 64 байт, один символ UTF8 может быть несколько байт, но обычно 1 символ равен 1 байту. Рекомендуется, чтобы имена переменных включали имя приложения, например myapp.myvariablename, поскольку при трансляции ваших приложений все они будут совместно использовать одно хранилище данных в приложении AGK PLayer. Изменяемые данные хранятся локально, поэтому GetCloudDataVariable немедленно вернет новое значение, однако синхронизация с облаком выполняется в фоновом режиме и может занять несколько минут. Если устройство не имеет подключения к Интернету, то данные будут синхронизированы при следующей доступной возможности. В iOS вы ограничены 1024 переменными с общим объемом памяти 1 МБ. На Android любые данные, которые вы храните, засчитываются в лимит хранения Google Диска пользователя, пользователь может очистить данные вашего приложения, чтобы освободить место, но он не может прочитать данные, которые вы храните. Вы не должны хранить конфиденциальную информацию, такую как пароли, в виде обычного текста с помощью этих команд.
void agk::SetCloudDataVariable( const char* varName, const char* varValue )
varName - Имя переменной, которую нужно изменить, должно быть меньше 64 байт
varValue - Значение для установки переменной
Устанавливает буфер обмена устройства на указанный текст, при этом перезаписывается все, что ранее было в буфере обмена устройства. Буфер обмена такой же, как и тот, который используется функцией копирования/вставки устройства.
void agk::SetClipboardText( const char* szText )
szText - Текст для копирования
Отправка данных на смарт-часы в фоновом режиме, если приложение watch в данный момент не открыто, сообщение будет поставлено в очередь и получено приложением watch при следующем открытии. Сообщение должно быть в виде строки JSON, например {label:my message}. Вы также можете использовать тип с функцией .toJSON() для создания строки JSON. Приложение watch получит его как NSDictionary с метками в качестве ключей. В настоящее время работает только на iOS.
void agk::SendSmartWatchData( const char* szJson )
szJson - Строка JSON, содержащая сообщение для отправки в приложение watch.
Сохраняет переменную, чтобы к ней можно было получить доступ из других приложений. Это работает только на платформах iOS, Android 10 и ниже, а также HTML5. Приложения могут совместно использовать переменную только в том случае, если они отвечают определенным требованиям, основанным на платформе. В iOS приложения должны быть созданы одной и той же учетной записью разработчика Apple и иметь одну и ту же группу приложений, добавленную к их идентификаторам приложений на портале разработчиков Apple. После этого вам нужно будет заново создать профиль подготовки. В iOS вы должны сообщить AGK, что такое группа приложений, используя SetSharedVariableAppGroup. На Android 10 и ниже приложения должны иметь разрешение WRITE_EXTERNAL_STORAGE и иметь одно и то же имя пакета до последней точки. Например, com.mycompany.mygroup.myapp1 и com.mycompany.mygroup.myapp2 смогут совместно использовать переменные. На Android общие переменные записываются в доступное пользователю место, поэтому имейте в виду, что пользователи могут читать и/или редактировать сохраненные вами переменные. На Android 11 или выше эта команда не будет работать, так как приложения ограничены в записи в общие места. В HTML приложения должны размещаться в одном домене, значения хранятся в виде файлов cookie. Переменные идентифицируются по имени, поэтому использование SaveSharedVariable(username, Alice) установит переменную с именем username в значение Alice. Затем это может быть прочитано другими приложениями с помощью LoadSharedVariable( username,), Если два приложения сохраняют разные значения в одном и том же имени переменной, то значение будет перезаписано и будет доступно только самое последнее значение. Значения переменных будут сохраняться даже в том случае, если приложение будет удалено и повторно установлено. Вы не должны использовать эту команду для хранения любой конфиденциальной информации, такой как пароли, в виде обычного текста. В iOS длина имени переменной плюс длина идентификатора вашего приложения до последней точки (например, com.mycompany.mygroup) должна быть меньше 58.
void agk::SaveSharedVariable( const char *varName, const char *varValue )
varName - Имя, используемое для идентификации этой переменной
varValue - Значение, которое нужно сохранить в этой переменной
Только для Android все остальные платформы ничего не сделают. Генерирует системный диалог с запросом у пользователя указанного разрешения устройства, используемого определенными командами Android. Разрешения следующие: writeExternal - используется командами SaveSharedVariable и любыми путями raw:, которые обращаются к SD-карте. Местоположение - используется командами GPS Камера - используется командой SetDeviceCameraToImage и для канала AR - камеры RecordAudio - используется командой StartScreenRecording Вы можете проверить результат запроса, вызвав checkPermission. После первого запроса Android предоставит пользователю возможность прекратить отображение диалогового окна запроса. В этом случае эта команда больше не будет генерировать диалоговое окно запроса и вместо этого ничего не будет делать. Пользователю придется зайти в настройки приложения устройства, чтобы отменить это решение. Любое разрешение, не указанное здесь, не требует от вас запроса разрешения пользователя, оно будет автоматически предоставлено при установке, если ваше приложение этого требует. Все разрешения, которые использует ваше приложение, даже те, которые требуют запроса, должны быть указаны в диалоговом окне экспорта APK, установив соответствующие флажки.
void agk::RequestPermission( const char* szPermission )
szPermission - Разрешение на запрос
iOS 10.3 имеет специальную функцию, которая позволит пользователю просматривать ваше приложение изнутри самого приложения, эта команда подскажет iOS начать этот процесс. Обратите внимание, что iOS не гарантирует отображение чего-либо при вызове этой команды, и она не должна вызываться в ответ на нажатие кнопки или другое взаимодействие пользователя. Вы должны вызвать его, когда в приложении наступает затишье, например в конце уровня. Если вы хотите запустить процесс проверки в ответ на действие пользователя, например нажатие кнопки, то вам следует использовать команду OpenBrowser для открытия AppStore.
void agk::RequestAppReview()
Получает сообщение в очереди из приложения watch. Это будет в виде строки JSON. Если вы вызываете эту команду из уровня 2, вы должны удалить возвращенную строку, когда закончите с ней, вызвав agk::DeleteString. В настоящее время работает только на iOS.
char* agk::ReceiveSmartWatchData()
Отображает диалоговое окно с запросом пользователя оценить приложение в App Store. В настоящее время эта команда поддерживается только на iOS.
void agk::RateApp ( const char* szID, const char* szTitle )
void agk::RateApp ( const char* szID, const char* szTitle, const char* szMessage )
void agk::RateApp ( const char* szID )
szID - Это идентификатор вашего приложения. Вы можете получить его в iTunes Connect.
szTitle - Строка, используемая в качестве заголовка диалогового окна, обычно это Rate AppName
szMessage - Строка, используемая в качестве сообщения диалогового окна
Возвращает 1, если настройка прошла успешно, 0, если она не удалась или устройство не поддерживает push-уведомления.
int agk::PushNotificationSetup()
Загружает переменную, сохраненную этим приложением или другим приложением. Это работает только на платформах iOS, Android 10 и ниже, а также HTML5. Приложения могут совместно использовать переменную только в том случае, если они отвечают определенным требованиям, основанным на платформе. В iOS приложения должны иметь один и тот же начальный идентификатор пакета (также называемый префиксом идентификатора приложения) и иметь один и тот же явный идентификатор приложения до последней точки. Например, com.mycompany.mygroup.myapp1 и com.mycompany.mygroup.myapp2 смогут совместно использовать переменные. На Android 10 и ниже приложения должны иметь разрешение WRITE_EXTERNAL_STORAGE и иметь одно и то же имя пакета до последней точки. Например, com.mycompany.mygroup.myapp1 и com.mycompany.mygroup.myapp2 смогут совместно использовать переменные. На Android общие переменные записываются в доступное пользователю место, поэтому имейте в виду, что пользователи могут читать и/или редактировать сохраненные вами переменные. На Android 11 или выше эта команда не будет работать, так как приложения ограничены в записи в общие места. В HTML приложения должны размещаться в одном домене, значения хранятся в виде файлов cookie. Переменные идентифицируются по имени, поэтому использование SaveSharedVariable(username, Alice) установит переменную с именем username в значение Alice. Затем это может быть прочитано другими приложениями с помощью LoadSharedVariable( username, ). Если переменная с заданным именем не существует, то вместо нее возвращается указанное значение по умолчанию
char* agk::LoadSharedVariable( const char *varName, const char *defaultValue )
varName - Имя переменной для извлечения
defaultValue - Значение, возвращаемое, если переменная не существует
После установки названия покупки в приложении и добавления идентификаторов продуктов вызовите InAppPurchaseSetup, чтобы завершить процесс. После этого момента вы можете попытаться приобрести разблокируемый контент. В настоящее время эта команда поддерживается только на iOS и Android.
void agk::InAppPurchaseSetup()
Устанавливает все необходимые внутренние данные при настройке IAP для этой платформы. В настоящее время это относится только к Google Play и Ouya, где вам нужно предоставить свой открытый ключ в base64. Это должно быть вызвано перед InAppPurchaseSetup. Чтобы найти открытый ключ для приложений Google Play, откройте сведения о приложении в консоли Google PlayDeveloper и нажмите кнопку Службы и API. Открытый ключ будет находиться в поле под названием Ваш лицензионный ключ для этого приложения.
void agk::InAppPurchaseSetKeys ( const char* szData1, const char* szData2 )
szData1 - Открытый ключ
szData2 - Разработчик UUID (только Ouya)
Задает имя приложения таким образом, чтобы оно отображалось в любых диалоговых окнах, отображаемых при использовании команд покупки в приложении. В настоящее время эта команда поддерживается только на iOS и Android.
void agk::InAppPurchaseSetTitle ( const char* szTitle )
szTitle - Название вашей заявки
Восстанавливает все управляемые покупки, сделанные на этой платформе. Например, если пользователь приобрел товар, а затем переустановил приложение, то приложение вернет 0 для GetInAppPurchaseAvailable, если оно не было приобретено снова. Несмотря на то, что это не будет взимать плату с пользователя снова за управляемые товары, Apple требует, чтобы у вас была кнопка, вызывающая эту функцию, вместо того чтобы заставлять пользователя снова проходить процесс покупки. После вызова этой команды вы можете вызвать GetInAppPurchaseAvailable. В настоящее время эта команда поддерживается только на iOS. Эта команда не нужна на Android и Amazon, так как она автоматически восстанавливается в InAppPurchaseSetup
void agk::InAppPurchaseRestore()
Используйте эту команду для добавления любых идентификаторов продуктов в список, например com.yourcompany.yourproduct.iap. Первый идентификатор продукта, который вы добавляете, становится 0, второй-1 и т. Д. Вы также должны указать тип этого продукта: расходуемый (1) или непотребляемый(0). Расходные материалы-это как монеты, которые можно покупать снова и снова, они называются неуправляемыми предметами в Google Play. Непотребляемые продукты-это одноразовые покупки, такие как разблокировка полной версии приложения, они называются управляемыми элементами Google Play. В настоящее время эта команда поддерживается только на iOS, Google Play и Amazon. Это должно быть вызвано до InAppPurchaseSetup, после чего никакие другие продукты не могут быть добавлены.
void agk::InAppPurchaseAddProductID ( const char* szID, int type )
szID - Идентификатор продукта, указанный в iTunes Connect или консоли разработчика Google Play
type - Тип этого продукта-расходуемый (1) или непотребляемый(0)
Вызовите это, когда вы хотите начать процесс активации / разблокировки дополнительного контента. В настоящее время эта команда поддерживается только на iOS и Android.
void agk::InAppPurchaseActivate ( int iID )
iID - этот идентификатор соответствует идентификаторам продуктов, которые были добавлены, например, ваш первый продукт
Возвращает текущее состояние подключения смарт-часов: 0=начальное состояние, ActivateSmartWatch не вызывался. 1=подключение, через мгновение перейдет в более детальное состояние. 2=соединение успешно, вы можете отправлять и получать данные. -1=команды watch не поддерживаются на этом устройстве. -2=соединение не удалось или часы не найдены. -3=часы найдены, но в данный момент они не сопряжены с устройством, -4=часы найдены, но наше приложение для часов в данный момент не установлено. В настоящее время работает только на iOS.
int agk::GetSmartWatchState()
Возвращает маркер push-уведомления для этого устройства, он должен быть отправлен на ваш сервер, который отправляет уведомления, чтобы он мог отправлять уведомления на это устройство. Если PushNotificationSetup вернул 1, то вы должны продолжать вызывать эту команду до тех пор, пока она не вернет непустую строку. Если PushNotificationSetup вернул 0, то эта команда всегда будет возвращать пустую строку. Пожалуйста, обратитесь к руководству по Push-уведомлениям Android для получения более подробной информации о том, как использовать токен устройства для отправки Push-уведомлений на это устройство.
char* agk::GetPushNotificationToken()
Возвращает дату и время отображения указанного уведомления. Возвращаемое время будет в формате unix timestamp, который измеряется количеством секунд с 1 января 1970 года. Если по указанному идентификатору уведомления не существует, то возвращается 0
int agk::GetLocalNotificationTime( int iID )
iID - ИДЕНТИФИКАТОР уведомления для проверки
Возвращает сообщение, которое будет отображаться указанное уведомление. Если по указанному идентификатору уведомления не существует, то будет возвращена пустая строка
char* agk::GetLocalNotificationMessage( int iID )
iID - ИДЕНТИФИКАТОР уведомления для проверки
Возвращает 1, если уведомление с этим идентификатором ожидает отображения, в противном случае 0. Уведомления обновляются каждые 5 секунд, так что это может продолжать возвращать 1 вскоре после того, как уведомление сработало.
int agk::GetLocalNotificationExists( int iID )
iID - ИДЕНТИФИКАТОР уведомления для проверки
Возвращает текущее состояние попытки активации содержимого. Значение 0 указывает на то, что процесс продолжается, в то время как 1 подтверждает, что процесс завершен. В настоящее время эта команда поддерживается только на iOS и Android.
int agk::GetInAppPurchaseState()
Возвращает подпись для последней покупки данного товара, это можно проверить по вашему открытому ключу, чтобы подтвердить, что покупка была действительной. Рекомендуется передать эту подпись серверу для выполнения проверки, чтобы ее нельзя было обойти.
char* agk::GetInAppPurchaseSignature(int iID)
iID - Например, ваш первый идентификатор продукта равен 0, ваш второй-1 и т. Д.
Возвращает текущую цену указанного в приложении продукта покупки в местной валюте, это будет строка с включенным символом валюты, где это возможно. После вызова InAppPurchaseSetup может потребоваться несколько секунд, чтобы эти данные стали доступными, поэтому, если вы получите пустую строку, повторите попытку позже. При вызове этого метода из уровня 2 вы должны удалить возвращаемую строку, когда закончите с ней.
char* agk::GetInAppPurchaseLocalPrice ( int iID )
iID - этот идентификатор соответствует идентификаторам продуктов которые были добавлены например ваш первый продукт
Возвращает описание для указанного продукта, как определено текущим магазином платформы. После вызова InAppPurchaseSetup может потребоваться несколько секунд, чтобы эти данные стали доступными, поэтому, если вы получите пустую строку, повторите попытку позже. При вызове этого метода из уровня 2 вы должны удалить возвращаемую строку, когда закончите с ней.
char* agk::GetInAppPurchaseDescription ( int iID )
iID - этот идентификатор соответствует идентификаторам продуктов, которые были добавлены, например, ваш первый продукт
Возвращает 1, если дополнительный контент был приобретен и поэтому доступен. Возвращает 0, если содержимое недоступно. В настоящее время эта команда поддерживается только на iOS и Android.
int agk::GetInAppPurchaseAvailable ( int iID )
iID - этот идентификатор соответствует идентификаторам продуктов которые были добавлены например ваш первый продукт
Возвращает уникальный идентификатор игрока, вошедшего в систему в данный момент. Если никто не вошел в систему или платформа не поддерживает команды GameCenter, то это вернет пустую строку. Если вы вызываете эту команду из уровня 2, то возвращаемая строка должна быть удалена с помощью agk::DeleteString, когда вы закончите с ней.
char* agk::GetGameCenterPlayerID()
Возвращает отображаемое имя для текущего вошедшего в систему игрока. Если никто не вошел в систему или платформа не поддерживает команды GameCenter, то это вернет пустую строку. Если вы вызываете эту команду из уровня 2, то возвращенная строка должна быть удалена с помощью agk::DeleteString, когда вы закончите с ней.
char* agk::GetGameCenterPlayerDisplayName()
Вернет 1, если пользователь вошел в Game Center или Google Play Games, и 0, если нет. Процесс входа в систему асинхронен, поэтому после вызова GameCenterLogin может потребоваться несколько секунд, чтобы эта команда вернула 1. Если пользователь не может войти в систему или GameCenter недоступен, то это вернет -1.
int agk::GetGameCenterLoggedIn()
Возвращает 1, если текущая платформа поддерживает Game Center или Google Play Games.
int agk::GetGameCenterExists()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
int agk::GetFacebookDownloadState()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
char* agk::GetFacebookDownloadFile()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
int agk::GetFacebookLoggedIn()
Возвращает значение переменной облачных данных по имени. Если переменная не существует, то вместо нее будет возвращено значение по умолчанию, переданное по умолчанию. Если вы вызываете эту команду из уровня 2, то вы должны удалить возвращенную строку, когда закончите с ней, вызвав agk::DeleteString.
char* agk::GetCloudDataVariable( const char* varName, const char* defaultValue )
varName - Имя переменной, которую нужно проверить, должно быть меньше 64 байт
defaultValue - Значение, возвращаемое, если переменная не существует
Возвращает 1 если облачные данные изменились из-за того, что другое устройство изменило значение, оно будет оставаться 1 до тех пор, пока вы не вызовете GetCloudDataVariable. В противном случае возвращает 0. Это не станет 1, когда вы измените значение локально.
int agk::GetCloudDataChanged()
Возвращает 1, если команды облачных данных доступны для использования. Возвращает 0, если пользователь еще не решил, разрешить или заблокировать доступ, это будет предложено в SetupCloudData, если это применимо. Возвращает -1, если пользователь специально отказал в доступе. Возвращает значение -2, если пользователь не вошел в систему или на устройстве нет iCloud или Google Диска. Вы можете предложить пользователю войти в систему и включить их при первом запуске вашего приложения или когда он решит включить облачное резервное копирование в ваших собственных настройках приложения. Если эта команда возвращает -3 на Android, то данные Google cloud повреждены и должны быть очищены в настройках диска.
int agk::GetCloudDataAllowed()
Получает любой текст, который в данный момент хранится в буфере обмена устройства, текст остается в буфере обмена, поэтому он все еще может быть использован другими приложениями. Буфер обмена такой же, как и тот, который используется функцией копирования/вставки устройства.
char* agk::GetClipboardText()
Отправляет счет на именованную доску лидеров, которая должна соответствовать идентификатору таблицы лидеров, присвоенному вашей доске в iTunes connect, Google Game Services или GameCircle.
void agk::GameCenterSubmitScore( int iScore, const char* szBoardID )
iScore - Оценка для представления
szBoardID - Название доски лидеров
Изменение прогресса пользователей при достижении именованного достижения имя должно совпадать с идентификатором достижения, присвоенным этому достижению в iTunes connect, Google Game Services или GameCircle. Значения iPercentageComplete должны находиться в диапазоне от 0 до 100. Однако для инкрементных достижений это значение фактически является числом завершенных шагов и может находиться за пределами этого диапазона. Это значение будет перезаписывать текущий процент или выполненные шаги достижения.
void agk::GameCenterSubmitAchievement ( const char* szAchievementID, int iPercentageComplete )
szAchievementID - Название достижения
iPercentageComplete - Пользователи продвигаются к получению этого достижения или количества выполненных шагов
Показывает пользователю именованную таблицу лидеров, имя которой должно совпадать с идентификатором таблицы лидеров, присвоенным вашей доске в iTunes connect, Google Game Services или GameCircle.
void agk::GameCenterShowLeaderBoard ( const char* szBoardID )
szBoardID - Название доски лидеров
Вызовите этот вызов один раз, чтобы настроить приложение для дальнейших команд Game Center.
void agk::GameCenterSetup()
Вызовите это один раз, чтобы войти в систему пользователя в Game Center (iOS) или Google Play Games (Android), если они вошли в систему до того, как это произойдет в фоновом режиме и не прерывает пользователя, в противном случае появится всплывающее окно с просьбой войти в систему и предоставить разрешение на продолжение.
void agk::GameCenterLogin()
Еще не функционирует
void agk::GameCenterAchievementsReset ( )
Показывает пользователю свои достижения и прогресс.
void agk::GameCenterAchievementsShow ( )
Вызовите эту функцию, чтобы вывести пользователя из Google Play Games. После этого вы можете снова вызвать GameCenterLogin. На Game Center (iOS) это никак не влияет, пользователь должен выйти из приложения Game Center.
void agk::GameCenterLogout()
Запускает систему Firebase analytics и отслеживание некоторых автоматизированных событий. Дополнительные события можно отслеживать с помощью FirebaseLogEvent. Вы должны включить конфигурационный файл Google Services, созданный при настройке проекта Firebase, который можно добавить во время экспорта для Android или iOS. Если вы не укажете свой собственный конфигурационный файл google services во время экспорта, то все ваши данные отслеживания будут отправлены в наш проект AGK Firebase и проигнорированы. Аналогично, если вы используете эти команды во время трансляции, то данные отслеживания будут отправлены в проект AGK и проигнорированы.
void agk::FirebaseSetup()
Говорит Firebase записать событие, которое произошло в вашем приложении, например, разблокировку достижения. Они появятся на странице аналитики проекта Firebase. Обратите внимание, что имена событий не должны содержать тире или пробелы, иначе они не будут зарегистрированы.
void agk::FirebaseLogEvent( const char *event_name )
event_name - Имя события для передачи в Firebase, некоторые из них зарезервированы для автоматических событий, например first_open
Эта команда в настоящее время не поддерживается
void agk::FacebookShowLikeButton ( const char* szURL, int iX, int iY, int iWidth, int iHeight )
szURL - URL-адрес, который вам нравится.
iX - x положение кнопки like.
iY - y положение кнопки like.
iWidth - ширина кнопки like.
iHeight - высота кнопки like.
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookSetup ( const char* szID )
szID - ваш идентификатор приложения Facebook.
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает. Вы можете использовать ShareText или ShareImage, чтобы дать пользователю возможность поделиться своей информацией.
void agk::FacebookPostOnMyWall ( const char* szLink, const char* szPicture, const char* szName, const char* szCaption, const char* szDescription )
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookPostOnFriendsWall ( const char* szID, const char* szLink, const char* szPicture, const char* szName, const char* szCaption, const char* szDescription )
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
char* agk::FacebookGetUserName()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
char* agk::FacebookGetUserID()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
int agk::FacebookGetFriendsState()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
char* agk::FacebookGetFriendsName ( int iIndex )
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
char* agk::FacebookGetFriendsID ( int iIndex )
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
int agk::FacebookGetFriendsCount()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookLogout()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookLogin()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookGetFriends()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookInviteFriend ( const char* szID, const char* szMessage )
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
char* agk::FacebookGetAccessToken()
Facebook SDK был удален из AppGameKit, эта команда больше ничего не делает
void agk::FacebookDownloadFriendsPhoto ( int iIndex )
Facebook Facebook Facebook SDK Активирует отслеживание в SDK Facebook, это полезно, если вы используете рекламу Facebook, так как это будет связывать установки с рекламой, ранее увиденной и нажатой на Facebook. Обратите внимание, что в iOS эта функция требует IDFA (рекламный идентификатор), и вы должны объявить об этом, если отправляете приложение в Apple. Apple спросит, используете ли вы IDFA и для чего вы его используете. Для отслеживания установки с помощью рекламы Facebook вы ДОЛЖНЫ поставить галочки Приписать установку этого приложения ранее показанной рекламе и Приписать действие, предпринятое в этом приложении, ранее показанной рекламе. Если вы также используете AdMob, Amazon Ads или Chartboost в своем приложении, вы также должны поставить галочку Показывать рекламу в приложении. Эта команда не требует, чтобы пользователь входил в систему.
void agk::FacebookActivateAppTracking()
Эта команда в настоящее время не поддерживается
void agk::FacebookDestroyLikeButton()
Удаляет общую переменную по имени. Если переменная не существует, то это ничего не даст. Как только переменная будет удалена, LoadSharedVariable вернет значение по умолчанию для любых запросов на ее загрузку.
void agk::DeleteSharedVariable( const char *varName )
varName - Имя переменной для удаления
Удаляет переменную с указанным именем и удаляет все данные, хранящиеся в облаке для этой переменной. Если переменная не существует, то это ничего не делает.
void agk::DeleteCloudDataVariable( const char* varName )
varName - Имя переменной, которую нужно удалить, должно быть меньше 64 байт
Только для Android все остальные платформы вернут 1 и ничего не сделают. Проверяет, предоставил ли пользователь вашему приложению указанное разрешение на использование определенных команд Android. Разрешения следующие: writeExternal - используется командами SaveSharedVariable и любыми путями raw:, которые обращаются к SD-карте. Location - используется командами GPS Camera - используется командой SetDeviceCameraToImage RecordAudio - используется командой StartScreenRecording и для канала AR camera Эта команда вернет 0, если у вас нет разрешения и пользователя еще не спросили, вы должны вызвать requestPermission, если вам это нужно. Эта команда возвращает 1 если пользователь находится в процессе запроса разрешения, вы должны дождаться ответа, продолжая вызывать эту команду. Он вернет -1, если пользователь отклонил разрешение, или 2, если пользователь предоставил разрешение. Если пользователь отклоняет ваш запрос, вы можете спросить еще раз, но сначала вы должны объяснить, почему ваше приложение нуждается в нем, чтобы они могли сделать осознанный выбор. Если они все еще отвергают его, вы обычно не должны спрашивать в третий раз. После первой попытки Android предоставит пользователю возможность никогда не разрешать это разрешение. В этом случае эта команда всегда будет возвращать -1, а requestPermission ничего не сделает. Пользователю придется зайти в настройки приложения устройства, чтобы отменить это решение. Любое разрешение, не указанное здесь, не требует от вас запроса разрешения пользователя, оно будет автоматически предоставлено при установке, если ваше приложение этого требует. Все разрешения, которые использует ваше приложение, даже те, которые требуют запроса, должны быть указаны в диалоговом окне экспорта APK, установив соответствующие флажки.
int agk::CheckPermission( const char* szPermission )
szPermission - Разрешение на проверку
Отменяет уведомление, запланированное этим приложением
void agk::CancelLocalNotification( int iID )
iID - ИДЕНТИФИКАТОР уведомления об отмене
Попытка подключения к смарт-часам, подключенным к текущему устройству. Он будет пытаться поддерживать это соединение в течение всего срока службы приложения, например, если часы непарные, а затем отремонтированы, то ваше приложение автоматически подключится к часам. Таким образом, вам нужно только один раз вызвать эту команду в начале вашего приложения. В настоящее время работает только на iOS. Чтобы создать приложение watch, вам нужно будет использовать Tier 2 project interpreter_ios и добавить в него приложение watch.
void agk::ActivateSmartWatch( const char *szReserved )
szReserved - Зарезервированная для будущего использования, должна быть пустой строкой
Доступно только на iOS и Android. Эта команда настраивает функции AR устройства, если они доступны. Используйте команду ARGetStatus, чтобы проверить, было ли это успешно. Эта команда должна быть вызвана перед любыми другими командами AR, если установка не удалась, вы можете вызвать эту команду снова, чтобы попытаться выполнить установку снова. Настройка AR возьмет на себя управление 3D-камерой, включая проекционную матрицу, поэтому любые изменения, внесенные вами в положение камеры, поворот, FOV, будут перезаписаны системой AR при вызове рендеринга или синхронизации. Однако вы все еще можете управлять ближними и дальними значениями камеры с помощью SetCameraRange, который будет сохраняться в системе AR. При использовании AR и размещении или калибровке 3D - объектов система координат 1 единица AGK равна 1 метру.
void agk::ARSetup()
Устанавливает режим обнаружения плоскости для AR, по умолчанию он включен. Обнаруженные самолеты можно обнаружить с помощью команды ARGetPlanes.
void agk::ARSetPlaneDetectionMode( int mode )
mode - 1=Включить обнаружение плоскости, 0=Выключить обнаружение плоскости
Устанавливает режим оценки освещенности для AR, по умолчанию он включен. Это попытка выработать окружающий свет в реальном мире, чтобы вы могли правильно освещать свои виртуальные объекты.
void agk::ARSetLightEstimationMode( int mode )
mode - 1=Включить оценку освещенности, 0=Выключить оценку освещенности
Очищает ресурсы, используемые во время тестирования хитов, это должно быть вызвано, когда вы закончите проверку результатов теста хитов. Если вы не вызовете его, то он будет вызван автоматически, когда вы выполните еще один тест попадания или уничтожите сеанс AR.
void agk::ARHitTestFinish()
Бросает луч в реальный мир и обнаруживает любые попадания с самолетов или точек слежения, обнаруженных в мире. Возвращает количество обнаруженных хитов, хиты будут упорядочены с ближайшим первым. Координаты должны находиться в пространстве экрана, например значения, возвращаемые из GetPointerX и GetPointerY. Когда вы закончите проверку результатов этого теста попадания, вы должны вызвать ARHitTestFinish, чтобы освободить все использованные ресурсы. Если нет, то это будет сделано автоматически при следующем вызове ARHitTest.
int agk::ARHitTest( float screenX, float screenY )
screenX - Компонент X координаты экрана
screenY - Компонент Y координаты экрана
Очищает все ресурсы, используемые при вызове ARGetPlanes, вы должны вызвать его, когда закончите проверку результатов. Если нет, то он будет вызван автоматически при следующем вызове ARGetPlanes или уничтожении сеанса AR.
void agk::ARGetPlanesFinish()
Запрашивает сеанс AR для всех самолетов, отслеживаемых в настоящее время в мире, они обнаруживаются с течением времени, если включен режим ARSetPlaneDetectionMode. Возвращает количество найденных плоскостей. Это может быть использовано для отображения обнаруженных плоскостей пользователю путем создания некоторых плоских объектов с помощью CreateObjectPlane и размещения их в заданном положении, с заданным поворотом и размером. Когда вы закончите проверку результатов, вам следует вызвать ARGetPlanesFinish, чтобы очистить все ресурсы, используемые при проверке.
int agk::ARGetPlanes( int reserved )
reserved - зарезервировано для будущего использования, должно быть 0
Возвращает Z-компоненту центра данной плоскости. Эта точка может со временем смещаться относительно реальной картины мира, поэтому ее следует регулярно проверять и обновлять, если вы используете ее для отображения видимого представления плоскости.
float agk::ARGetPlaneZ( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает Y-компоненту центра данной плоскости. Эта точка может со временем смещаться относительно реальной картины мира, поэтому ее следует регулярно проверять и обновлять, если вы используете ее для отображения видимого представления плоскости.
float agk::ARGetPlaneY( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает Z-компоненту размера данной плоскости. Это может быть использовано для масштабирования 3D-объекта в соответствии с визуальным представлением обнаруженной плоскости.
float agk::ARGetPlaneSizeZ( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает компонент X размера данной плоскости. Это может быть использовано для масштабирования 3D-объекта в соответствии с визуальным представлением обнаруженной плоскости.
float agk::ARGetPlaneSizeX( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает Z-компоненту вращения данной плоскости. Это может быть использовано для поворота 3D-объекта в соответствии с визуальным представлением обнаруженной плоскости.
float agk::ARGetPlaneAngleZ( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает Y-компоненту вращения данной плоскости. Это может быть использовано для поворота 3D-объекта в соответствии с визуальным представлением обнаруженной плоскости.
float agk::ARGetPlaneAngleY( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает X-компоненту вращения данной плоскости. Это может быть использовано для поворота 3D-объекта в соответствии с визуальным представлением обнаруженной плоскости.
float agk::ARGetPlaneAngleX( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает текущее состояние процесса настройки AR. 0=ARSetup еще не вызван, -1=AR недоступен на этом устройстве или установка не удалась, -2=Пользователь отклонил установку ARCore, 1=ARCore install in progress, 2=AR setup successful.
int agk::ARGetStatus()
Возвращает расчетное значение освещенности для текущего кадра, это будет значение от 0.0 до 1.0. Лучше всего использовать это значение для установки цвета окружающего света с помощью SetAmbientColor со значением 1.0, соответствующим значению цвета 255,255,255.
float agk::ARGetLightEstimate()
Возвращает Z-компоненту заданного результата теста попадания в 3D-пространстве. Результаты теста на попадание упорядочиваются с ближайшим первым, начиная с индекса 1. Эта точка должна использоваться только в течение короткого времени, например, для отображения эффекта частицы, так как она будет дрейфовать относительно реального мира. Если вы планируете использовать эту 3D-точку для позиционирования долгоживущего объекта в мире, то вместо этого вы должны создать якорь из этого результата теста попадания, чтобы он не дрейфовал.
float agk::ARGetHitTestZ( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
Возвращает компонент Y данного результата теста попадания в 3D-пространстве. Результаты теста на попадание упорядочиваются с ближайшим первым, начиная с индекса 1. Эта точка должна использоваться только в течение короткого времени, например, для отображения эффекта частицы, так как она будет дрейфовать относительно реального мира. Если вы планируете использовать эту 3D-точку для позиционирования долгоживущего объекта в мире, то вам следует создать якорь из этого результата теста попадания, чтобы он не дрейфовал.
float agk::ARGetHitTestY( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
Возвращает тип обнаруженной поверхности: 1=плоскость, обычно горизонтальная, 0=точка, обычно стена или другой объект, -1=неизвестно.
int agk::ARGetHitTestType( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
Возвращает X-компоненту центра данной плоскости. Эта точка может со временем смещаться относительно реальной картины мира, поэтому ее следует регулярно проверять и обновлять, если вы используете ее для отображения видимого представления плоскости.
float agk::ARGetPlaneX( int index )
index - Индекс самолета для проверки, начиная с индекса 1
Возвращает Z-компоненту нормали данного результата теста попадания в 3D-пространстве. Результаты теста на попадание упорядочиваются с ближайшим первым, начиная с индекса 1. Для плоскостей на земле нормаль будет указывать прямо вверх в трехмерном пространстве, для точек, обнаруженных на стенах или других объектах, нормаль будет указывать в сторону от обнаруженной поверхности.
float agk::ARGetHitTestNormalZ( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
Возвращает Y-компоненту нормали данного результата теста попадания в 3D-пространстве. Результаты теста на попадание упорядочиваются с ближайшим первым, начиная с индекса 1. Для плоскостей на земле нормаль будет указывать прямо вверх в трехмерном пространстве, для точек, обнаруженных на стенах или других объектах, нормаль будет указывать в сторону от обнаруженной поверхности.
float agk::ARGetHitTestNormalY( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
Прикрепляет объект к якорю таким же образом, как работает FixObjectToObject. Положение и вращение объекта будут добавлены к положению и вращению якоря. Так, например, объект в положении 0,0,0 будет находиться непосредственно над положением якоря, тогда как если бы объект имел положение 0,2,0, то объект был бы расположен на 2 метра выше положения якоря. Нет ограничений на количество объектов, которые могут быть прикреплены к якорю, и объекты все еще могут быть прикреплены к объекту, прикрепленному к якорю. Например, объект 1 может быть закреплен на якоре, а объект 2-на объекте 1. Чтобы удалить объект из якоря, вызовите эту команду с идентификатором якоря 0. Затем объект будет помещен в мир в его заданном положении, например, положение 0,0,0 поместит его в начало мира.
void agk::ARFixObjectToAnchor( int objID, int anchorID )
objID - Идентификатор объекта для фиксации на якоре
anchorID - Идентификатор якоря для использования
Возвращает текущее состояние отслеживания данного якоря. 0=остановлено, 1=приостановлено, 2=отслеживается, -1=не знаю. Якоря могут перестать отслеживать, если камера теряет связь с миром, это может произойти, если камера не видит достаточно объектов, чтобы понять, как движется сцена. Например, глядя на пустую стену. Когда якорь останавливается или приостанавливает отслеживание, он сохраняет свое текущее положение и вращение, но это больше не коррелирует с мировым положением, которое он отслеживал, поэтому якорь может казаться дрейфующим относительно мира. Когда якорь возобновит слежение, он должен вернуться в свое правильное мировое положение.
int agk::ARGetAnchorStatus( int anchorID )
anchorID - Идентификатор якоря для проверки
Удаляет указанный якорь и освобождает все ресурсы, которые он использовал. Если какие-либо объекты были прикреплены к якорю при его удалении, то они вернутся в непривязанное состояние и будут помещены в мировые координаты
void agk::ARDeleteAnchor( int anchorID )
anchorID - Идентификатор якоря для удаления
Возвращает компонент X данного результата теста попадания в 3D-пространстве. Результаты теста на попадание упорядочиваются с ближайшим первым, начиная с индекса 1. Эта точка должна использоваться только в течение короткого времени, например, для отображения эффекта частицы, так как она будет дрейфовать относительно реального мира. Если вы планируете использовать эту 3D-точку для позиционирования долгоживущего объекта в мире, то вместо этого вы должны создать якорь из этого результата теста попадания, чтобы он не дрейфовал.
float agk::ARGetHitTestX( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
Возвращает X-компоненту нормали данного результата теста попадания в 3D-пространстве. Результаты теста на попадание упорядочиваются с ближайшим первым, начиная с индекса 1. Для плоскостей на земле нормаль будет указывать прямо вверх в трехмерном пространстве, для точек, обнаруженных на стенах или других объектах, нормаль будет указывать в сторону от обнаруженной поверхности.
float agk::ARGetHitTestNormalX( int index )
index - Индекс попадания результата теста проверить, начиная с индекса 1.
You must call this command if you want the AR camera feed to be drawn to the screen. If you do not then the camera will still track as if it were moving around the real world but the camera feed will not be seen inside the app. This may be useful if you want to render a purely virtual reality but still use the AR camera tracking functionality. The best time to call this command is just before calling Render or Sync.
void agk::ARDrawBackground()
Destroys the AR session and any resources allocated during setup. After you can not call any AR commands, except ARGetStatus and ARSetup. You may call ARSetup to recreate an AR session. There is no limit on the number of times you can create and destroy the AR session. Currently on Android this command may take up to 5 seconds, apparently this will be improved ina future version of Google's ARCore.
void agk::ARDestroy()