@@ -16,12 +16,9 @@ public class InlineText : Text, IPointerClickHandler
16
16
private static readonly Regex _inputTagRegex = new Regex ( @"\[(\-{0,1}\d{0,})#(.+?)\]" , RegexOptions . Singleline ) ;
17
17
//文本表情管理器
18
18
private InlineManager _inlineManager ;
19
- //更新后的文本
20
- private string _outputText = "" ;
19
+
21
20
//表情位置索引信息
22
21
private List < SpriteTagInfo > _spriteInfo = new List < SpriteTagInfo > ( ) ;
23
- //保留之前的图集ID,相关信息
24
- private Dictionary < int , List < SpriteTagInfo > > _oldDrawSpriteInfo = new Dictionary < int , List < SpriteTagInfo > > ( ) ;
25
22
//计算定点信息的缓存数组
26
23
private readonly UIVertex [ ] m_TempVerts = new UIVertex [ 4 ] ;
27
24
@@ -137,29 +134,29 @@ protected override void OnPopulateMesh(VertexHelper toFill)
137
134
}
138
135
139
136
#region 文本所占的长宽
140
- public override float preferredWidth
141
- {
142
- get
143
- {
144
- var settings = GetGenerationSettings ( Vector2 . zero ) ;
145
- return cachedTextGeneratorForLayout . GetPreferredWidth ( _outputText , settings ) / pixelsPerUnit ;
146
- }
147
- }
148
- public override float preferredHeight
149
- {
150
- get
151
- {
152
- var settings = GetGenerationSettings ( new Vector2 ( rectTransform . rect . size . x , 0.0f ) ) ;
153
- return cachedTextGeneratorForLayout . GetPreferredHeight ( _outputText , settings ) / pixelsPerUnit ;
154
- }
155
- }
156
- #endregion
137
+ // public override float preferredWidth
138
+ // {
139
+ // get
140
+ // {
141
+ // var settings = GetGenerationSettings(Vector2.zero);
142
+ // return cachedTextGeneratorForLayout.GetPreferredWidth(_outputText, settings) / pixelsPerUnit;
143
+ // }
144
+ // }
145
+ // public override float preferredHeight
146
+ // {
147
+ // get
148
+ // {
149
+ // var settings = GetGenerationSettings(new Vector2(rectTransform.rect.size.x, 0.0f));
150
+ // return cachedTextGeneratorForLayout.GetPreferredHeight(_outputText, settings) / pixelsPerUnit;
151
+ // }
152
+ // }
153
+ #endregion
157
154
158
- #region 绘制表情
155
+ #region 绘制表情
159
156
void UpdateDrawnSprite ( )
160
157
{
161
158
//记录之前的信息
162
- if ( _spriteInfo == null || _spriteInfo . Count == 0 && _lastRenderIndexs . Count > 0 )
159
+ if ( ( _spriteInfo == null || _spriteInfo . Count == 0 ) && _lastRenderIndexs . Count > 0 )
163
160
{
164
161
for ( int i = 0 ; i < _lastRenderIndexs . Count ; i ++ )
165
162
{
@@ -172,10 +169,12 @@ void UpdateDrawnSprite()
172
169
_lastRenderIndexs . Clear ( ) ;
173
170
for ( int i = 0 ; i < _spriteInfo . Count ; i ++ )
174
171
{
175
- _inlineManager . UpdateTextInfo ( this , _spriteInfo [ i ] . Id , _spriteInfo [ i ] ) ;
176
172
//添加渲染id索引
177
- if ( _lastRenderIndexs . Contains ( _spriteInfo [ i ] . Id ) )
173
+ if ( ! _lastRenderIndexs . Contains ( _spriteInfo [ i ] . Id ) )
174
+ {
175
+ _inlineManager . UpdateTextInfo ( this , _spriteInfo [ i ] . Id , _spriteInfo . FindAll ( x=> x . Id == _spriteInfo [ i ] . Id ) ) ;
178
176
_lastRenderIndexs . Add ( _spriteInfo [ i ] . Id ) ;
177
+ }
179
178
}
180
179
}
181
180
}
0 commit comments