Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity:保持对同一函数中多个字符串的引用_C#_Unity3d_Logic - Fatal编程技术网

C# Unity:保持对同一函数中多个字符串的引用

C# Unity:保持对同一函数中多个字符串的引用,c#,unity3d,logic,C#,Unity3d,Logic,我有4个输入字段,在每个字段中我需要输入一个名称。名字1,名字2,名字3,名字4。我的问题是,我有一个类来获取inputfield中的文本,另一个类是我的管理器,负责通过网络发送我从字段中获取的数据。我的问题是,我不知道如何存储所有字段。我现在在控制台中得到的是Name 1=two,Name 2=two。它必须是名称1=1,名称2=2 public string name1; public string name2; public string name3; public string name

我有4个输入字段,在每个字段中我需要输入一个名称。名字1,名字2,名字3,名字4。我的问题是,我有一个类来获取inputfield中的文本,另一个类是我的管理器,负责通过网络发送我从字段中获取的数据。我的问题是,我不知道如何存储所有字段。我现在在控制台中得到的是Name 1=two,Name 2=two。它必须是名称1=1,名称2=2

public string name1;
public string name2;
public string name3;
public string name4;


public InputField input;

// Use this for initialization
void Start () {

}

// Called in Inputfield OnEndEdit Event.
public void OnEndEdit()
{
    name1 = input.text;
    name2 = input.text;
    name3 = input.text;
    name4 = input.text;
}
这是我的另一个脚本我的经理:

    private InputFields inputFields;
    void Start () {

    inputFields = FindObjectOfType<InputFields>();

}
public void GetUserData ()
{
  Debug.Log ("Message 1 " + inputFields.name1 + "Message 2 " + inputFields.name2  + " Message 3 " + "Message 4" ); 
        }
}

总而言之,我有4个UI输入字段,我只想从中获取文本并将它们存储在字符串中。inputFields脚本附加到每个inputfield。

使用数组。创建InputField数组,然后您可以从索引为0到3的其他脚本访问它

您拥有的整个字符串都不起作用,因为当InputField的值更改时,字符串不会更新新值。这就是您必须引用InputField本身的原因,InputField本身将始终包含用户输入的新值

public class ScriptB : MonoBehaviour
{
    public InputField[] input;

    public void GetUserData()
    {
        Debug.Log("Message 1: " + input[0].text + "Message 2: " + input[1].text
            + " Message 3: " + input[2].text + "Message 4: " + input[3].text);
    }
}

如果您需要注册事件,请参阅帖子。

I…不明白。您只声明了一个InputField输入-如果您想从四个不同的输入字段中获取值,您不想为每个字段声明一个公共变量吗?脚本附加到每个InputField,它是公共的,因此我删除了所需的InputField。例如,脚本附加到inputfield 1,并且脚本接收inputfield组件。因此,我给它输入字段1。其他人也一样。哦,好的。那么,您是否要在每个输入字段中输入一个由4个名称组成的逗号分隔的列表?什么是逗号分隔的..?啊,项目之间用逗号分隔。为什么要使用ScriptA中的数组。。我不明白为什么需要它。我已经有了,但有复制品。我不想复制。是的。但我还是不明白scriptA需要什么。我可以在ScriptB中创建它。我想要的是一个函数或简化代码至少没有重复项来存储我将从数据字段中获得的4个字符串,以便我可以发送这些字符串。是的,这就是我所做的。谢谢