如何统一检查文本元素[重复]
Posted
技术标签:
【中文标题】如何统一检查文本元素[重复]【英文标题】:How to Check text element in unity [duplicate] 【发布时间】:2022-01-17 23:49:21 【问题描述】:我有一个统一的简单场景,我有一个带输入字段的画布,我的代码很简单
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TextRecstriction : MonoBehaviour
public Text text;
public string a = "a";
public string b = "a";
public string c = "a";
public string d = "a";
public string e = "a";
public string f = "a";
public string g = "a";
public string h = "a";
public string i = "a";
public string j = "a";
public string k = "a";
public string l = "a";
public string m = "a";
public string n = "a";
public string o = "a";
public string p = "a";
public string q = "a";
public string r = "a";
public string s = "a";
public string t = "a";
public string u = "a";
public string v = "a";
public string w = "a";
public string x = "a";
public string y = "a";
public string z = "a";
// Update is called once per frame
void Update()
我想添加 if 语句来检查文本元素中是否有任何字母我如何通过文本来获取文本中是否包含任何字符串
【问题讨论】:
查看重复链接...您真的想使用数组! 【参考方案1】:如果你使用 .Contains() 方法,它会返回一个布尔值,判断字符串是否包含给定的字母。
string textOnCanvas
void update()
if(textOnCanvas.Contains('a'))
//whatever you want to happen if it does contain the letter
此外,您可以创建一个包含所有字母的数组[],并使用 for/foreach 循环检查每个字母。
public string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz"
char[] alphabetArray = alphabet.ToCharArray();
foreach(char character in alphabet)
if(textOnCanvas.Contains(character)
//whatever you want to happen if it does contain the letter
//if you want the test to stop once a match has been found, you can add:
break;//To take you out of the loop
【讨论】:
即使它是重复的(请参阅问题上的链接),这个答案仍然为 Unity 带来了特定于字母表 +ToCharArray
的价值,这使得它非常方便和可扩展.. 我仍然会而是使用 string
作为公共字段,因为它在 Unity Inspector 中比 char[]
更容易维护;)
另请注意,目前您可能还有多个匹配项 .. 公平地说,OP 没有定义在这种情况下会发生什么,但您可能希望在第一次匹配后break
高分,谢谢!以上是关于如何统一检查文本元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章