我在做unity3D项目。它包含一个聊天部分。在这个聊天中,用户可能会在聊天中使用emojis。我的第一个问题是emojis没有显示在textfield中,在搜索了一天之后,更多的没有找到合适的解决方案。第二个问题是假设这些emojis现在显示了,我无法将它们保存在mysql数据库中,因为我使用utf8-mb4作为数据库、表和保存消息的列。有没有人找到在Unity3D中显示和保存表情符号的解决方案?
最佳答案
您需要编写一个函数来将消息文本转换为由子文本和表情图片组成的GameObject。
public GameObject convertStringToGameObject(String a_Text);
例如,如果您的文本是:
"Hello :) World :P"
则可以创建两个文本写入"Hello"
和"World"
之后,您可以检测表情符号类型并为矩形选择相应的纹理。将有根GameObject,它包含您的子GameObjects,可以是文本或图像,根据原始文本排序。
对于存储emojis,我建议使用Texture Atlas以便您可以将emojis的纹理坐标保存在DB中。
要存储用户的消息(带有emojis的消息),只需保存emojis的文本表示,而不是每次都存储图像。