在Unity 5中设置Multi InputField

时间:2016-01-11 20:08:15

标签: c# input unity3d user-input

目前,我的代码与一个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
            }
        }
   }

1 个答案:

答案 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。您还可以从中制作预制件,以便从代码中重复使用和实例化。