Beispiel #1
0
        public static GameObject CreateInputField(Resources resources)
        {
            GameObject root = CreateUIElementRoot("IMC InputField", s_ThickElementSize);

            GameObject childPlaceholder = CreateUIObject("Placeholder", root);
            GameObject childText        = CreateUIObject("Text", root);

            IMCImage image = root.AddComponent <IMCImage>();

            image.sprite = resources.inputField;
            image.type   = IMCImage.Type.Sliced;
            image.color  = s_DefaultSelectableColor;

            IMCInputField inputField = root.AddComponent <IMCInputField>();

            SetDefaultColorTransitionValues(inputField);

            IMCText text = childText.AddComponent <IMCText>();

            text.text            = "";
            text.supportRichText = false;
            SetDefaultTextValues(text);

            IMCText placeholder = childPlaceholder.AddComponent <IMCText>();

            placeholder.text      = "Enter text...";
            placeholder.fontStyle = FontStyle.Italic;
            // Make placeholder color half as opaque as normal text color.
            Color placeholderColor = text.color;

            placeholderColor.a *= 0.5f;
            placeholder.color   = placeholderColor;

            RectTransform textRectTransform = childText.GetComponent <RectTransform>();

            textRectTransform.anchorMin = Vector2.zero;
            textRectTransform.anchorMax = Vector2.one;
            textRectTransform.sizeDelta = Vector2.zero;
            textRectTransform.offsetMin = new Vector2(10, 6);
            textRectTransform.offsetMax = new Vector2(-10, -7);

            RectTransform placeholderRectTransform = childPlaceholder.GetComponent <RectTransform>();

            placeholderRectTransform.anchorMin = Vector2.zero;
            placeholderRectTransform.anchorMax = Vector2.one;
            placeholderRectTransform.sizeDelta = Vector2.zero;
            placeholderRectTransform.offsetMin = new Vector2(10, 6);
            placeholderRectTransform.offsetMax = new Vector2(-10, -7);

            inputField.textComponent = text;
            inputField.placeholder   = placeholder;

            return(root);
        }
Beispiel #2
0
        public override void OnInspectorGUI()
        {
            IMCInputField inputField = (IMCInputField)target;

            //EditorGUI.BeginDisabledGroup(true);
            //inputField.ControlType = (ControlType)EditorGUILayout.EnumPopup("ControlType", inputField.ControlType);
            //inputField.ContainerType = (ContainerType)EditorGUILayout.EnumPopup("ContainerType", inputField.ContainerType);
            //EditorGUI.EndDisabledGroup();
            inputField.customID = EditorGUILayout.TextField("CustomID", inputField.customID);

            serializedObject.Update();

            base.OnInspectorGUI();

            EditorGUILayout.Space();

            EditorGUILayout.PropertyField(m_TextComponent);

            if (m_TextComponent != null && m_TextComponent.objectReferenceValue != null)
            {
                IMCText text = m_TextComponent.objectReferenceValue as IMCText;
                if (text.supportRichText)
                {
                    EditorGUILayout.HelpBox("Using Rich Text with input is unsupported.", MessageType.Warning);
                }
            }

            EditorGUI.BeginDisabledGroup(m_TextComponent == null || m_TextComponent.objectReferenceValue == null);

            EditorGUILayout.PropertyField(m_Text);
            EditorGUILayout.PropertyField(m_CharacterLimit);

            EditorGUILayout.Space();

            EditorGUILayout.PropertyField(m_ContentType);
            if (!m_ContentType.hasMultipleDifferentValues)
            {
                EditorGUI.indentLevel++;

                if (m_ContentType.enumValueIndex == (int)IMCInputField.ContentType.Standard ||
                    m_ContentType.enumValueIndex == (int)IMCInputField.ContentType.Autocorrected ||
                    m_ContentType.enumValueIndex == (int)IMCInputField.ContentType.Custom)
                {
                    EditorGUILayout.PropertyField(m_LineType);
                }

                if (m_ContentType.enumValueIndex == (int)IMCInputField.ContentType.Custom)
                {
                    EditorGUILayout.PropertyField(m_InputType);
                    EditorGUILayout.PropertyField(m_KeyboardType);
                    EditorGUILayout.PropertyField(m_CharacterValidation);
                }

                EditorGUI.indentLevel--;
            }

            EditorGUILayout.Space();

            EditorGUILayout.PropertyField(m_Placeholder);
            EditorGUILayout.PropertyField(m_CaretBlinkRate);
            EditorGUILayout.PropertyField(m_CaretWidth);

            EditorGUILayout.PropertyField(m_CustomCaretColor);

            m_CustomColor.target = m_CustomCaretColor.boolValue;

            if (EditorGUILayout.BeginFadeGroup(m_CustomColor.faded))
            {
                EditorGUILayout.PropertyField(m_CaretColor);
            }
            EditorGUILayout.EndFadeGroup();

            EditorGUILayout.PropertyField(m_SelectionColor);
            EditorGUILayout.PropertyField(m_HideMobileInput);
            EditorGUILayout.PropertyField(m_ReadOnly);

            EditorGUILayout.Space();

            EditorGUILayout.PropertyField(m_OnValueChanged);
            EditorGUILayout.PropertyField(m_OnEndEdit);

            EditorGUI.EndDisabledGroup();

            serializedObject.ApplyModifiedProperties();
        }