ApplyOffset() protected method

Align the vertices, making the label positioned correctly based on the pivot. Returns the offset that was applied.
protected ApplyOffset ( BetterList verts, int start ) : Vector2
verts BetterList
start int
return Vector2
Esempio n. 1
0
    private static float computeFloat(UILabel label)
    {
        float  result = 0, preData = 0;
        string text = label.processedText;

        if (string.IsNullOrEmpty(text))
        {
            return(result);
        }
        label.UpdateNGUIText();
        NGUIText.PrintCharacterPositions(text, UILabel.mTempVerts, UILabel.mTempIndices);
        if (UILabel.mTempVerts.size > 0)
        {
            label.ApplyOffset(UILabel.mTempVerts, 0);
            for (int i = 0; i < UILabel.mTempIndices.size; i += 2)
            {
                float x = UILabel.mTempVerts[i].x;
                if (x > preData)
                {
                    result += x - preData;
                }
                else
                {
                    result += label.fontSize;
                }
                preData = x;
            }
            UILabel.mTempVerts.Clear();
            UILabel.mTempIndices.Clear();
        }
        NGUIText.bitmapFont  = null;
        NGUIText.dynamicFont = null;
        return(result);
    }
Esempio n. 2
0
    public static Vector2 compute(UILabel label)
    {
        Vector2 result = Vector2.zero;
        string  text   = label.processedText;

        if (string.IsNullOrEmpty(text))
        {
            return(result);
        }
        label.UpdateNGUIText();
        int index = label.text.Length - 1;

        NGUIText.PrintCharacterPositions(text, UILabel.mTempVerts, UILabel.mTempIndices);
        if (UILabel.mTempVerts.size > 0)
        {
            label.ApplyOffset(UILabel.mTempVerts, 0);
            for (int i = 0; i < UILabel.mTempIndices.size; i++)
            {
                if (UILabel.mTempIndices[i] == index)
                {
                    result = UILabel.mTempVerts[i];
                    break;
                }
            }
            UILabel.mTempVerts.Clear();
            UILabel.mTempIndices.Clear();
        }
        NGUIText.bitmapFont  = null;
        NGUIText.dynamicFont = null;
        return(result);
    }
Esempio n. 3
0
    static int ApplyOffset(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 3);
        UILabel obj = (UILabel)LuaScriptMgr.GetUnityObjectSelf(L, 1, "UILabel");
        BetterList <Vector3> arg0 = (BetterList <Vector3>)LuaScriptMgr.GetNetObject(L, 2, typeof(BetterList <Vector3>));
        int     arg1 = (int)LuaScriptMgr.GetNumber(L, 3);
        Vector2 o    = obj.ApplyOffset(arg0, arg1);

        LuaScriptMgr.Push(L, o);
        return(1);
    }
