Html格式的富文本转换成Unity可识别的富文本

这篇博客介绍了如何将Html格式的富文本转换为Unity可以识别的格式,特别是在游戏公告场景中,需要在Java端编辑富文本后,通过lua代码在Unity端进行转换,目前实现的功能包括颜色和字号的转换,可以根据需求扩展其他转换逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Html格式的富文本转换成Unity可识别的富文本

需求:做游戏公告的时候,需要在java端使用富文本,java端的格式是以"<p>"段落内容..."</p>"进行分段,<span ....> 正文内容.... </sapn>进行富文本编辑,当后台将这些直接传给unity的时候,unity需要将其转成自己可识别的富文本。
以下是完整的lua代码,调用HtmlTool:HtmlToLua(),将需要转换的字符串传进,返回值是已经替换好的字符串。目前是替换了颜色和字号,需要改的可以在HtmlTool:Justgsub()方法中进行修改。

--[[
Author: 石英男
Github: https://gitee.com/anshun_xun_yu_network/doudizhu3d_client.git
Date: 2021-07-08 10:18:25
LastEditors: 石英男
LastEditTime: 2021-07-09 17:54:07
Description: 
--]]
local HtmlTool = {
   }

--以P标签进行分段存储的字符串
local pTab = {
   }

local spanIndexTab = {
   }

local SpecialSymbolsTab = {
   
    {
   specialSymbols = "%&lt;", rightStr = "<"},
    {
   specialSymbols = "%&gt;", rightStr = ">"},
    {
   specialSymbols = "%&amp;", rightStr = "&"},
    {
   specialSymbols = "%&quot;", rightStr = "“"},
    {
   specialSymbols = "%&reg;", rightStr = "®"},
    {
   specialSymbols = "%&copy;", rightStr = "©"},
    {
   specialSymbols = "%&trade;", rightStr = "™"},
    {
   specialSymbols = "<br>", rightStr = "\n"}
    
}
local specialSymbolsIndex = 1
--[[
@description: 将传入的html格式的语言转换成unity可识别的富文本string
@param {tempStr 传入的string 值}
@return {*}
--]]
function HtmlTool:HtmlToLua(tempStr)
    local result = ""
    pTab = {
   }
    self:SubStrByPFlag(tempStr)
    if next(pTab) == nil then
        return tempStr
    end
    for index, value in ipairs(pTab) do
        result = string.gsub(result .. self:Justgsub(value), "<p>", "")
        result = string.gsub(result, "</p>", "\n")
        result = self:GSubSpecialSymbols(result)
    end

    return result
end
--[[
@description: 以P标签进行分段
@param {*}
@return {*}
--]]
function HtmlTool:SubStrByPFlag(tempStr)
    if string.len(tempStr) <= 0 then
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值