首页 > 其他分享 >Unity UI制作新的记录

Unity UI制作新的记录

时间:2024-09-20 23:12:35浏览次数:8  
标签:string text 滚动条 Unity UI textMeshProUGUI 文本 制作 public

也是玩上 unity 了家人们。
记录一下与 ui 界面斗智斗勇的半个月。

TextMeshPro

textMeshProUGUI.preferredHeight 获取文本长度,便于修改滚动条长度或文本物体长度。
TextMeshPro 中的使用的文本 asset 可以在导入字体 font 文件之后右键 -> create -> TextMeshPro -> font asset -> SDF 这样创造可以被 text 使用的 font asset
在 TextMeshPro 的 text 中加入文本可以使用以下代码。

textMeshProUGUI.text = textMeshProUGUI.text + str + '\n' + '\n';

Scroll Rect

一个滚动条组件,在 content 中填入子对象就可以让子对象进行滚动。
一般来说,还要再在添加了 scroll rect 组件的对象上再添加一个 rect mask2D 这样就能让滚动的对象只显示一部分。
滚动条的位置由一个小数表示,这个小数记录了滚动条滚动到的位置在整个滚动条中的比例,如 sr.verticalNormalizedPosition = 0;
rectTransform.sizeDelta 是 scroll rect 的大小,是一个 \(vector2\) 类型,一个将 sr 长度调整为 text 长度的标准代码如下。

tmp = textMeshProUGUI.preferredHeight + 10f;
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, tmp);

文件读取

想要读取一个文件,就需要这个文件的相对地址,可以参考以下代码,“文件”文件夹就在 Asset 文件夹中。

public string FPath = "文本";
public string fullPath;

public void Read()
{
  string filePath = num.ToString() + ".txt";
  fullPath = Path.Combine(Application.dataPath, Path.Combine(FPath, filePath));
}

接着是读取文件,使用 File.ReadAllText 函数,\(csharp\) 对于逐字符阅读并不友好,所以最好直接读入大字符串再用 Split 函数切割。
这个函数的括号中填入切割指示符,在文本末尾不要加入指示符,否则会单独切割出一个换行符。

if (File.Exists(fullPath))
{
    Debug.Log(num.ToString());
    string TMP = File.ReadAllText(fullPath);
    text = TMP.Split('>');
}

菜单

下面给出一个切换菜单的样例。

public void SwitchTo(GameObject _menu)
{
    for(int i = 0; i < transform.childCount; i++)
        transform.GetChild(i).gameObject.SetActive(false);

    if(_menu != null)
    {
        //Time.timeScale = 0f;
        _menu.gameObject.SetActive(true);
        UIManager.instance.isInCanvas = true;
    }
}

Trivia

所有的 GetComponent 操作一定要在 Awake 中完成,并且在 inspector 中完成所有赋值。
不然很容易导致 Object reference not set to an instance of an object 的报错。

标签:string,text,滚动条,Unity,UI,textMeshProUGUI,文本,制作,public
From: https://www.cnblogs.com/caijiLYC/p/18423413

相关文章

  • 494. 响应式动漫设计公司网站 大学生期末大作业 Web前端网页制作 html5+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • Unity编辑器扩展秘籍-实现一个可拖放的List
    usingSystem;usingSystem.Collections.Generic;usingUnityEditor;usingUnityEngine;usingObject=UnityEngine.Object;namespaceyaojz{publicclassDroppableListView{privateList<DroppableItem>_datas=newList<DroppableIt......
  • 一文详解Unity下RTMP推送|轻量级RTSP服务|RTSP|RTMP播放模块说明
    技术背景好多开发者,对Unity下的模块,不甚了解,实际上,除了Windows/Linux/Android/iOSNativeSDK,大牛直播SDK发布了Unity环境下的RTMP推流|轻量级RTSP服务(Windows平台+Linux平台+Android平台)和RTMP|RTSP直播播放(Windows、Linux、Android和iOS平台全覆盖)低延迟的解决方案。目前,大牛直播......
  • 【Python-GUI图形化界面-PyQt5模块(2)】——QApplication核心模块
     本文旨在带大家学习Python中的一种GUI图形化界面模块——PyQt5模块,将为大家详细了解PyQt5模块中函数的参数和使用:一、PyQt5简介PyQt是Qt框架的Python语言实现,由RiverbankComputing开发,是最强大的GUI库之一。官方网站:www.riverbankcomputing.com、 本文比较倾向于教会......
  • unity调用java静态方法
    在uni-app中使用NFC功能,可以通过调用微信小程序的NFCAPI(目前只在微信小程序中有效)。uni-app是多平台框架,而NFC功能的具体实现依赖于微信小程序的NFCAPI。以下是如何在uni-app中使用NFC功能,包括发现NFC设备、连接以及写入数据的详细步骤。​前置条件确保已经......
  • 【春秋招必看】Unity相关笔试面试题(内有完整答案)第二期
    欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。今天是我们的第二期笔试面试题总结。C#部分:1、请说说你认为C#中==和Equals的区别是什么?答案:(1).==是运算符,Equals是万物之父Object中的虚方法,子类可重写(2).Equals一般在子类中重写后用于比较两个对象中内容是否相同......
  • 【题库制作】对于一个文档题库,将3或4个选项的题目分别放在单独的区域
    原文链接:https://www.cnblogs.com/MrFlySand/p/18422619操作步骤如下图,对于一个文档题库,将3或4个选项的题目分别放在单独的区域多添加一行D:将答案:替换为D.\n答案:删除多余的D行:将D\.(.*?\n)D\.替换为D.$1效果图删除空白行:将\n\n替换为\n对选项D进行筛选......
  • en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 对齐
    en造数据结构与算法C#用Unity实现简单的群组行为算法之聚集-CSDN博客en造数据结构与算法C#用Unity实现简单的群组行为算法之聚集-CSDN博客演示思路1.检测自然是沿用前两节的检测范围2.对齐朝向对齐朝向就是邻居鸟的forward加起来再除总数得到平均数3.对齐速度......
  • idea新版ui调出前进/后退箭头
    查看源码或者查看类/方法定义,需要前进或者后退JetbrainsIDE新UI设置前进/后退导航键_idea设置前进后退-CSDN博客      ......
  • 第2章 网页制作的排版方法
    2.1文字与段落排版2.1.1段落标签段落标签<p>是HTML格式中特有的段落元素,其其语法为:<palign="left|center|right">文字</p>属性align:设置段落文字在网页上的对齐方式,包括left(左对齐)、center(居中)和right(右对齐),默认为left。格式中的“|”表示或者,级多项选一项。2.1.2......