Почему Unity Cient не вызывает команду сервера? - PullRequest
1 голос
/ 07 октября 2019

Когда я нажимаю кнопку отправки (поэтому вызываю функцию отправки), клиент не вызывает команду сервера. Сервер хорошо вызывает функцию 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 Ответ

1 голос
/ 08 октября 2019

Если объект, имеющий этот сценарий, был на сцене. Не менеджер породил его, и именно поэтому он не отправил команду. Чат должен быть прикреплен к игроку!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...