Значения порожденных объектов (звуки / оценки) смешиваются на Android, но в Unity2D они верны - PullRequest
1 голос
/ 26 апреля 2019

Я делаю простую игру для изучения Unity2D и C #, где вам нужно ловить падающие с неба шары. Каждый мяч играет по-разному, когда попадает в корзину, и по-разному влияет на счет.

Существует 3 вида шаров:

  • Обычный мяч - играет "Boink!" звучит, когда пойман и добавляет 1 к счету игроков.
  • Грязный шар - играет "Буо!" Звучит, когда пойман, и вычитает 2 из очков игроков.
  • Специальный мяч, играет "Дин!" звучит, когда пойман и добавляет 5 к счету игроков.

Все это прекрасно работает при нажатии play в Unity2D. Звуки воспроизводятся на правильном типе мяча, и результаты обновляются, как и ожидалось.

Однако при сборке и запуске на устройстве Android происходит следующее:

  • Обычный мяч - играет "Booo!" Звук, когда пойман и вычитает 2 из очков игроков.
  • Грязный шар - играет "Boink!" звучит, когда пойман и добавляет 1 к счету игроков.
  • Специальный мяч, не воспроизводит звук при попадании и добавляет 0 к счету игроков.

Ниже приведен пример моего кода.

Создание шаров:

IEnumerator Spawn()
{
    Instantiate(GetBall(), spawnPosition, spawnRotation);
}

GameObject GetBall()
{
    float randomBallChance = Random.Range(1, 101);
    if (randomBallChance <= 60)
    {
        return normalBall;
    }
    else
    {
        return (if (randomBallChance <= 70) ? specialBall : dirtyBall);
    }
}

Обновление счета и воспроизведение звуков:

void OnCollisionEnter2D(Collision2D collision)
{
    switch (collision.gameObject.tag)
    {
        case "normalBall": 
        {
            score += scoreValue;
            normalSound.Play();
            break;
        }
        case "dirtyBall":
        {
            score -= (scoreValue * 2);
            dirtySound.Play();
            break;
        }
        case "specialBall ":
        {
            score += 5;
            specialSound.Play();
            break;
        }
    }
}

Не могу понять, почему все хорошо при игре на Unity, но не на Android.

1 Ответ

0 голосов
/ 27 апреля 2019

После 2 дней изменения всего, что я мог придумать, ответом было удаление приложения.

В предыдущей установке приложения было только 1 шарик вместо 3. По какой-то причине, похоже, что при обновлении было добавлено 2 шарика с использованием File> Build And Run вместо его удаления и повторного запуска.-установка новой версии.

Шаги:

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