0
我只是尋找任何可以使這段代碼更好的推薦。如果我以這種方式繼續前進,將會是一段我認爲可以避免的代碼,但現在這種方式已經超出了我的想象。這會很快失去控制。如何讓這段代碼更容易處理碰撞音頻?
public enum PhysicMaterialType
{
SoundFailure = 0,
AsteroidBall,
BalloonRubber
}
public void PlaySoundBasedOnCollision (PhysicMaterialType phyMatA, PhysicMaterialType phyMatB)
{
switch (phyMatA)
{
case PhysicMaterialType.AsteroidBall:
{
CheckAsteroidBallCollision (phyMatB);
break;
}
case PhysicMaterialType.BalloonRubber:
{
CheckBalloonRubberCollision (phyMatB);
break;
}
}
}
void CheckAsteroidBallCollision (PhysicMaterial phyMatB)
{
switch (phyMatB)
{
case PhysicMaterialType.AsteroidBall:
{
//Play AsteroidAsteroidBallSound
break;
}
case PhysicMaterialType.BalloonRubber:
{
break;
}
}
}
如果'phyMatA'是一個AsteroidBall和'phyMatB'是一個BalloonRubber,你想要發生什麼? (反之亦然)如果他們都是同一類型,你只有一個聲音播放? –
這只是一個簡短的例子,我現在有大約15種材料可以全部相互碰撞,都可以播放聲音。雖然如果您交換phyMatB命令phyMatA的順序,它將發揮與phyMatA命中phyMatB相同的聲音。 –