字符串数组——传递文本的不同方法实例
一、实例化一个文本并在文本上直接显示接收的信息
1、制作一个预制体
(1) UI-Text (TMP),TitleText
(2) 给Text (TMP)添加Recipients.cs组件
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class Recipients : MonoBehaviour
{public TextMeshProUGUI TitleText;//在Unity赋值//接收文本数据public void initData(string titleText){//在TitleText.text文本中显示接收到的文本内容TitleText.text = titleText;}
}
(3) 将UI-Text (TMP)制成预制体,并从Hierarchy中删除该预制体
2、给Canvas添加Sender.cs组件
(1) Sender.cs
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Experimental.GraphView;
using UnityEngine;public class Sender : MonoBehaviour
{public Recipients titleText;// Start is called before the first frame updatevoid Start(){CreateTitleText();}public void CreateTitleText(){Recipients t = Instantiate(titleText, this.transform);//调用Recipients.cs实例上的initData方法,并传递一个字符串参数t.initData("传递方直接传递文本"); }
}
(2) 赋值
二、用不同的方法传递文本
1、通过字符串:
(1) 声明一个字符串
string strs; //string:类型; strs:变量名
(2) 传递
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Sender : MonoBehaviour
{public Recipients titleText;//接收方的接收文本void Start(){string str = "直接传输";CreateTitleText(str);}public void CreateTitleText(string transmission)//transmission是自取的名字{Recipients t = titleText;t.initData(transmission); }
}
(3) 接收
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class Recipients : MonoBehaviour
{public TextMeshProUGUI TitleText;//在Unity中赋值一个文本(用于接收文本信息)public void initData(string titleText)//接收的文本命名为titleText{TitleText.text = titleText;//在TitleText.text文本中显示接收到的文本内容}
}
注意:两个脚本中都要在Unity给文本赋值
2、声明一个字符串组
string[] strs = new string[3]; //声明一个字符串数组,且初始化它的长度为3
(1) string:类型; []:数组; strs:变量名
(2) 数组需要初始化之后 才能使用。
(3) 初始化的方法:类型+[] + 变量名 = new string[3];
(4) 调用字符串的数据的实例
发送方:
public Nodes node;void Start(){string[] strs = new string[3]; //声明一个包含三个字符串元素的数组//string:类型; []:数组; strs:变量名strs[0] = "strs这个数组中的第一个数据序号为0";//将数组的第一个元素(索引为0)设置为指定的字符串内容CreateNode(strs[0]);//调用方法,传递整个字符串数组}public void CreateNode(string strs){Nodes n = Instantiate(node, this.transform);//创建一个node预制体的实例,并将这个实例赋值给变量nthis.transform:新实例将作为当前对象(脚本所挂载的物体)的子对象//调用Nodes.cs实例上的initData方法,并传递一个字符串参数n.initData(strs); //n:node预制体实例;//n.initData();:调用预制体本身携带的公开的方法(在Nodes脚本中创建的方法)//括号内要写类型与接收方要求的相同的数据}
接收方:
public class Nodes : MonoBehaviourpublic TextMeshProUGUI nodeTitle;public void initData(string titleText)//初始化节点的数据(类型是String;名字是titleText)//把接收到的文本命名为titleText//初始化节点的数据,接收一个字符串类型的参数titleText作为标题文本{//使用接收到的文本titleText更新nodeTitle文本组件的内容nodeTitle.text = titleText;//将nodeTitle文本组件的内容设置为接收到的titleText(在nodeTitle.text文本中显示接收到的文本内容)}
(5) 优化后的方法
public GameObject nodePrefab; // 在Unity编辑器中设置的预制体// Start is called before the first frame updatevoid Start(){string[] strs = new string[3]; // 声明一个包含三个字符串元素的数组strs[0] = "strs这个数组中的第一个数据序号为0"; // 设置数组的第一个元素// ... 可以设置strs[1]和strs[2]CreateNode(strs); // 调用方法,传递整个字符串数组}
public void CreateNode(string[] strs) // 字符串数组{GameObject newNode = Instantiate(nodePrefab, this.transform); // 创建预制体的实例Nodes n = newNode.GetComponent<Nodes>(); // 获取Nodes组件if (n != null) // 检查是否成功获取到了组件{n.initData(strs); // initData方法接受一个字符串数组作为参数}else{Debug.LogError("No Nodes component found on the instantiated prefab!");}}
3、利用List传递文本
(1) 声明并 初始化变量
List<string> strs_02 = new List<string>();//声明并初始化一个名为strs_02,类型为List<string> 的变量
(2) 调用变量:
类型一:调用数组中的变量
strs_02.Add(strs[0]);
strs_02:变量名
Add:调用
(strs[0]):strs数组中的索引号为0的值
类型2:直接调用字符串
strs_02.Add("strs[0]");
strs_02:变量名
Add:调用
("strs[0]"):输出的是双引号内的文字
// 将strs数组的第一个元素添加到strs_02列表中strs_02.Add(strs[0]);//第一个Add,后面跟的就是strs_02中的序号为0的数据。在这里调用的是strs数组中序号为0的字符串// 添加字符串"strs[0]"到strs_02列表中,而不是数组strs的某个元素strs_02.Add("strs[0]");//注意:这里添加的是字面上的字符串"strs[0]",而不是strs数组中的某个值
(3) 实例:
繁琐但超小白注释:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Test : MonoBehaviour
{public Nodes node;// Start is called before the first frame updatevoid Start(){string[] strs = new string[3]; //声明一个字符串数组,并分配了3个元素的空间//string:类型; []:数组; strs:变量名//数组需要初始化之后 才能使用。初始化的方法:……= new string[3];//这一步已经完成了初始化//将数组的第一个元素(索引为0)设置为指定的字符串内容strs[0] = "strs这个数组中的第一个数据序号为0";//给数组的第一个位置(索引0)赋值strs[1] = "测试序号1";strs[2] = "测试序号2";// 声明并初始化一个空的List<string>类型的变量,名字为strs_02List<string> strs_02 = new List<string>();// 将strs数组的第一个元素添加到strs_02列表中strs_02.Add(strs[0]);//第一个Add,后面跟的就是strs_02中的序号为0的数据。在这里调用的是strs数组中序号为0的字符串// 添加字符串"strs[0]"到strs_02列表中,而不是数组strs的某个元素strs_02.Add("strs[0]");//注意:这里添加的是字面上的字符串"strs[0]",而不是strs数组中的某个值// 调用CreateNode方法,传递strs_02列表中的第一个元素作为参数CreateNode(strs_02[0]);//传递的是"strs这个数组中的第一个数据序号为0"这段文字// 调用CreateNode方法,传递strs_02列表中的第二个元素作为参数CreateNode(strs_02[1]);//传递的是strs_02中的序号为1的数据,即:"strs[0]"这段文字}public void CreateNode(string strs){Nodes n = Instantiate(node, this.transform);//创建一个node预制体的实例,并将这个实例赋值给变量n//node:要实例化的预制体;this.transform:新实例将作为当前对象(脚本所挂载的物体)的子对象//调用Nodes.cs实例上的initData方法,并传递一个字符串数组的参数n.initData(strs); //n:node预制体实例;//n.initData();:调用预制体本身携带的公开的方法(在Nodes脚本中创建的方法)//括号内要写类型与接收方要求的相同的数据}
}
普通小白注释
public Nodes nodePrefab;//Nodes.cs中的node预制体void Start(){string[] strs = new string[3]; // 声明并初始化字符串数组strs[0] = "strs这个数组中的第一个数据序号为0";//赋值strs[1] = "测试序号1";strs[2] = "测试序号2";List<string> strs_02 = new List<string>(); // 声明并初始化List<string>strs_02.Add(strs[0]); // 添加数组的第一个元素到列表strs_02.Add("strs[0]"); // 添加字符串"strs[0]"到列表// 调用CreateNode方法,传递strs_02列表中的元素作为参数CreateNode(strs_02[0]); // 传递列表中的第一个元素CreateNode(strs_02[1]); // 传递列表中的第二个元素}public void CreateNode(string data){Nodes n = Instantiate(nodePrefab, this.transform); // 实例化Nodes预制体n.initData(data); // 调用initData方法,传递数据给节点进行初始化}
直接上手试版本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Test : MonoBehaviour
{public Nodes node;void Start(){string[] strs = new string[3]; strs[0] = "输出的是数组中的文字";strs[1] = "测试序号1";strs[2] = "测试序号2";List<string> strs_02 = new List<string>();strs_02.Add(strs[0]);strs_02.Add("输出的是Add.后面括号里面双引号里面的文字");CreateNode(strs_02[0]);CreateNode(strs_02[1]);}public void CreateNode(string data){Nodes n = Instantiate(node, this.transform);n.initData(data); }
}
4、利用Dictionary传递文本
Dictionary<int,string> strs3= new Dictionary<int,string>();//声明并初始化字典,名字是strs3
Dictionary
作用:加了索引的列表。给每个数据都取了个名字,方法查找、修改、调用数据
解释:
Dictionary:字典
<int,string>:int——键的类型(整数) string:值的类型——字符串
添加数据:
strs3.Add(1001, "文本内容");
调用
TransferTitleText(strs3[1001]);
相关文章:
字符串数组——传递文本的不同方法实例
一、实例化一个文本并在文本上直接显示接收的信息 1、制作一个预制体 (1) UI-Text (TMP),TitleText (2) 给Text (TMP)添加Recipients.cs组件 using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine;public class Recipi…...
JDBC简介
JDBC最基本的知识点要求理解并会使用下边的两个案例即可: 前言: Jdbc操作步骤简析: 1.Connection connDriverManager.getConnection(url,账号,密码):用DriverManager类的连接方法根据url账号密码连接数据库…...
RK3568平台(触摸篇)触摸屏基本原理
一.触摸屏概述 触摸屏作为一种新的输入设备,它是目前最简单、方便、自然的一种人机交互方式。 触摸屏又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置;当接触了屏幕上的图形按钮时,屏幕上的触觉…...
【太原理工大学】软件系统安全—分析题
OK了,又是毫无准备的一场仗,我真是ありがとうございます 凸^o^凸 根据前几年传下来的信息,所谓“分析”,就是让你根据情节自行设计,例如如何设计表单等,这类多从实验中出,王老师强调好好做实验一…...
【仪器仪表/电源专题】浮地信号的测试的四种方案对比
接地信号和浮地信号区别 所有的电压测量都是差分测量,差分测量定义为两点之间的电压差。所以会分成两类: 1.参考地电平测量(有时也叫接地信号) 2.非参考地电平测量(也称为浮地测量) 测试信号可以分为接地信…...
Centos7安装jdk8或11以及切换方案
目录 jdk安装 安装OpenJDK11 安装OpenJDK8 配置默认的 Java 版本 验证 全局环境变量(选配) 个人版(自己可以用,公司不建议) 公司版本 /etc/profile 和 ~/.bash_profile 区别 前言-与正文无关 生活远不止眼前的苦…...
计算机二级Access选择题考点—代码篇
第1题 窗体的事件过程如下: Private Sub Form MouseDown(Button As Integer ,Shift As integer,X As Single,Y As Single)If Shift 6 And Button 2 Then MsgBox "Hello World."End lf End Sub程序运行后,要在窗体消息框中显示"Hello World."…...
海外仓系统如何让海外仓受益,WMS海外仓系统使用指南
随着跨境电商业务的快速发展,海外仓面临着需要更加高速运转的巨大挑战。 当海外仓出现因为手动作业导致效率低下,成本不断飙升或者出现库存管理问题的时候,意味着是时候引入一套合适的海外仓管理系统了。 对于寻求海外仓业务流程优化的企业…...
贪心-区间问题
135. 分发糖果 问题描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#x…...
算法分析与设计期末考试复习GDPU
重点内容: 绪论: 简单的递推方程求解 1.19(1)(2) 、 教材例题 多个函数按照阶的大小排序 1.18 分治法: 分治法解决芯片测试问题 计算a^n的复杂度为logn的算法(快速幂) 分治法解决平面最近点对问…...
分批次训练和评估神经网络模型
【背景】 训练神经网络模型的时候,特征组合太多,电脑的资源会不足,所以采用分批逐步进行。已经处理过的批次保存下来,在下一次跳过,只做新加入的批次训练。 选择最优模型组合在中间结果的范围内选择,这样…...
【CS.AL】算法核心之分治算法:从入门到进阶
文章目录 1. 概述2. 适用场景3. 设计步骤4. 优缺点5. 典型应用6. 题目和代码示例6.1 简单题目:归并排序6.2 中等题目:最近点对问题6.3 困难题目:分数背包问题 7. 题目和思路表格8. 总结References 1000.01.CS.AL.1.4-核心-DivedeToConquerAlg…...
leetcode刷题记录:hot100强化训练2:二叉树+图论
二叉树 36. 二叉树的中序遍历 递归就不写了,写一下迭代法 class Solution(object):def inorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""if not root:return res []cur rootstack []while cur or st…...
湘潭大学信息与网络安全复习笔记2(总览)
前面的实验和作业反正已经结束了,现在就是集中火力把剩下的内容复习一遍,这一篇博客的内容主要是参考教学大纲和教学日历 文章目录 教学日历教学大纲 教学日历 总共 12 次课,第一次课是概述,第二次和第三次课是密码学基础&#x…...
C语言:头歌使用函数找出数组中的最大值
任务描述 本关任务:本题要求实现一个找出整型数组中最大值的函数。 函数接口定义: int FindArrayMax( int a[], int n ); 其中a是用户传入的数组,n是数组a中元素的个数。函数返回数组a中的最大值。 主程序样例: #include <stdio.h>#…...
【技巧】Leetcode 191. 位1的个数【简单】
位1的个数 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。 示例 1: 输入:n 11 输出:3 解释&#x…...
【Pandas驯化-02】pd.read_csv读取中文出现error解决方法
【Pandas】驯化-02pd.read_csv读取中文出现error解决方法 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文档获取 微信公众号 &…...
linux下C语言如何操作文件(三)
我们继续介绍file_util.c中的函数: bool create_dir(const char* path):创建目录,根据给定的path创建目录,成功返回true,否则返回false。如果有父目录不存在,该函数不会创建。 /*** 创建目录* @param path 目录路径* @return true 创建成功,false 创建失败*/ bool cre…...
6.14作业
使用手动连接,将登录框中的取消按钮使用第二中连接方式,右击转到槽,在该槽函数中,调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"࿰…...
MySQL数据库管理(一)
目录 1.MySQL数据库管理 1.1 常用的数据类型编辑 1.2 char和varchar区别 2. 增删改查命令操作 2.1 查看数据库结构 2.2 SQL语言 2.3 创建及删除数据库和表 2.4 管理表中的数据记录 2.5 修改表名和表结构 3.MySQL的6大约束属性 1.MySQL数据库管理 1.1 常用的数据类…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
