GetTextAnchorPivot() public static method

Convenience function to determine the vector offset of the anchor.

public static GetTextAnchorPivot ( TextAnchor anchor ) : Vector2
anchor TextAnchor
return Vector2
コード例 #1
0
        protected override void OnPopulateMesh(VertexHelper toFill)
        {
            if ((UnityEngine.Object) this.font == (UnityEngine.Object)null)
            {
                return;
            }
            this.m_DisableFontTextureRebuiltCallback = true;
            this.cachedTextGenerator.Populate(this.text, this.GetGenerationSettings(this.rectTransform.rect.size));
            Rect    rect            = this.rectTransform.rect;
            Vector2 textAnchorPivot = Text.GetTextAnchorPivot(this.m_FontData.alignment);
            Vector2 zero            = Vector2.zero;

            zero.x = Mathf.Lerp(rect.xMin, rect.xMax, textAnchorPivot.x);
            zero.y = Mathf.Lerp(rect.yMin, rect.yMax, textAnchorPivot.y);
            Vector2          vector2 = this.PixelAdjustPoint(zero) - zero;
            IList <UIVertex> verts   = this.cachedTextGenerator.verts;
            float            num1    = 1f / this.pixelsPerUnit;
            int num2 = verts.Count - 4;

            toFill.Clear();
            if (vector2 != Vector2.zero)
            {
                for (int index1 = 0; index1 < num2; ++index1)
                {
                    int index2 = index1 & 3;
                    this.m_TempVerts[index2]             = verts[index1];
                    this.m_TempVerts[index2].position   *= num1;
                    this.m_TempVerts[index2].position.x += vector2.x;
                    this.m_TempVerts[index2].position.y += vector2.y;
                    if (index2 == 3)
                    {
                        toFill.AddUIVertexQuad(this.m_TempVerts);
                    }
                }
            }
            else
            {
                for (int index1 = 0; index1 < num2; ++index1)
                {
                    int index2 = index1 & 3;
                    this.m_TempVerts[index2]           = verts[index1];
                    this.m_TempVerts[index2].position *= num1;
                    if (index2 == 3)
                    {
                        toFill.AddUIVertexQuad(this.m_TempVerts);
                    }
                }
            }
            this.m_DisableFontTextureRebuiltCallback = false;
        }
コード例 #2
0
ファイル: TextExt.cs プロジェクト: Lucas1805/Teek_AR
            /*void RefreshEmojis()  {
             *      foreach( var go in deleteTheese ) {
             *              if( go == null ) continue;
             *              if( UnityEngine.Application.isPlaying == false && Application.isEditor ) {
             *                      //Debug.Log("Destroy 1");
             *                      GameObject.DestroyImmediate( go );
             *              } else {
             *                      //Debug.Log("Destroy 2");
             *                      GameObject.Destroy(go);
             *              }
             *      }
             *      deleteTheese.Clear();
             *      foreach( var go in activateTheese ) {
             *              if( go == null ) {
             *                      continue;
             *              }
             *              try {
             *                      if( go.GetComponent<Tastybits.EmojiAssist.Emoji>() != null ) {
             *                              go.GetComponent<Tastybits.EmojiAssist.Emoji>().UpdateContent();
             *                      }
             *                      go.SetActive(true);
             *              }catch{
             *
             *              }
             *      }
             *      activateTheese.Clear();
             * }*/


            // The
            void OrgPopulate(VertexHelper toFill)
            {
                if (this.font == null)
                {
                    return;
                }
                //System.Reflection.BindingFlags bindFl = System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance;

                this.m_DisableFontTextureRebuiltCallback = true;
                Vector2 size = this.rectTransform.rect.size;
                TextGenerationSettings generationSettings = this.GetGenerationSettings(size);

                this.cachedTextGenerator.Populate(_text, generationSettings);
                Rect rect = this.rectTransform.rect;


                Vector2 textAnchorPivot = Text.GetTextAnchorPivot(this.alignment);
                Vector2 zero            = Vector2.zero;

                zero.x = ((textAnchorPivot.x != 1f) ? rect.xMin : rect.xMax);
                zero.y = ((textAnchorPivot.y != 0f) ? rect.yMax : rect.yMin);
                Vector2          vector = base.PixelAdjustPoint(zero) - zero;
                IList <UIVertex> verts  = this.cachedTextGenerator.verts;
                float            num    = 1f / this.pixelsPerUnit;
                int num2 = verts.Count - 4;

                toFill.Clear();


                if (vector != Vector2.zero)
                {
                    for (int i = 0; i < num2; i++)
                    {
                        int num3 = i & 3;
                        this.m_TempVerts [num3] = verts[(i)];
                        UIVertex[] expr_147_cp_0 = this.m_TempVerts;
                        int        expr_147_cp_1 = num3;
                        expr_147_cp_0 [expr_147_cp_1].position = expr_147_cp_0 [expr_147_cp_1].position * num;
                        UIVertex[] expr_16B_cp_0_cp_0 = this.m_TempVerts;
                        int        expr_16B_cp_0_cp_1 = num3;
                        expr_16B_cp_0_cp_0 [expr_16B_cp_0_cp_1].position.x = expr_16B_cp_0_cp_0 [expr_16B_cp_0_cp_1].position.x + vector.x;
                        UIVertex[] expr_190_cp_0_cp_0 = this.m_TempVerts;
                        int        expr_190_cp_0_cp_1 = num3;
                        expr_190_cp_0_cp_0 [expr_190_cp_0_cp_1].position.y = expr_190_cp_0_cp_0 [expr_190_cp_0_cp_1].position.y + vector.y;
                        if (num3 == 3)
                        {
                            toFill.AddUIVertexQuad(this.m_TempVerts);
                        }
                    }
                }
                else
                {
                    for (int j = 0; j < num2; j++)
                    {
                        int num4 = j & 3;
                        this.m_TempVerts [num4] = verts[(j)];
                        UIVertex[] expr_201_cp_0 = this.m_TempVerts;
                        int        expr_201_cp_1 = num4;
                        expr_201_cp_0 [expr_201_cp_1].position = expr_201_cp_0 [expr_201_cp_1].position * num;
                        if (num4 == 3)
                        {
                            toFill.AddUIVertexQuad(this.m_TempVerts);
                        }
                    }
                }

                this.m_DisableFontTextureRebuiltCallback = false;
            }
