【问题标题】: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 语句来检查文本元素中是否有任何字母我如何通过文本来获取文本中是否包含任何字符串

【问题讨论】:

  • 查看重复链接...您真的想使用数组!

标签: c# unity3d


【解决方案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
  • 高分,谢谢!
猜你喜欢
  • 2015-07-28
  • 2017-04-14
  • 2018-05-17
  • 2016-11-02
  • 2012-08-17
  • 2020-02-24
  • 2017-12-19
  • 2019-06-26
相关资源
最近更新 更多