Exemplo n.º 1
0
        void Update()
        {
            if (input == null || !input.isFocused)
            {
                return;
            }
            // 未登録の場合、選択する
            if (!instances.ContainsKey(id))
            {
                OnSelect();
            }
            else if (!WebGLInputPlugin.WebGLInputIsFocus(id))
            {
                // focus this 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();
        }
Exemplo n.º 2
0
        void Update()
        {
            if (!input.isFocused)
            {
                return;
            }
            // 未登録の場合、選択する
            if (!instances.ContainsKey(id))
            {
                OnSelect();
            }

            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(CanvasUpdate.LatePreRender);
            input.textComponent.SetAllDirty();
        }
Exemplo n.º 3
0
        static void OnValueChange(int id, string value)
        {
            if (!instances.ContainsKey(id))
            {
                return;
            }

            var instance = instances[id];

            if (!instance.input.ReadOnly)
            {
                instance.input.text = value;
            }

            // InputField.ContentType.Name が Name の場合、先頭文字が強制的大文字になるため小文字にして比べる
            if (instance.input.contentType == ContentType.Name)
            {
                if (string.Compare(instance.input.text, value, true) == 0)
                {
                    value = instance.input.text;
                }
            }

            // InputField の ContentType による整形したテキストを HTML の input に再設定します
            if (value != instance.input.text)
            {
                var start = WebGLInputPlugin.WebGLInputSelectionStart(id);
                var end   = WebGLInputPlugin.WebGLInputSelectionEnd(id);
                // take the offset.when char remove from input.
                var offset = instance.input.text.Length - value.Length;

                WebGLInputPlugin.WebGLInputText(id, instance.input.text);
                // reset the input element selection range!!
                WebGLInputPlugin.WebGLInputSetSelectionRange(id, start + offset, end + offset);
            }
        }