Не могу понять, как получить 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;
}
}
}