Unity在屏幕上输出文字

为了使文本显示功能更加模块化和可重用,我们可以将其封装成一个独立的C#类,这样其他脚本可以方便地调用它来显示文本。下面是如何封装这个功能并使其易于从其他脚本中调用的步骤:

步骤 1: 创建一个新的C#脚本

在Unity的Project视图中,右击并选择 Create -> C# Script。

命名这个脚本为 TextDisplayer。

步骤 2: 编辑TextDisplayer脚本

打开TextDisplayer脚本,并替换其中的代码为以下内容:

using UnityEngine;public class TextDisplayer : MonoBehaviour
{private static TextDisplayer instance;public static TextDisplayer Instance{get{if (instance == null){// 创建一个新的GameObject来附加TextDisplayer脚本GameObject go = new GameObject("TextDisplayer");instance = go.AddComponent<TextDisplayer>();}return instance;}}public string message = "Hello, Unity!";public int fontSize = 24;public Color fontColor = Color.white;void Awake(){if (instance == null){instance = this;DontDestroyOnLoad(gameObject);  // 使对象在加载新场景时不被自动销毁}else{Destroy(gameObject);  // 确保只有一个实例存在}}void OnGUI(){GUIStyle guiStyle = new GUIStyle();guiStyle.fontSize = fontSize;guiStyle.normal.textColor = fontColor;Vector2 size = guiStyle.CalcSize(new GUIContent(message));Rect rect = new Rect((Screen.width - size.x) / 2, (Screen.height - size.y) / 2, size.x, size.y);GUI.Label(rect, message, guiStyle);}public void DisplayMessage(string msg, int size, Color color){message = msg;fontSize = size;fontColor = color;}
}

步骤 3: 从其他脚本调用TextDisplayer

现在你可以从任何其他脚本调用TextDisplayer来显示文本。以下是如何使用这个封装好的类的示例:

using UnityEngine;public class ExampleUsage : MonoBehaviour
{void Start(){// 显示自定义消息TextDisplayer.Instance.DisplayMessage("Welcome to the Game!", 30, Color.green);}
}

步骤 4: 测试功能

确保TextDisplayer脚本已经存在于一个GameObject上,或者由于它的自我实例化特性,它会自动创建所需的GameObject。

将ExampleUsage脚本附加到任何活动的GameObject上。

运行游戏并查看输出。

通过这种方式,你可以轻松地在任何地方通过调用TextDisplayer.Instance.DisplayMessage()方法来显示文本,这使得代码更加整洁和模块化。

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

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

相关文章

昇思25天学习打卡营第03天|张量Tensor

何为张量&#xff1f; 张量&#xff08;Tensor&#xff09;是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数&#xff0c;这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 &#x1d45b;维空间内&#xff0c;有  &#x1d45b;&a…

ppt模版免费下载网站大全

PPT是我们传达信息、分享知识、展示项目和进行商务沟通的重要工具。一个设计精美、布局合理的PPT不仅能吸引观众的注意力&#xff0c;还能有效提升演讲者的专业形象。PPT模版可以帮助我们高效制作出精美的PPT&#xff0c;下面小编就来和大家分享一些免费无需注册登录就可以直接…

Mysql进阶-索引-使用规则-索引失效情况二(or连接的条件、数据分布影响)

文章目录 1、or连接的条件1.1、展示 tb_user 索引1.2、查询 id10 or age231.3、执行计划 id10 or age231.4、给 age 创建 索引1.4、执行计划 phone17799990004 or age23 2、数据分布影响2.1、查询 tb_user2.2、查询 phone >177999900202.3、执行计划 phone >177999900202…

Python学习打卡:day17

day17 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 目录 day17121、Python 操作 MySQL 基础使用pymysql创建到 MySQL 的数据库链接执行 SQL 语句执行非查询性质的SQL语句执行查询性质的SQL语句 122、Pyth…

Python爬虫实战之爬取京东商品数据

在数字化时代&#xff0c;数据如同黄金般珍贵&#xff0c;而电商数据&#xff0c;尤其是像京东这样的大型电商平台上的信息&#xff0c;更是商家、市场分析师和数据科学家眼中的瑰宝。本文将带您走进Python爬虫的世界&#xff0c;探索如何高效、合法地采集京东商品数据&#xf…

c# 容器笔记2 查找 DataGrid中的行向上移动

struct info{ int A;int B;};c# 从 List中查找A与5相等的对象 在C#中&#xff0c;如果你有一个List&#xff08;其中info是一个结构体&#xff0c;类似于你给出的C语言结构体定义&#xff09;&#xff0c;并且你想从这个列表中查找所有A属性等于5的info对象&#xff0c;你可以…

幻兽帕鲁Palworld樱花版本服务器一键开服联机

1、登录服务器&#xff08;百度莱卡云&#xff09; 1.1、第一次购买服务器会安装游戏端&#xff0c;大约5分钟左右&#xff0c;如果长时间处于安装状态请联系客服 2、在启动中调整游戏参数 2.1、重启服务器&#xff0c;等待running出现&#xff0c;或者运行时间变为灰色&#x…

Linux0.12内核源码解读(5)-head.s

大家好&#xff0c;我是呼噜噜&#xff0c;好久没有更新old linux了&#xff0c;本文接着上一篇文章图解CPU的实模式与保护模式&#xff0c;继续向着操作系统内核的世界前进&#xff0c;一起来看看heads.s as86 与GNU as 首先我们得了解一个事实&#xff0c;在Linux0.12内核源…

2024年6月27日 (周四) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键&#xff0c;实现一键唤起、一键隐藏的 Windows 工具&#xff0c;并且支持窗口动态绑定快捷键&#xff08;无需设置自动实现&#xff09;。 喜马拉雅下载工具: 字面意思 Steam国产“类8番”游戏《永恒逃脱&#xff1a;暗影城堡》…

单片机串口uart学习

参考文章 https://blog.csdn.net/Reed_redd/article/details/126098506 https://blog.csdn.net/AriesPIG/article/details/119840979 前言 OK&#xff0c;又是新一期的温故而知新&#xff01;串口UART想必大家都用过&#xff0c;我记得我最早的时候用它来打印单片机的调试数…

【JD-GUI】MacOS 中使用Java反编译工具JD-GUI

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明概念理解一、基础环境说明1.1 硬件环境1.2 软件环境 二、下载与安装2.1 选择对应版本2.2 解压运行排除异常&#xff1a;2.3 关于…

16进制数按位修改

16进制数需要按位修改,特别是在修改寄存器的时候 16进制数转换为2进制 #16进制数转换为2进制 def hex_to_binary(hex_value):return bin((hex_value))二进制数转换为列表 def bin_to_array(bin_str):integer = int(bin_str, 2)array

GuiLite C语言实现版本

简介 本项目是idea4good/GuiLite的C语言实现版本&#xff0c;基于2024-06-20节点的版本&#xff08;提交ID&#xff1a;e9c4b57&#xff09;。 本项目仓库&#xff1a;GuiLite_C 需求说明 作为芯片从业人员&#xff0c;国产芯片普遍资源有限&#xff08;ROM和RAM比较少-都是…

[Vulnhub] wallabysnightmare LFI+RCE+Irssi聊天服务RCE

信息收集 Server IP AddressOpening Ports192.168.8.105TCP:22,80,6667,60080 $ nmap -p- -sC -sV 192.168.8.105 --min-rate 1000 -Pn 基础Shell http://192.168.8.105/?page../../../../../etc/shadow 当再次尝试访问已经关闭 $ nmap -p- -sC -sV 192.168.8.105 --min-rat…

c++实现web服务器数据收发

利用微软标准API实现web服务器数据的发送和接受,遇到的问题点: 1.句柄创建 CString strMsg; int iError 0; HINTERNET hint; HINTERNET hftp; HINTERNET hconnect; HINTERNET Openhconnect; hint InternetOpen(0, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY/INTERNET_O…

7、广告-用户识别与ID映射

一、用户识别原理 程序化广告生态系统是以数据为核心的生态系统&#xff0c;要实现精准的受众定向&#xff0c;首先需要进行单用户的识别。在PC端&#xff0c;常用Cookie作为用户标识&#xff0c;为用户打上标签的技术被称为“种Cookie”。 Cookie的作用与局限性 生命周期短&a…

ms17-010 ms12-020 ms-08-067

MS17-010是一个由微软发布的安全公告编号&#xff0c;它指代了一个严重级别的安全漏洞&#xff0c;该漏洞存在于Microsoft Windows的Server Message Block 1.0 (SMBv1)协议处理中。这个漏洞被命名为“永恒之蓝”&#xff08;EternalBlue&#xff09;&#xff0c;因为它最初是由…

安装samba服务

说明: 1、根据业务场景需要,要求将linux生成的图片文件,共享到windows服务器。 2、研发从共享文件夹中读取图片并且在应用web页面展示。 3、故要求安装搭建samba服务器,然后将共享文件夹挂载到windows服务器指定路径。 一、安装samba服务 1、安装samba服务 说明:请在linu…

java web中解决浏览器下载后文件中文乱码问题

解决Java Web应用中浏览器下载文件时中文乱码的问题&#xff0c;通常需要在HTTP响应头中正确设置Content-Disposition字段&#xff0c;以指示浏览器如何处理文件名中的非ASCII字符。 以下是一个通用的方法&#xff0c;适用于包括IE、Chrome、Firefox、Safari在内的多种浏览器&…

【PTA】7-1 网红点打卡攻略(C/C++)代码实现 反思

解题细节分析&#xff1a; 0.比较图的两种存储方法&#xff0c;通过邻接矩阵存储更便于查找给定两点之间的关系 1.注意理解清楚题义&#xff1a;“访问所有网红点”中所有不是指攻略中所有&#xff0c;而是存在的全部的网红点 代码见下&#xff1a;// 需要注明的是&#xff…