一个生成短链接小工具,和TextMeshPro字库设置

Unity2021.3.3字体组件TextMeshPro

先上demo源码:

using System.Collections;
using System.Collections.Generic;
using System.Text;
using MiniJSON;
using TMPro;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;

public class UrlGetUI : MonoBehaviour
{
    private TMP_Dropdown dropdown;
    private TMP_InputField inputField;
    private TextMeshProUGUI textMesh;
    private TextMeshProUGUI placeholder;
    private Button button;
    private Button buttonGoUrl;
    private int cb;
    private string longUrl;
    private string shorturl;


    void Start()
    {
        dropdown = GameObject.Find("Canvas/Panel/Dropdown").GetComponent<TMP_Dropdown>();
        inputField = GameObject.Find("Canvas/Panel/InputField (TMP)").GetComponent<TMP_InputField>();
        textMesh = GameObject.Find("Canvas/Panel/Text_Short").GetComponent<TextMeshProUGUI>();
        placeholder = GameObject.Find("Canvas/Panel/InputField (TMP)/Text Area/Placeholder").GetComponent<TextMeshProUGUI>();
        button = GameObject.Find("Canvas/Panel/Button").GetComponent<Button>();
        buttonGoUrl = GameObject.Find("Canvas/Panel/Text_Short").GetComponent<Button>();
        dropdown.onValueChanged.AddListener(GetValue);
        inputField.onValueChanged.AddListener(GetLongUrl);
        button.onClick.AddListener(GetOnClick);
        buttonGoUrl.onClick.AddListener(GoUrlClick);
        cb = 1;
        longUrl = "https://blog.csdn.net/hack_yin/article/details/125091499";
        placeholder.text = longUrl;
    }

    private void GoUrlClick()
    {
        //打开短连接
        Application.OpenURL(shorturl);
    }

    private void GetOnClick()
    {
        StartCoroutine(HttpGetRequest());
    }

    private IEnumerator HttpGetRequest()
    {
        string url = "https://wy.bestshe.top/dwz.php";
        url = string.Format("{0}?cb={1}&longurl={2}", url, cb, longUrl);
        UnityWebRequest web = UnityWebRequest.Get(url);
        yield return web.SendWebRequest();
        if (web.result != UnityWebRequest.Result.Success)
            Debug.Log(" error:" + web.error);
        else if (web.isDone)
        {
            string str = Encoding.UTF8.GetString(web.downloadHandler.data);
            Dictionary<string, object> data = (Dictionary<string, object>)Json.Deserialize(str);
            if (data.ContainsKey("dwz_url"))
            {
                shorturl =data["dwz_url"].ToString();
                textMesh.text = " <link='id_02'><u><i><#2103C3>" + data["dwz_url"] + "</i></u></link>";
                inputField.text = shorturl;
            }
        }
    }
    
    private void GetLongUrl(string arg0)
    {
        if (!string.IsNullOrEmpty(arg0))
        {
            longUrl = arg0;
            placeholder.text = longUrl;
        }
        else
        {
            placeholder.text = "请输入要缩短的Url";
        }
    }

    private void GetValue(int i)
    {
        //防红类型	1=微信/QQ内跳浏览器 2=微信/QQ不跳浏览器 3 = 强开已红测试 4 =  直接缩短
        //switch (i)
        //{
        //   case 0: cb = 1; break;
        //   case 1: cb = 2; break;
        //   case 2: cb = 3; break;
        //   case 3: cb = 4; break;
        //}
         cb =i+1;
    }
}

 

 TextMeshPro字库创建(字体创建)

 先导入一个TTC字体进资源管理器(project),打开字库创建编辑器,Window-TextMeshPro-FontAssetCreator

 

 以下是myCharacters.txt文件,因为此demo用到的就只有如下几个字,我就只添加了这些字,以免增加字体体积,打包的体积会变大

myCharacters.txt的内容:

0123456789asdfghjklmnbvcxzqwertyuiopASDFGHJKLZXCVBNMQWERTYUIOP©\/|\|/ˇ 
.,说明:在输入框输入要转换的长链接,生成后点击输入框复制短链接,粘贴到浏览器就可以打开了。
或者点击直接跳转,此Demo没有做防红,只是简单的长链接转成短链接。
Copyright©2022 王银  微信:点击跳转-->短链接生成器输入长(返回短,可复制)选择跳转方式:
/QQ内跳浏览器不强开已红_测试无需防红 - 直接缩短地址请

 这样就解决了字体显示方框框了,而且不增加安装包的体积。

demo下载地址https://download.csdn.net/download/hack_yin/85540269

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要制作TextMeshPro字体的字库,您需要遵循以下步骤: 1. 准备字形图像:首先,您需要为每个字符准备一个单独的字形图像。可以使用图形设计工具(如Adobe Photoshop或Illustrator)创建这些图像,确保它们具有透明背景,并且每个字符在图像中居中。 2. 导入字形图像:将每个字符的字形图像导入Unity项目。选中所有图像文件,右键点击并选择"Import",确保它们被正确导入到项目中。 3. 创建TextMeshPro字体:在Unity中,右键点击"Project"窗口,选择"Create"->"TextMeshPro"->"Font Asset"。这将创建一个新的TextMeshPro字体资源。 4. 设置字体参数:在Inspector窗口中,将您的新字体资源命名为您喜欢的名称,并设置其他参数,如字体样式、大小、对齐方式等。确保选择正确的字符集(如ASCII、Unicode等)。 5. 分配字符图像:在Font Asset面板的下方,您将看到一个字符集的网格。单击网格上的每个单元格,并将相应的字符图像分配给每个单元格。确保字符图像被正确地映射到对应的字符。 6. 保存字体:完成字符图像的分配后,点击"Generate Font Atlas"按钮生成字体纹理图集。然后点击"Save"按钮保存字体资源。 7. 应用字体:现在,您可以将TextMeshPro字体应用到您的文本组件或UI元素上。选择相应的文本组件,将其字体属性设置为您刚创建的字体资源。 这样,您就成功制作了TextMeshPro字体的字库!记得根据您的需求调整字体大小、样式和其他属性,以便获得最佳的显示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王 银

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值