当我按下发送按钮(因此调用发送功能)时,客户端不调用服务器命令。服务器很好地调用了RPC函数并发送了消息,客户端按预期显示了该消息。 已检查本地玩家权限。
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
[System.Obsolete]
public class chat : NetworkBehaviour
{
public GameObject input;
public Transform content;
public GameObject messageobj;
private Text text;
private void Start()
{
text = input.GetComponent<Text>();
}
public void Send()
{
Debug.Log("Send");
CmdSend(text.text);
}
[Command]
public void CmdSend(string message)
{
Debug.Log("CMD");
RpcSend(message);
}
[ClientRpc]
public void RpcSend(string message)
{
Debug.Log("RPC");
PutMessageToScreen(message);
}
public void PutMessageToScreen(string message)
{
Debug.Log("all");
GameObject mess = Instantiate(messageobj, content);
mess.GetComponent<Text>().text = message;
}
}
答案 0 :(得分:1)
如果具有此脚本的对象在现场。不是经理生成它,这就是为什么它没有发送命令。 聊天必须附加到播放器上!