Esempio n. 4
0
 static public int ApplyOffset(IntPtr l)
 {
     try {
         UILabel self = (UILabel)checkSelf(l);
         BetterList <UnityEngine.Vector3> a1;
         checkType(l, 2, out a1);
         System.Int32 a2;
         checkType(l, 3, out a2);
         var ret = self.ApplyOffset(a1, a2);
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Esempio n. 5
0
	static int ApplyOffset(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 3);
			UILabel obj = (UILabel)ToLua.CheckObject<UILabel>(L, 1);
			BetterList<UnityEngine.Vector3> arg0 = (BetterList<UnityEngine.Vector3>)ToLua.CheckObject<BetterList<UnityEngine.Vector3>>(L, 2);
			int arg1 = (int)LuaDLL.luaL_checknumber(L, 3);
			UnityEngine.Vector2 o = obj.ApplyOffset(arg0, arg1);
			ToLua.Push(L, o);
			return 1;
		}
		catch (Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}
Esempio n. 6
0
    public static int ApplyOffset(IntPtr l)
    {
        int result;

        try
        {
            UILabel uILabel = (UILabel)LuaObject.checkSelf(l);
            BetterList <Vector3> verts;
            LuaObject.checkType <BetterList <Vector3> >(l, 2, out verts);
            int start;
            LuaObject.checkType(l, 3, out start);
            Vector2 o = uILabel.ApplyOffset(verts, start);
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, o);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
Esempio n. 7
0
    //Step 4: Postprocess
    //Build all emoji UISprites after the building of ALL WIDGETS of the parent panel of label is complete.
    //When panel is building widgets it can not record the widgets created in building. But when building label, emojis(Sprites) will be created.
    public void PostLabelBuilding()
    {
        // Must be called ONLY if label was actually rebuilt.
        if (!postbuild)
        {
            return;
        }
        postbuild = false;

        foreach (var matched in preparedEmojis)
        {
            if (matched.emojiDynamicSprite != null)
            {
                matched.emojiDynamicSprite.color = matched.colorTint;
                continue;
            }

            //Create new emoji.
            var matchedEmojiData = matched.emojiData;
#if UNITY_EDITOR
            //Bug?..........: http://answers.unity3d.com/questions/609621/hideflagsdontsave-causes-checkconsistency-transfor.html
#if HIDE_EMOJIS
            GameObject newSprite = UnityEditor.EditorUtility.CreateGameObjectWithHideFlags("emoji " + matchedEmojiData.EmojiName, HideFlags.None);
#else
            GameObject newSprite = UnityEditor.EditorUtility.CreateGameObjectWithHideFlags("emoji " + matchedEmojiData.EmojiName, HideFlags.DontSave); 
#endif
            //bug hack. See class OnEmoijSpriteWillSaveEditor
            newSprite.tag = emojiTag;
#else
            GameObject newSprite = new GameObject("emoji " + matchedEmojiData.EmojiName);
#endif

            newSprite.layer = label.cachedGameObject.layer;
            UISpriteData sd = matchedEmojiData.atlas.GetSprite(matchedEmojiData.spriteNames[0]);
            UISprite sprite = newSprite.AddComponent<UISprite>();
            sprite.type = (sd == null || (!sd.hasBorder)) ? UISprite.Type.Simple : UISprite.Type.Sliced;
            sprite.atlas = matchedEmojiData.atlas;
            //Sync depth.
            sprite.depth = label.depth;
            //Use first UV Frame
            sprite.spriteName = matchedEmojiData.spriteNames[0];
            //Apply color tint of label
            sprite.color = matched.colorTint;
            //sprite created.
            matched.emojiDynamicSprite = sprite;

            //AttachToLabel as a child. Movement,Rotation,Scaling of label supported.	
            matched.emojiDynamicSprite.cachedTransform.parent = label.cachedTransform;
            matched.emojiDynamicSprite.cachedTransform.localScale = Vector3.one;
            matched.emojiDynamicSprite.cachedTransform.localPosition = Vector3.zero;
            matched.emojiDynamicSprite.cachedTransform.localRotation = Quaternion.identity;
        }

        //Pool unRused showEmojis. 
        foreach (var runtimeEmoji in showingEmojis)
        {
            runtimeEmoji.ResetValueData();
            runtimeEmoji.emojiDynamicSprite.cachedGameObject.SetActive(false);
            emojiPool.Add(runtimeEmoji);
        }

        showingEmojis.Clear();
        //Get Current Valid Emojis.
        showingEmojis.AddRange(preparedEmojis);
        preparedEmojis.Clear();

        //Label pivot layout calculation
        emojiLayoutTemp.Clear();

        for (int i = 0; i < showingEmojis.Count; i++)
        {
            emojiLayoutTemp.Add((showingEmojis[i].localBottomLeft + showingEmojis[i].localTopRight) / 2f);
        }
        //Apply pivot layout
        label.ApplyOffset(emojiLayoutTemp, 0);

        for (int i = 0; i < showingEmojis.Count; i++)
        {
            var runtimeEmoji = showingEmojis[i];
            if (runtimeEmoji.emojiDynamicSprite.cachedTransform.parent != label.cachedTransform)
            {
                runtimeEmoji.emojiDynamicSprite.cachedTransform.parent = label.cachedTransform;
                runtimeEmoji.emojiDynamicSprite.cachedTransform.localScale = Vector3.one;
                runtimeEmoji.emojiDynamicSprite.cachedTransform.localRotation = Quaternion.identity;
            }
            runtimeEmoji.emojiDynamicSprite.cachedTransform.localPosition = emojiLayoutTemp[i];

            // pooled is inactive.
            runtimeEmoji.emojiDynamicSprite.gameObject.SetActive(true);
            runtimeEmoji.emojiDynamicSprite.CreatePanel();
            runtimeEmoji.emojiDynamicSprite.SetDimensions((int)(runtimeEmoji.localTopRight.x - runtimeEmoji.localBottomLeft.x), (int)(runtimeEmoji.localTopRight.y - runtimeEmoji.localBottomLeft.y));
        }
    }