在Android上混合生成的对象值(声音/分数),但在Unity2D中是正确的

时间:2019-04-26 10:18:49

标签: c# android unity3d audio

我正在制作一个简单的游戏来学习Unity2D和C#,在这里您必须捕捉从天上掉下来的球。每个球被困在篮筐中时会发出不同的声音,并以不同的方式影响得分。

有3种类型的球:

  • 普通球-玩“ Boink!”被捕获时发出声音,并为玩家得分加1。
  • 肮脏的球-玩“嘘!”被捕获时发出声音,并从玩家得分中减去2。
  • 特殊球,打“丁!”被捕获时发出声音,并增加5分。

在Unity2D中按播放时,所有这些都可以正常工作。声音以正确的球类型播放,并且乐谱正在按预期更新。

但是在Android设备上构建并运行时,会发生以下情况:

  • 普通球-玩“嘘!”被捕获时发出声音,并从玩家得分中减去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 :(得分:0)

在更改了我可能想到的所有内容两天后,答案是卸载应用程序。

该应用的先前安装只有1个球,而不是3个球。由于某些原因,在添加2个新球并使用“文件”>“构建并运行”而不是将其删除并重新安装后,似乎在升级时出现了问题。新版本。

步骤:

  • 从设备上卸载应用程序
  • 文件>构建并运行