Как данные перевести в JSON строку, чтобы отправлять ее в сетевой чат Photon
Есть класс, в который записываются данные из инвентаря
public enum msg_type { show,trade};
[Serializable]
public class chat_message
{
public msg_type type;
public Sprite icon;
public string itemName;
public string itemDesr;
public string json;
}
Есть класс, который отправляет в fieldView(Имитация чата) префаб, который отправляет в чат картинку, и название предмета, заполняется вот этим кодом:
public class ChatScript : MonoBehaviour
{
public ToolTip toolTipShow;
public ToolTip toolTipTrade;
public Transform messageCont;
public GameObject showcasePref;
//public GameObject tradePref;
public void postMessageShow(chat_message msg)
{
if (msg.type == msg_type.show)
{
GameObject message = Instantiate(showcasePref, messageCont);
message.GetComponent<ShowcaseMess>().tooltip = toolTipShow;
message.GetComponent<ShowcaseMess>().msg = msg;
//message.GetComponent<ShowcaseMess>().itemIcon.sprite = msg.icon;
message.GetComponent<ShowcaseMess>().itemName.text = msg.itemName;
}
}
public void postMessageTrade(chat_message msg)
{
if (msg.type == msg_type.trade)
{
GameObject message = Instantiate(showcasePref, messageCont);
message.GetComponent<ShowcaseMess>().tooltip = toolTipTrade;
message.GetComponent<ShowcaseMess>().msg = msg;
// message.GetComponent<ShowcaseMess>().itemIcon.sprite = msg.icon;
message.GetComponent<ShowcaseMess>().itemName.text = msg.itemName;
}
}
}
Вот кусок кода, который отправляет в чат сообщения через Photon и сюда нужно передать заполненный префаб:
public void SendButton()
{
if(textUserName.text =="")
{
client.PublishMessage("Все", textMessage.text);
}
else
{
client.SendPrivateMessage(textUserName.text, textMessage.text);
}
}
Вот этот код заполняет префаб, который содержит иконку и название предмета:
public void tradeItem()
{
chat_message msg = new chat_message();
msg.type = msg_type.trade;
// msg.icon = icon.sprite;
msg.itemName = itemName.text;
msg.itemDesr = itemDescr.text;
chat.postMessageTrade(msg);
}
Пытался перевести данные из класса chat_message в JSON, вот этим кодом, но он выкидывал пустое значение и только названия:
string jsonData = JsonConvert.SerializeObject(chat_Message);
chat_message msg = JsonConvert.DeserializeObject<chat_message>(jsonData);