为什么Unity Cient不调用服务器命令?

时间:2019-10-07 16:34:56

标签: c# unity3d networking 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;
    }
}

1 个答案:

答案 0 :(得分:1)

如果具有此脚本的对象在现场。不是经理生成它,这就是为什么它没有发送命令。 聊天必须附加到播放器上!