我有一个游戏对象"飞机"这不是由客户控制的。当主持人点击某个按钮时,会产生一个播放剪辑的音频源。我希望客户听到声音,我尝试使用rpc,但我似乎无法发送它们。
我一直收到错误:在平面上发现传入的[ClientRpc:InvokeRpcRpc_SendSoundIDToServer]没有行为(UnityEngine.GameObject),服务器和客户端应该具有相同的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]