TextInlineSprite
TextInlineSprite copied to clipboard
Canvas模式改为Camera模式,图文不在一条平行线上
我动态修改panel_text下面的txt内容会出现上面图片的情况,但是我静态输入在text里的话就不会 发放奖励[0#money_0]5[0#money_1]500K[0#money_2]5[0#money_3]5[0#money_4]5
试着在赋值后,调用一下InlineText的ActiveText函数
我尝试了调用一下InlineText的ActiveText函数还是不行啊 和我打开界面的方式有关系嘛?是不是有应该ActiveText调用过后 就不会重新排版了啊。Unity-EmojiText-master这个是最新的源码 还是现在我使用的这个
就这里是最新的代码,或者你可以发个demo到到我邮箱,我看看具体的问题
这个问题修改为camera就会出现错位的情况
嗯,可能暂时不支持camera模式,选择camera模式后,canvas的scale是有变化的。当时在计算位置是,并未考虑到这个问题。我会尽力修复的
我尝试了一下这样去修改 发现camera模式scale缩放的比例和图片生成位置的比例基本是一致的。 public void UpdateTextInfo(int _id, InlineText _key, List<SpriteTagInfo> _value) {
Vector3 _disPos = _textPos - _spritePos;
if (m_Canvas != null)
{
if (m_Canvas.renderMode == RenderMode.ScreenSpaceCamera)
{
_disPos = _disPos / m_Canvas.transform.localScale.x;
}
}
}
@ShenJinchang 非常感谢,测试成功,已更新代码
这个修改的话 在unity客户端看上去没有问题 但是手机上显示还是会有偏移.
解决该问题的方法,替换代码为下:
//新增摄像机模式的位置判断
if (_key.canvas != null)
{
if (_key.canvas.renderMode != RenderMode.ScreenSpaceOverlay)
{
Vector3 _scale = _key.canvas.transform.localScale;
_disPos = _textPos - _spritePos;
_disPos = new Vector3(_disPos.x / _scale.x, _disPos.y / _scale.y, _disPos.z / _scale.z);
}
}
赞!