Hello, recently i was trying to add a chat to my multiplayer game and i tried many ways to add a chat,
its been long time im trying but it didnt work
however unity does not give me any errors so its hard to tell where is the problem
here is my code:
using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class PhotonChatManager : MonoBehaviour, IPunObservable
{
public static PhotonChatManager instance;
public TMP_InputField chatField;
public CommandsHandler cmdHandler;
public TMP_Text chat;
PhotonView PV;
public string playerName;
public string lastMessage;
public Command[] commands = new Command[5];
public List<string> operators = new List<string>();
void Awake() {
PV = GetComponent<PhotonView>();
cmdHandler = GetComponent<CommandsHandler>();
if(!PV.IsMine)
return;
playerName = PhotonNetwork.NickName;
instance = this;
if(PhotonNetwork.IsMasterClient){
operators.Add(playerName);
}
}
public void checkChatMessage(string message){
foreach (Command cmd in commands)
{
string wholeCmd = "/" + cmd.name;
if(message.StartsWith(wholeCmd)){
accessCommand(cmd, message);
return;
}
}
if(message.StartsWith("/"))
return;
string formattedMsg = "[!] " + playerName + "<color=#C0C0C0>» </color>" + message;
if(PhotonNetwork.IsMasterClient){
formattedMsg = "<color=#FF3333>[Host] </color>" + playerName + "<color=#C0C0C0>» </color> " + message;
PV.RPC("sendMessage", RpcTarget.All, formattedMsg);
return;
}
formattedMsg = "<color=#FF8D33>[!] </color>" + playerName + "<color=#C0C0C0>» </color>" + message;
PV.RPC("sendMessage", RpcTarget.All, formattedMsg);
}
bool isSent;
public void accessCommand(Command command, string msg){
foreach (var op in operators)
{
if(op != playerName)
return;
cmdHandler.AccessCommand(command.index, msg);
}
}
[PunRPC]
public void sendMessage(string message){
chat.text += "
" + message;
}
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{
//IPunObservable implement
}
}