TextInlineSprite icon indicating copy to clipboard operation
TextInlineSprite copied to clipboard

Canvas模式改为Camera模式,图文不在一条平行线上

Open ShenJinchang opened this issue 7 years ago • 10 comments

image

我动态修改panel_text下面的txt内容会出现上面图片的情况,但是我静态输入在text里的话就不会 发放奖励[0#money_0]5[0#money_1]500K[0#money_2]5[0#money_3]5[0#money_4]5

ShenJinchang avatar Oct 24 '17 13:10 ShenJinchang

试着在赋值后,调用一下InlineText的ActiveText函数

coding2233 avatar Oct 25 '17 05:10 coding2233

我尝试了调用一下InlineText的ActiveText函数还是不行啊 和我打开界面的方式有关系嘛?是不是有应该ActiveText调用过后 就不会重新排版了啊。Unity-EmojiText-master这个是最新的源码 还是现在我使用的这个

ShenJinchang avatar Oct 26 '17 09:10 ShenJinchang

就这里是最新的代码,或者你可以发个demo到到我邮箱,我看看具体的问题

coding2233 avatar Oct 27 '17 03:10 coding2233

image

这个问题修改为camera就会出现错位的情况

ShenJinchang avatar Oct 27 '17 08:10 ShenJinchang

嗯,可能暂时不支持camera模式,选择camera模式后,canvas的scale是有变化的。当时在计算位置是,并未考虑到这个问题。我会尽力修复的

coding2233 avatar Oct 27 '17 12:10 coding2233

我尝试了一下这样去修改 发现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 avatar Nov 29 '17 08:11 ShenJinchang

@ShenJinchang 非常感谢,测试成功,已更新代码

coding2233 avatar Nov 29 '17 15:11 coding2233

这个修改的话 在unity客户端看上去没有问题 但是手机上显示还是会有偏移.

ShenJinchang avatar Dec 09 '17 09:12 ShenJinchang

解决该问题的方法,替换代码为下:

    //新增摄像机模式的位置判断
    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);
        }
    }

QliaoLianpeng avatar Apr 12 '18 01:04 QliaoLianpeng

赞!

KKsama avatar Apr 13 '18 10:04 KKsama