Пример #1
0
        /// <summary>
        /// 対象が選択されたとき
        /// </summary>
        /// <param name="eventData"></param>
        public void OnSelect(/*BaseEventData eventData*/)
        {
            bool isPassword = input.contentType == ContentType.Password;

            id           = WebGLInputPlugin.WebGLInputCreate(input.fontSize, input.text, input.placeholder, input.lineType != LineType.SingleLine, isPassword, !showHtmlElement);
            PreviousRect = GetScreenCoordinates(input.RectTransform());
            SizeChanged();

            instances[id] = this;
            WebGLInputPlugin.WebGLInputEnterSubmit(id, input.lineType != LineType.MultiLineNewline);
            WebGLInputPlugin.WebGLInputOnFocus(id, OnFocus);
            WebGLInputPlugin.WebGLInputOnBlur(id, OnBlur);
            WebGLInputPlugin.WebGLInputOnValueChange(id, OnValueChange);
            WebGLInputPlugin.WebGLInputOnEditEnd(id, OnEditEnd);
            WebGLInputPlugin.WebGLInputTab(id, OnTab);
            // default value : https://www.w3schools.com/tags/att_input_maxlength.asp
            WebGLInputPlugin.WebGLInputMaxLength(id, (input.characterLimit > 0) ? input.characterLimit : 524288);
            WebGLInputPlugin.WebGLInputFocus(id);
            WebGLInputPlugin.WebGLInputEnableTabText(id, enableTabText);
            WebGLInputPlugin.WebGLInputSetReadOnly(id, input.ReadOnly);
            WebGLInputPlugin.WebGLInputSetName(id, name);

            if (input.OnFocusSelectAll)
            {
                WebGLInputPlugin.WebGLInputSetSelectionRange(id, 0, input.text.Length);
            }

            WebGLWindow.OnBlurEvent += OnWindowBlur;
        }
Пример #2
0
        void Update()
        {
            if (input == null || !input.isFocused)
            {
                return;
            }

            var rect = GetScreenCoordinates(input.RectTransform());

            if (rect != PreviousRect)
            {
                PreviousRect = rect;
                SizeChanged();
            }

            if (!instances.ContainsKey(id))
            {
                OnSelect();
            }
            else if (!WebGLInputPlugin.WebGLInputIsFocus(id))
            {
                WebGLInputPlugin.WebGLInputFocus(id);
            }

            var start = WebGLInputPlugin.WebGLInputSelectionStart(id);
            var end   = WebGLInputPlugin.WebGLInputSelectionEnd(id);

            if (WebGLInputPlugin.WebGLInputSelectionDirection(id) == -1)
            {
                input.selectionFocusPosition  = start;
                input.selectionAnchorPosition = end;
            }
            else
            {
                input.selectionFocusPosition  = end;
                input.selectionAnchorPosition = start;
            }

            input.Rebuild();
        }