字符串数组——传递文本的不同方法实例
一、实例化一个文本并在文本上直接显示接收的信息
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 常用的数据类…...
EDK II代码格式化集成指南:IDE集成步骤详解
EDK II代码格式化集成指南:IDE集成步骤详解 【免费下载链接】edk2 EDK II 项目地址: https://gitcode.com/gh_mirrors/ed/edk2 EDK II作为现代UEFI固件开发的核心框架,其代码质量直接影响到固件的稳定性和安全性。本文将详细介绍如何将EDK II代码…...
TAICHI-flet终极排障指南:从新手到高手的完整解决方案
TAICHI-flet终极排障指南:从新手到高手的完整解决方案 【免费下载链接】TAICHI-flet 基于flet的一款windows桌面应用,实现了浏览图片、音乐、小说、漫画、各种资源的功能。 项目地址: https://gitcode.com/GitHub_Trending/ta/TAICHI-flet TAICHI…...
嵌入式C语言变量初始化技术详解
## 1. 嵌入式C语言变量初始化技术详解### 1.1 初始化的重要性与基本原则在嵌入式系统开发中,变量初始化是防止未定义行为的关键步骤。由于嵌入式编译器特性的差异,未初始化的变量可能包含随机值,导致系统出现不可预测的行为。根据变量类型的不…...
BiliRoamingX集成开发:Android 14兼容性优化与高级模块注入技术解析
BiliRoamingX集成开发:Android 14兼容性优化与高级模块注入技术解析 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations powered by revanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations BiliRoamingX作为…...
快速上手Qwen3-TTS:无需代码,Web界面直接合成10种语言语音
快速上手Qwen3-TTS:无需代码,Web界面直接合成10种语言语音 1. 为什么选择Qwen3-TTS语音合成 语音合成技术正在改变我们与数字世界的交互方式。想象一下,你正在制作一个多语言教学视频,或者开发一个国际化的智能客服系统…...
PX4飞控系统深度解析:从模块化架构到自主飞行核心技术揭秘
PX4飞控系统深度解析:从模块化架构到自主飞行核心技术揭秘 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 你是否曾好奇,一个开源飞控系统如何支撑从微型无人机到工业级无人…...
HunyuanVideo-Foley应用场景:播客自动化剪辑、TTS语音情感增强音效
HunyuanVideo-Foley应用场景:播客自动化剪辑与TTS语音情感增强音效 1. 镜像概述与核心能力 HunyuanVideo-Foley私有部署镜像是一款专为音视频生成任务优化的AI工具包,特别针对RTX 4090D 24GB显存显卡进行了深度优化。这个开箱即用的解决方案将视频生成…...
京东云GPU服务器省钱攻略:如何根据业务需求灵活选择计费模式和虚拟化方案
京东云GPU服务器成本优化实战指南:精准匹配业务需求的选型策略 在AI与高性能计算领域,GPU服务器已成为企业技术基础设施的核心组件。然而,面对复杂的计费模式、多样的硬件配置以及差异化的虚拟化方案,许多技术决策者常常陷入"…...
Ubuntu 20.04 LTS下FinalShell安装全攻略(附一键脚本及常见问题解决)
Ubuntu 20.04 LTS下FinalShell终极配置指南:从安装到高阶应用 为什么开发者需要FinalShell? 作为一名长期使用Ubuntu进行远程服务器管理的开发者,我深知一款优秀的SSH工具对工作效率的影响。FinalShell作为跨平台的国产SSH工具,…...
美胸-年美-造相Z-Turbo真实案例:快速生成24套手游服装方案
美胸-年美-造相Z-Turbo真实案例:快速生成24套手游服装方案 1. 项目背景与挑战 在手游《幻境物语》的角色设计阶段,美术团队面临一个紧迫需求:为游戏中的"花语使者"职业设计24套不同风格的服装方案。传统手工绘制方案需要至少3周时…...