コード例 #3
0
ファイル: TextExt.cs プロジェクト: Lucas1805/Teek_AR
            void NewPopulate(VertexHelper toFill)
            {
                if (this.font == null)
                {
                    return;
                }
                if (InputIsAppending)
                {
                    Debug.Log("Input is changing text ignore it.");
                }
                if (_verbose)
                {
                    Debug.Log("New populate");
                }

                //System.Reflection.BindingFlags bindFl = System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance;

                this.m_DisableFontTextureRebuiltCallback = true;
                Vector2 size = this.rectTransform.rect.size;
                TextGenerationSettings generationSettings = this.GetGenerationSettings(size);

                this.cachedTextGenerator.Populate(_text, generationSettings);
                //this.cachedTextGenerator.Populate( _textAsStringWithEmojisReplaced, generationSettings );

                Rect rect = this.rectTransform.rect;

                Vector2 textAnchorPivot = Text.GetTextAnchorPivot(this.alignment);
                Vector2 pivotPoint      = Vector2.zero;

                pivotPoint.x = ((textAnchorPivot.x != 1f) ? rect.xMin : rect.xMax);
                pivotPoint.y = ((textAnchorPivot.y != 0f) ? rect.yMax : rect.yMin);
                Vector2 offset = base.PixelAdjustPoint(pivotPoint) - pivotPoint;

                IList <UIVertex> verts = this.cachedTextGenerator.verts;

                ProcessVerts();

                //DoFillVBO( this.cachedTextGenerator, ref verts );

                float units        = 1f / this.pixelsPerUnit;
                int   numCharVerts = verts.Count - 4;

                toFill.Clear();



                if (offset != Vector2.zero)
                {
                    for (int i = 0; i < numCharVerts; i++)
                    {
                        int num3 = i & 3;
                        this.m_TempVerts [num3] = verts[(i)];
                        UIVertex[] expr_147_cp_0 = this.m_TempVerts;
                        int        expr_147_cp_1 = num3;
                        expr_147_cp_0 [expr_147_cp_1].position = expr_147_cp_0 [expr_147_cp_1].position * units;
                        UIVertex[] expr_16B_cp_0_cp_0 = this.m_TempVerts;
                        int        expr_16B_cp_0_cp_1 = num3;
                        expr_16B_cp_0_cp_0 [expr_16B_cp_0_cp_1].position.x = expr_16B_cp_0_cp_0 [expr_16B_cp_0_cp_1].position.x + offset.x;
                        UIVertex[] expr_190_cp_0_cp_0 = this.m_TempVerts;
                        int        expr_190_cp_0_cp_1 = num3;
                        expr_190_cp_0_cp_0 [expr_190_cp_0_cp_1].position.y = expr_190_cp_0_cp_0 [expr_190_cp_0_cp_1].position.y + offset.y;
                        if (num3 == 3)
                        {
                            toFill.AddUIVertexQuad(this.m_TempVerts);
                        }
                        //string tmpCh = System.Text.RegularExpressions.Regex.Unescape( "\ud83d\ude02" );
                    }
                }
                else
                {
                    for (int j = 0; j < numCharVerts; j++)
                    {
                        int num4 = j & 3;
                        this.m_TempVerts [num4] = verts[(j)];
                        UIVertex[] expr_201_cp_0 = this.m_TempVerts;
                        int        expr_201_cp_1 = num4;
                        expr_201_cp_0 [expr_201_cp_1].position = expr_201_cp_0 [expr_201_cp_1].position * units;
                        if (num4 == 3)
                        {
                            toFill.AddUIVertexQuad(this.m_TempVerts);
                        }
                    }
                }

                //this.GetType().GetField( "m_TempVerts", bindFl ).SetValue(this, this.m_TempVerts );


                this.m_DisableFontTextureRebuiltCallback = false;
            }