0

我有一个不受客户控制的游戏对象“平面”。当主机单击某个按钮时,它会生成一个播放剪辑的音频源。我希望客户能听到声音,我尝试使用 rpc,但我似乎无法发送它们。

我不断收到错误消息:在平面(UnityEngine.GameObject)上未发现传入 [ClientRpc:InvokeRpcRpc_SendSoundIDToServer] 的行为,服务器和客户端应具有相同的 NetworkBehaviour 实例。

一天多来一直让我发疯,我真的很感激一些帮助。

这是我的代码:

using UnityEngine;
using UnityEngine.Networking;

[RequireComponent(typeof(AudioSource))]
[RequireComponent(typeof(NetworkIdentity))]
public class SpoolUp : NetworkBehaviour
{
private AudioSource source;

public AudioClip[] clips;
public bool start;

void Start()
{
clips = Resources.LoadAll("Audio");
source = GetComponent();
source.playOnAwake = false;
}
public void Spool()
{
start = true;
if (isServer)
PlaySound(0);
}

public void PlaySound(int id)
{
if (id >= 0 && id < clips.Length)
{
RpcPlaySound(id);
}
}
[ClientRpc]
void RpcPlaySound(int id)
{
source.PlayOneShot(clips[id]);
}

PS:我还收到以下警告:找不到 ClientRpc [ClientRpc:InvokeRpcRpcPlaySound] 处理程序 [netId=4]

4

0 回答 0