可修改上下標顏色以及大小
說明:
**:
using system.collections.generic;
using system.text;
using system.text.regularexpressions;
using unityengine;
using unityengine.ui;
namespace ltyframework.ui
)(\|([0-9]))?(\|([0-9a-za-z]+))?=(.+?)\]"
;private
static
readonly
regex m_regex =
newregex
(m_regextag, regexoptions.singleline)
;///
/// 文字轉換
///
private
static
readonly
stringbuilder m_textbuilder =
newstringbuilder()
;///
/// 頂點列表
///
private
readonly uivertex[
] m_tempverts =
newuivertex[4
];///
/// 輸出文字
///
private
string m_outputtext;
///
/// 字元寬度
///
public
float charwidth
///
/// 字元高度
///
public
float charheight
///
/// 角標資料
///
private list m_cornerboxinfos =
newlist
<
cornerinfo
>()
;///
/// 角標高度偏移值
///
[range(-
1,1)
]public
float heightoffset =
0.08f
;public
override
void
setverticesdirty()
protected
override
void
onpopulatemesh
(vertexhelper tofill)
vector2 roundingoffset =
newvector2
(verts[0]
.position.x, verts[0]
.position.y)
* unitsperpixel;
roundingoffset =
pixeladjustpoint
(roundingoffset)
- roundingoffset;
tofill.
clear()
; list _vertsposlist =
newlist
<
vector3
>()
;if(roundingoffset != vector2.zero)
}else
}drawcornerscript
(tofill, m_cornerboxinfos);}
private
string
getoutputtext()
string _color =
string
.empty;
if(match.groups[5]
.success)
_color = match.groups[5]
.value;
color _contentcolor =
getcolor
(_color, color)
;string color1 =
getcolor
(_contentcolor)
;string _content = match.groups[6]
.value;
m_textbuilder.
(inputtext.
substring
(unmatchindex, match.index - unmatchindex));
int _startindex = m_textbuilder.length *4;
m_textbuilder.(")
; m_textbuilder.
(color1)
; m_textbuilder.
(">");
m_textbuilder.(")
; m_textbuilder.
(mathf.
floortoint
(_fontsize /2f)
);m_textbuilder.
(">");
if(usesquarebrackets)
m_textbuilder.
("[");
m_textbuilder.
(_content);if
(usesquarebrackets)
m_textbuilder.
("]");
m_textbuilder.(""
);m_textbuilder.(""
);int _endindex = m_textbuilder.length *4;
cornerinfo cornerinfo =
newcornerinfo()
; m_cornerboxinfos.
add(cornerinfo)
; unmatchindex = match.index + match.length;
} m_textbuilder.
(inputtext.
substring
(unmatchindex, inputtext.length - unmatchindex));
return m_textbuilder.
tostring()
;}///
/// 畫角標
///
///
private
void
drawcornerscript
<
t>
(vertexhelper tofill, list boxinfo)
where t : cornerinfo
}break
;case
"2":
//下標
case
"4":
default
:break;}
} tofill.
clear()
; tofill.
adduivertex********stream
(vertexs);}
#region 輔助功能
///
/// 獲取顏色
///
/// 16進製制字元/顏色
///
///
private
color
getcolor
(string color,
color originalcolor)
", color)
; isdefined = colorutility.
tryparsehtmlstring
(color,
out _newcolor);if
(!isdefined)
_newcolor =
base
.color;}}
return _newcolor;
}///
/// 獲取16進製制顏色
///
///
///
private
string
getcolor
(color color)
private
class
cornerinfo
#endregion}}
示例:
文字上下輪播
之前也寫過兩篇程式猿生涯的文章.後面都給刪掉了 一直想重新寫起來 把一些碼 遇到的一些坑給記下來,一直忘記,也一直拖著,拖延症越來越嚴重了.回到主題吧.最近做專案 遇到乙個小效果.對的 只是乙個小效果而已 就是文字上下輪播 一樣.但是基本可以解決需求.現學現用.問題也可以解決但是並不知道這個東西是怎...
文字上下滾動
效果圖 無間隙文字向上滾動1a li href 無間隙文字向上滾動2a li href 無間隙文字向上滾動3a li href 無間隙文字向上滾動4a li href 無間隙文字向上滾動5a li href 無間隙文字向上滾動6a li href 無間隙文字向上滾動7a li ul div div ...
div內容文字上下滾動
上就是滑鼠滾動 滑鼠移動到箭頭然後文字上下或者左右移動hhhhhhhhhhhhhhh 就是滑鼠滾動 滑鼠移動到箭頭然後文字上下或者左右移動 就是滑鼠滾動 滑鼠移動到箭頭然後文字上下或者左右移動 就是滑鼠滾動 滑鼠移動到箭頭然後文字上下或者左右移動 就是滑鼠滾動 滑鼠移動到箭頭然後文字上下或者左右移動...