我有与我的角色相关联的动画事件,这些事件在他们迈步时会播放随机的脚步声。我正在尝试将其设置为多人游戏,但我遇到了一些问题。对于一个人,声音只会在应该播放的时候播放一次。然而,在 2 人的测试中,当一个玩家迈步时,它会同时播放每个脚步声两次。每个播放器都有一个音频源组件。两个脚步声都来自运行的播放器的音源,所以这不是两个播放器播放相同声音的情况。关于为什么声音被欺骗和同时播放的任何想法?双重声音来自同一个客户端,但仅当该客户端处于多人游戏中时。而且不是其他人走路的时候,只有客户。我的 RPC 必须设置错误或将某些东西放在错误的位置。
1 个播放器和 1 个音频源:声音播放一次
2 个拥有自己音频源的播放器:声音重复并同时播放
2 个播放器启用了音频源,仅用于步行:声音仍然播放两次
从我的播放器代码
public void PlayFootstep()
{
int clipPick = Random.Range(0, footstepArray.Length);
GetComponent<AudioSource>().clip = footstepArray[clipPick];
photonView.RPC("PlayFootstepRPC", RpcTarget.All);
}
[PunRPC]
private void PlayFootstepRPC()
{
if (GetComponent<AudioSource>().isActiveAndEnabled && GetComponent<PlayerMovement>().ySpeed > 1.15)
{
GetComponent<AudioSource>().Play();
}
}