简易虚拟培训系统-UI控件的应用2

news2025/1/15 13:51:42

目录

Text组件-文字显示

Text组件-文字动态显示

ScrollView组件

使用文件流动态读取硬盘文件


  本篇介绍Text和ScrollView的简单应用,以及读取硬盘中.txt文本的内容

Text组件-文字显示

  1. 加入Text:在mainCanvas上点右键->UI->选择Text和TextMeshPro都可以。

  以下以TextMeshPro为例,第一次选择TextMeshPro时,会提示导入TMP组件,点击第一个按钮即可:

   2. 修改一下Text的名字以便于识别:

  

   3. 在场景中修改和移动这个文本框的大小和位置:

  4. 修改、调整显示的文字:找到Text控件的TextInput,在输入框中输入想要的文字,并可调整字体、大小、颜色等。需要注意的是,中文字一般无法正常显示,需要做特殊设置(详见引用Unity 中文不显示问题_unity中文字体不能打出来_陈少伯的博客-CSDN博客)

  

Text组件-文字动态显示

   在系统中经常会使用代码来动态修改文字的内容,需要使用到UI控件时,需要在头文件中引用:

using UnityEngine.UI; //使用到UI类时需要引用
using TMPro;   //使用TextMeshPro时需要引用

   测试代码如下,只要获取到文本上的text组件,就能修改它的内容:

public class TextChange : MonoBehaviour
{
    public TMP_Text titleText;  //TextMeshPro需要使用的类型
    
    void Update()
    {
        //当按下K键时,文字改变
        if (Input.GetKey(KeyCode.K))
        {
            titleText.text = "系统开始运行";
        }
    }
}

   将这个TextChange代码挂到场景的任意一个节点上(我这边是建立了一个空节点,所有没地方挂的代码都挂在这里),并拖入titleText节点:

   运行结果如下,按下K按键时文字改变:

 ScrollView组件

  当显示的文字太多时,需要在ScrollView中滑动显示,使用方法如下:

  1.  加入ScrollView:在mainCanvas上点右键->UI->选择ScrollView,ScrollView下的子节点和组件较多,以下介绍重要的组成部分。

  其中Content里面,我们可以放入需要显示的内容,文字、图片或者其他控件都可以。

   2. 在ScrollView->Viewport->Content内加入Text:在Content上点右键,加入Text

   3. 调整Text的大小,并且在Text中输入需要显示的内容,当文字比较多时,要将Content的大小调整到所有文字都能够显示的长度(右图白色的框):

    

   运行效果:

   

   4. ScrollView中放入图片:在ScrollView->Viewport->Content上点右键,加入Image,并调整Content的长度,以便于足够显示所有内容

  

  运行效果:

使用文件流动态读取硬盘文件

  当显示的文本和图片较多时,需要在UI中建立很多个Text组件,且需要调整字体、颜色等,比较麻烦,可以考虑在场景运行时,使用文件流读取硬盘上的TXT文件,动态地写进Text组件内容中。方法如下:

  1. 使用前文的设置的ScrollView为例,使用Content下的Text(TMP)来显示文本。

 

   2. 在硬盘上存储若干个TxT文本,每一项显示的内容存储一个txt文档。建议在Resources下建立一个存放文件夹记事本的文件夹。另外还需要注意的是,txt文档尽量使用UTF-8的存储格式。

    

   3. 编辑代码:

  文件流需要使用的命名空间如下:

using System.IO;
using System.Text;

   代码如下:

public class textShow : MonoBehaviour
{
    public TMP_Text introText;  //载入显示文本的Text控件
    void Start()
    {
        introText.text = ReadTxt("introTxt", "01_systemIntro");
    }

    public static string ReadTxt(string fileName,string txtFile)
    {
        string path= "Assets/Resources/" + fileName + "/" + txtFile + ".txt"; //文本存放的路径
        string content="未读到文件内容";
        FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); 
        StreamReader sr = new StreamReader(fs, Encoding.UTF8);
        if (null == sr)
            Debug.Log("读取失败");
        else
            content = sr.ReadToEnd();
        sr.Close();
        return content;
    }
}

   4. 将代码挂在场景内的任意节点上(本文挂在场景的一个空节点Empty上),并将ScrollView-Content下的Text(TMP)拖入Text变量内:

   运行效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/944699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CocosCreator组件上的schedule

目录 1.首先看component.ts中schedule 函数,核心代码就是获取director.getScheduler(),并调用schedule方法,把callback等参数传递进去。 2.再看到scheduler.ts类中的schedule方法,只取一些主要代码,下面会分段详细拆…

dockerfile 例子(二)

Dockerfile由一行一行的命令语句组成,#开头的为注释行。Dockerfile文件内容分为四个部分:基础镜像信息、维护者信息、镜像操作指令以及容器启动执行指令。 接下来给大家列出Dockerfile中主要命令的说明。 FROM,指定所创建镜像的基础镜像。 …

Verilog基础:块语句

