Unity 3D Можно ли разблокировать достижение, используя номер уровня? - PullRequest
0 голосов
/ 27 октября 2019

Мне нужна помощь со сценарием, в котором я пытаюсь реализовать достижения Google Play, для этого я использую Easy Mobile Pro.
Я бы хотел, чтобы они разблокировались после достижения уровня.

Проблема в том, что игра имеет случайно сгенерированные уровни и уходит в бесконечность.

in unity image

, но новое число будет добавлено, когда уровень будет завершен дотекстовое поле

, обеспечивающее выполнение этого сценария:

script image

сценарий разблокировки достижения:

// Unlock an achievement
// EM_GameServicesConstants.Sample_Achievement is the generated name constant
// of an achievement named "Sample Achievement"
GameServices.UnlockAchievement(EM_GameServicesConstants.Achievement_Level 5);

Можно ли разблокировать достижение с помощью номера уровня?

Например, на 5-м уровне будет ли разблокировано достижение?

1 Ответ

0 голосов
/ 28 октября 2019

Похоже, что в используемом вами API необходимо, чтобы эти константы были сгенерированы из данных Google Play, поэтому их нужно знать и генерировать заранее, а их бесконечное количество не может быть. См. Документацию здесь: https://www.easymobile.sglibgames.com/docs/pro/chapters/game-services/module-configuration.html#constants-generation

Похоже, вам нужен фрагмент кода, подобный следующему:

if(GameManager.Instance.level == 5)
{
  GameServices.UnlockAchievement(EM_GameServicesConstants.Achievement_Level_5)
}
else
{
  // deal with other levels
}

, или в качестве другого обходного пути, похоже, что вы можете получить каждое достижениепо имени https://www.easymobile.sglibgames.com/docs/pro/chapters/game-services/scripting.html#achievements

Перебирайте все достижения по имени, проверяйте, соответствует ли это названию уровня, и присваивайте его так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...