Как данные перевести в 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);

Ответы (0 шт):