当前位置: 首页 > news >正文

字符串数组——传递文本的不同方法实例

一、实例化一个文本并在文本上直接显示接收的信息
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)&#xff0c;TitleText (2) 给Text (TMP)添加Recipients.cs组件 using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine;public class Recipi…...

JDBC简介

JDBC最基本的知识点要求理解并会使用下边的两个案例即可&#xff1a; 前言&#xff1a; Jdbc操作步骤简析&#xff1a; 1.Connection connDriverManager.getConnection(url,账号&#xff0c;密码)&#xff1a;用DriverManager类的连接方法根据url账号密码连接数据库&#xf…...

RK3568平台(触摸篇)触摸屏基本原理

一.触摸屏概述 触摸屏作为一种新的输入设备&#xff0c;它是目前最简单、方便、自然的一种人机交互方式。 触摸屏又称为“触控屏”、“触控面板”&#xff0c;是一种可接收触头等输入讯号的感应式液晶显示装置&#xff1b;当接触了屏幕上的图形按钮时&#xff0c;屏幕上的触觉…...

【太原理工大学】软件系统安全—分析题

OK了&#xff0c;又是毫无准备的一场仗&#xff0c;我真是ありがとうございます 凸^o^凸 根据前几年传下来的信息&#xff0c;所谓“分析”&#xff0c;就是让你根据情节自行设计&#xff0c;例如如何设计表单等&#xff0c;这类多从实验中出&#xff0c;王老师强调好好做实验一…...

【仪器仪表/电源专题】浮地信号的测试的四种方案对比

接地信号和浮地信号区别 所有的电压测量都是差分测量&#xff0c;差分测量定义为两点之间的电压差。所以会分成两类&#xff1a; 1.参考地电平测量&#xff08;有时也叫接地信号&#xff09; 2.非参考地电平测量&#xff08;也称为浮地测量&#xff09; 测试信号可以分为接地信…...

Centos7安装jdk8或11以及切换方案

目录 jdk安装 安装OpenJDK11 安装OpenJDK8 配置默认的 Java 版本 验证 全局环境变量&#xff08;选配&#xff09; 个人版&#xff08;自己可以用&#xff0c;公司不建议&#xff09; 公司版本 /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程序运行后&#xff0c;要在窗体消息框中显示"Hello World."…...

海外仓系统如何让海外仓受益,WMS海外仓系统使用指南

随着跨境电商业务的快速发展&#xff0c;海外仓面临着需要更加高速运转的巨大挑战。 当海外仓出现因为手动作业导致效率低下&#xff0c;成本不断飙升或者出现库存管理问题的时候&#xff0c;意味着是时候引入一套合适的海外仓管理系统了。 对于寻求海外仓业务流程优化的企业…...

贪心-区间问题

135. 分发糖果 问题描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#x…...

算法分析与设计期末考试复习GDPU

重点内容&#xff1a; 绪论&#xff1a; 简单的递推方程求解 1.19(1)(2) 、 教材例题 多个函数按照阶的大小排序 1.18 分治法&#xff1a; 分治法解决芯片测试问题 计算a^n的复杂度为logn的算法&#xff08;快速幂&#xff09; 分治法解决平面最近点对问…...

分批次训练和评估神经网络模型

【背景】 训练神经网络模型的时候&#xff0c;特征组合太多&#xff0c;电脑的资源会不足&#xff0c;所以采用分批逐步进行。已经处理过的批次保存下来&#xff0c;在下一次跳过&#xff0c;只做新加入的批次训练。 选择最优模型组合在中间结果的范围内选择&#xff0c;这样…...

【CS.AL】算法核心之分治算法:从入门到进阶

文章目录 1. 概述2. 适用场景3. 设计步骤4. 优缺点5. 典型应用6. 题目和代码示例6.1 简单题目&#xff1a;归并排序6.2 中等题目&#xff1a;最近点对问题6.3 困难题目&#xff1a;分数背包问题 7. 题目和思路表格8. 总结References 1000.01.CS.AL.1.4-核心-DivedeToConquerAlg…...

leetcode刷题记录:hot100强化训练2:二叉树+图论

二叉树 36. 二叉树的中序遍历 递归就不写了&#xff0c;写一下迭代法 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(总览)

前面的实验和作业反正已经结束了&#xff0c;现在就是集中火力把剩下的内容复习一遍&#xff0c;这一篇博客的内容主要是参考教学大纲和教学日历 文章目录 教学日历教学大纲 教学日历 总共 12 次课&#xff0c;第一次课是概述&#xff0c;第二次和第三次课是密码学基础&#x…...

C语言:头歌使用函数找出数组中的最大值

任务描述 本关任务&#xff1a;本题要求实现一个找出整型数组中最大值的函数。 函数接口定义&#xff1a; int FindArrayMax( int a[], int n ); 其中a是用户传入的数组&#xff0c;n是数组a中元素的个数。函数返回数组a中的最大值。 主程序样例: #include <stdio.h>#…...

【技巧】Leetcode 191. 位1的个数【简单】

位1的个数 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中 设置位 的个数&#xff08;也被称为汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 11 输出&#xff1a;3 解释&#x…...

【Pandas驯化-02】pd.read_csv读取中文出现error解决方法

【Pandas】驯化-02pd.read_csv读取中文出现error解决方法 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公众号 &…...

linux下C语言如何操作文件(三)

我们继续介绍file_util.c中的函数: bool create_dir(const char* path):创建目录,根据给定的path创建目录,成功返回true,否则返回false。如果有父目录不存在,该函数不会创建。 /*** 创建目录* @param path 目录路径* @return true 创建成功,false 创建失败*/ bool cre…...

6.14作业

使用手动连接&#xff0c;将登录框中的取消按钮使用第二中连接方式&#xff0c;右击转到槽&#xff0c;在该槽函数中&#xff0c;调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0…...

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 常用的数据类…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...