Example #1
0
        private TMP_FontAsset Setup(TMP_FontAsset f)
        {
            var originalFont = _cachedTekoFont;

            var matCopy = UnityEngine.Object.Instantiate(originalFont.material);

            matCopy.mainTexture       = f.material.mainTexture;
            matCopy.mainTextureOffset = f.material.mainTextureOffset;
            matCopy.mainTextureScale  = f.material.mainTextureScale;
            f.material = matCopy;
            f          = UnityEngine.Object.Instantiate(f);
            MaterialReferenceManager.AddFontAsset(f);
            return(f);
        }
Example #2
0
        public CostumeBuilder CostumeSprite(String name, Sprite sprite, float width, float height)
        {
            AddStep("COSTUME_SPRITE", (handler) =>
            {
                // set texture
                var spriteAsset            = ScriptableObject.CreateInstance <TMP_SpriteAsset>();
                spriteAsset.spriteInfoList = new List <TMP_Sprite>();
                spriteAsset.spriteInfoList.Add(new TMP_Sprite()
                {
                    name     = "ui_icon_entertainer_" + name,
                    unicode  = 0,
                    scale    = 1.0f,
                    sprite   = sprite,
                    height   = height,
                    width    = width,
                    pivot    = new Vector2(0, 0),
                    x        = 0,
                    y        = 0,
                    yOffset  = height,
                    xAdvance = width
                });
                spriteAsset.spriteSheet = sprite.texture;
                ShaderUtilities.GetShaderPropertyIDs();
                Material material = new Material(Shader.Find("TextMeshPro/Sprite"));
                material.SetTexture(ShaderUtilities.ID_MainTex, spriteAsset.spriteSheet);
                material.hideFlags   = HideFlags.HideInHierarchy;
                spriteAsset.material = material;
                spriteAsset.hashCode = TMP_TextUtilities.GetSimpleHashCode("ui_icon_entertainer_" + name);
                typeof(TMP_SpriteAsset).GetField("m_FaceInfo",
                                                 BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic)
                ?.SetValue(spriteAsset, FontEngine.GetFaceInfo());
                spriteAsset.UpdateLookupTables();
                MaterialReferenceManager.AddSpriteAsset(spriteAsset);

                handler.Target.costumeSpriteName = name;
                handler.Target.customeSprite     = sprite;
            });
            return(this);
        }