Не могу понять, как получить Unity to Sync Chat для многопользовательской игры

Я не могу понять, как использовать Unity Networking для синхронизации чата между двумя игроками. У меня есть базовый код, но я не могу понять, что не так. Мне нужно, чтобы текст player1 соответствовал тексту player2 и обновлялся, когда значение передается в PushSystemEvent(). Код, кажется, не синхронизируется правильно, когда игрок один отправляет сообщение, которое он не обновляет ни его, ни текст другого игрока;

using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEngine; 
using UnityEngine.UI;
using UnityEngine.Networking;
public class EventController : NetworkBehaviour {
public GameObject[] TextObj;
public Text EventText;
public string[] EnemyNames;
public string[] MountN;
public DBCon DB;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
    EnemyNames = DB.Names;
    MountN = DB.MountNames;
    TextObj = GameObject.FindGameObjectsWithTag("Text");
    PushSystemEvent("Test");
}
private void Awake()
{

   DB =  GetComponent<DBCon>();



    DB.Fetch();

    EnemyNames = DB.Names;

}

public void PushSystemEvent(string s)
{
    CmdSyncText(EnemyS(s));
}

public string EnemyS(string s)
{

    s = MountS(s);
    foreach (string str in DB.Names)
    {
        s = Regex.Replace(s, str, "[<color=#FF0000>" + str + "</color>]", RegexOptions.IgnoreCase);
    }
    return s;
}

public string MountS(string s)
{

    foreach (string str in DB.MountNames)
    {
        s = Regex.Replace(s, str, "[<color=#33FFBB>" + str + "</color>]", RegexOptions.IgnoreCase);
    }
    return s;

}




[Command]
public void CmdSyncText(string chat)
{
    TextUpdate(chat);
}


[ClientRpc]
public void TextUpdate(string chat)
{

    if (!isLocalPlayer)
    {

        EventText.text += chat;
    }

}


}

0 ответов

Другие вопросы по тегам