相关阅读 Verilog基础专栏https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 1、块语句 块语句(block statements)是一种把语句组织在一起,这样他们在语法上就像单个语句一样工作。Verilog HDL中有两种类型的块: …

“惠医通-医院挂号订单平台”

结合已学习过的vue3和TS完成的项目,便于患者对自己想要就诊的科室进行挂号,付款 一:项目简介 前端技术栈 Vue3 TS vue-router Element-ui Axios Pinia 项目架构 二:主要模块 1. axios二次封装 1.1 创建实例 //利用axios.creat…

如何调整DOSBOX软件的运行窗口大小

前言 小编最近正在学习微机原理,碰到一些问题,在安装DOSBOX后,打开应用,会出现运行窗口特别小,字体也很小的情况,使用时会感觉特别费劲,看着特别的不舒服,那么这个时候就需要调整一…

【LeetCode题目详解】第八章 贪心算法 part01 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和 day31补

贪心算法理论基础 关于贪心算法,你该了解这些! 题目分类大纲如下: # 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如,有一堆钞票&…

【C#】C#:“指派给常量数组的必须是常量”

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 记录一个有意思的代码片段。 首先,复习一下常量。…

安防监控/磁盘阵列存储/视频汇聚平台EasyCVR调用rtsp地址返回的IP不正确是什么原因?

安防监控/云存储/磁盘阵列存储/视频汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RT…

leetcode 563.二叉树的坡度

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/binary-tree-tilt/description/ 代码: class Solution { public:int childFind(TreeNode* root , int& sumTile) {if (root nullptr) {return 0; // 空树坡度为0}int l…

VBA技术资料MF48:VBA_在Excel中将列号与字母转换

【分享成果,随喜正能量】除非自己的认知获得了改变和刷新,否则,人们常说的“顺应自己的内心”,顺的不过是一颗旧心,一颗惯性的,充满了各种习性的套路之心。与“顺应自己的内心”恰恰相反,人要用…

2023最新独立版校园跑腿校园社区小程序系统源码 | 附教程

2023最新独立版校园跑腿校园社区小程序系统源码 | 附教程 测试环境:NginxPHP7.2MySQL5.6 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务 源码下载:https://download.c…

二叉搜索树(C++)

二叉搜索树 概念二叉搜索树的应用二叉搜索树的实现K模型基本结构和函数声明接口实现①find——查找关键码②Insert——插入关键码③Erase——删除关键码(重点)时间复杂度 源码(整体)非递归递归 KV模型 在使用C语言写数据结构阶段时…

【Linux】进程通信 — 信号(下篇)

文章目录 📖 前言1. 阻塞信号1.1 信号其他相关常见概念:1.2 sigset_t:1.2 - 1 信号集操作函数 1.3 sigprocmask:1.4 sigpending: 2. 进程处理信号2.1 内核页表和用户页表:2.2 内核态和用户态:2.…

华为OD机试 - VLAN资源池 - 回溯、双指针(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、核心思想2、具体解题思路 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题&…

产品帮助中心对SaaS行业的作用

帮助中心是一款SaaS产品必不可少的一部分,为了帮助用户更好的解决产品相关问题,提高新用户的使用体验,并且引导其更好地使用产品。 所以今天我们就来谈谈帮助中心对SaaS行业的作用,以及制作帮助中心的方法,每个产品帮…

基于 OV5640 的图像采集显示系统(DVP 接口时序逻辑设计)

文章目录 前言一、DVP 接口时序逻辑设计二、基本数据流接收三、像素位置输出四、舍弃前 N 张图像五、系统异常状态恢复控制六、完整代码展示七、仿真代码展示八、仿真波形展示前言 上一节,我们已经完成了 OV5640 初始化逻辑的介绍。接下来,将要开始完成 DVP 接口的时序设计。…

Maven入门教程(一):安装Maven环境

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 ​ 在项目开发中Maven可以对jar包和对工程之间的依赖关系进行管理。maven仓库中存储jar包,可以一次下载,所有项目通用。 1. 安装…

Java项目-苍穹外卖-Day07-redis缓存应用-SpringCache/购物车功能

文章目录 前言缓存菜品问题分析和实现思路缓存菜品数据清理缓存数据功能测试 SpringCache介绍入门案例 缓存套餐 前言 本章节主要是进行用户端的购物车功能开发 和redis作为mysql缓存的应用以及SpringCache的介绍 因为很多人查询数据库会导致mysql的查询效率降低,可…

解读亚马逊云科技语义搜图检索方案

图像检索(包括文搜图和图搜图)是各个行业中常见的一个应用场景。比如在电商场景中,基于以图搜图做相似商品查找;在云相册场景中,基于文搜图来找寻所需的图像素材。 传统基于标签的图像检索方式,即先使用目标…

压力传感器的性能技术指标

压力传感器采用第四代无线传输方式,加入用高性能的感压芯片,配合先进的电路处理和温度补偿技术,选用不锈钢外壳做隔离防腐,能够测量与接触部分材质相兼容的气体和液体等介质的表压和绝压。 应用场合:如供水、排水、消…