目前,我的代码与一个InputField(压力)正常工作,但我现在尝试设置第二个InputField来显示钻杆输入。如何在我当前的脚本中添加另一个输入字段(例如钻杆)?
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
}
}
}
答案 0 :(得分:0)
使用Expression<Func<...>>
查找多个Component
相同类型的确存在问题。我建议每GetComponent<T>
创建一个GameObject,将其作为GameObject的子项,保留InputField
。
然后您只需要创建两个与您的UserInput
对应的公共字段,即:
InputField
并从检查员处分配。只需拖动GameObject按住每个public InputField field1;
public InputField field2;
//Do something with them
void Start()
{
DoStuff(field1);
DoStuff(field2);
}
并将其放在检查器内的变量上。这样,您就可以确切地知道您正在使用哪个InputField
。您还可以从中制作预制件,以便从代码中重复使用和实例化。