void Update()
    {
        var selectedField = EventSystem.current.currentSelectedGameObject?.GetComponent <InputField>();

        if (selectedField != null && selectedField.GetInstanceID() != ID)
        {
            currentInputField = selectedField;

            Keyboard.SetActive(true);
            externTextField.ClearExterTextField();
            ID = currentInputField.GetInstanceID();
            gameObject.transform.position    = EventSystem.current.currentSelectedGameObject.transform.position;
            Keyboard.transform.localPosition = new Vector3(0, ((transform as RectTransform).sizeDelta.y + (Keyboard.transform as RectTransform).sizeDelta.y) / -2, 0)
                                               + KeyboardPositionOffset;
        }
    }
예제 #2
0
 // ...
 public void OnGUI()
 {
      inputField = (InputField)EditorGUILayout.ObjectField("Input Field", inputField, typeof(InputField), true);
      // if inputField has nothing currently assigned
      if (inputField == null)
      {
           // make sure we have and int stored
           if (ToolReferences.inputFieldId != 0)
           {
                inputField = (InputField)EditorUtility.InstanceIDToObject(ToolReferences.inputFieldId);
           }
           else // ... prompt the user to assign one
      }
      // if we have an InputField assigned, store ID to int
      else if (inputField != null) ToolReferences.inputFieldId = inputField.GetInstanceID();
      }