为什么 Unity Cient 不调用服务器命令?
Why Unity Cient doesn't call the server command?
当我按下发送按钮(所以调用发送函数)时,客户端没有调用服务器命令。服务器很好地调用 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;
}
}
如果有这张纸条的物体在现场。不是经理生成它,这就是它没有发送命令的原因。
聊天必须附在玩家身上!
当我按下发送按钮(所以调用发送函数)时,客户端没有调用服务器命令。服务器很好地调用 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;
}
}
如果有这张纸条的物体在现场。不是经理生成它,这就是它没有发送命令的原因。 聊天必须附在玩家身上!