目前,我的代码使用一个InputField(压力)可以正常工作,但我现在正试图设置第二个InputField来显示钻杆输入。如何将另一个输入字段(例如drillpipe)添加到当前脚本中?
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class UserInput : MonoBehaviour {
InputField input;
int intPressure = 0;
int drillpipe = 0;
public DataManager data;
void Start ()
{
var input = gameObject.GetComponent<InputField>();
var se= new InputField.SubmitEvent();
se.AddListener(SubmitName);
input.onEndEdit = se;
}
private void SubmitName(string pressure)
{
var pressureScript = GameObject.FindObjectOfType(typeof(DataManager)) as DataManager;
if(int.TryParse(pressure, out intPressure))
{
pressureScript.pressure = intPressure;
}
else
{
// Parse fail, show an error or something
}
}
}
要找出多个与GetComponent<T>
类型相同的Component
,确实会遇到问题。我建议按照InputField
创建GameObject,将其作为持有UserInput
的GameObject的子对象。
然后,您只需要创建两个与InputField
相对应的公共字段,即:
public InputField field1;
public InputField field2;
//Do something with them
void Start()
{
DoStuff(field1);
DoStuff(field2);
}
并从检查员那里分配。只需拖动持有每个InputField
的GameObject,并将其放在检查器内的变量上。这样你就可以确切地知道你在使用哪个InputField
。您还可以从中制作一个预制件,以实现代码的可重用性和实例化。