Unity:保持来自同一函数的多个字符串的引用

时间:2017-05-18 21:43:39

标签: c# unity3d logic

我有4个输入字段,在每个字段中我需要输入一个名字。名称1,名称2,名称3,名称4.我的问题是我有一个类来获取输入字段中的文本,而其他类是我的经理,它处理发送通过网络从字段获取的数据。我的问题是我无法弄清楚如何存储我的所有字段。我现在在控制台中获得的是名称1 = 2,名称2 = 2。它必须是名称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脚本附加到每个输入字段。

1 个答案:

答案 0 :(得分:1)

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

你赢得的整个字符串工作是因为当string的值发生变化时,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); } } 本身,它始终会输入新的值。

{{1}}

如果您需要注册活动,请参阅this发布。